blob: 5baf82bc627d11d2b913fcad3776f5fd64d92e3a [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
125#define imaginary_number_type 1051
126#define capture_pattern_type 1052
127#define pattern_capture_target_type 1053
128#define wildcard_pattern_type 1054
129#define value_pattern_type 1055
130#define attr_type 1056 // Left-recursive
131#define name_or_attr_type 1057 // Left-recursive
132#define group_pattern_type 1058
133#define sequence_pattern_type 1059
134#define open_sequence_pattern_type 1060
135#define maybe_sequence_pattern_type 1061
136#define maybe_star_pattern_type 1062
137#define star_pattern_type 1063
138#define mapping_pattern_type 1064
139#define items_pattern_type 1065
140#define key_value_pattern_type 1066
141#define double_star_pattern_type 1067
142#define class_pattern_type 1068
143#define positional_patterns_type 1069
144#define keyword_patterns_type 1070
145#define keyword_pattern_type 1071
146#define return_stmt_type 1072
147#define raise_stmt_type 1073
148#define function_def_type 1074
149#define function_def_raw_type 1075
150#define func_type_comment_type 1076
151#define params_type 1077
152#define parameters_type 1078
153#define slash_no_default_type 1079
154#define slash_with_default_type 1080
155#define star_etc_type 1081
156#define kwds_type 1082
157#define param_no_default_type 1083
158#define param_with_default_type 1084
159#define param_maybe_default_type 1085
160#define param_type 1086
161#define annotation_type 1087
162#define default_type 1088
163#define decorators_type 1089
164#define class_def_type 1090
165#define class_def_raw_type 1091
166#define block_type 1092
167#define star_expressions_type 1093
168#define star_expression_type 1094
169#define star_named_expressions_type 1095
170#define star_named_expression_type 1096
171#define named_expression_type 1097
172#define direct_named_expression_type 1098
173#define annotated_rhs_type 1099
174#define expressions_type 1100
175#define expression_type 1101
176#define lambdef_type 1102
177#define lambda_params_type 1103
178#define lambda_parameters_type 1104
179#define lambda_slash_no_default_type 1105
180#define lambda_slash_with_default_type 1106
181#define lambda_star_etc_type 1107
182#define lambda_kwds_type 1108
183#define lambda_param_no_default_type 1109
184#define lambda_param_with_default_type 1110
185#define lambda_param_maybe_default_type 1111
186#define lambda_param_type 1112
187#define disjunction_type 1113
188#define conjunction_type 1114
189#define inversion_type 1115
190#define comparison_type 1116
191#define compare_op_bitwise_or_pair_type 1117
192#define eq_bitwise_or_type 1118
193#define noteq_bitwise_or_type 1119
194#define lte_bitwise_or_type 1120
195#define lt_bitwise_or_type 1121
196#define gte_bitwise_or_type 1122
197#define gt_bitwise_or_type 1123
198#define notin_bitwise_or_type 1124
199#define in_bitwise_or_type 1125
200#define isnot_bitwise_or_type 1126
201#define is_bitwise_or_type 1127
202#define bitwise_or_type 1128 // Left-recursive
203#define bitwise_xor_type 1129 // Left-recursive
204#define bitwise_and_type 1130 // Left-recursive
205#define shift_expr_type 1131 // Left-recursive
206#define sum_type 1132 // Left-recursive
207#define term_type 1133 // Left-recursive
208#define factor_type 1134
209#define power_type 1135
210#define await_primary_type 1136
211#define primary_type 1137 // Left-recursive
212#define slices_type 1138
213#define slice_type 1139
214#define atom_type 1140
215#define strings_type 1141
216#define list_type 1142
217#define listcomp_type 1143
218#define tuple_type 1144
219#define group_type 1145
220#define genexp_type 1146
221#define set_type 1147
222#define setcomp_type 1148
223#define dict_type 1149
224#define dictcomp_type 1150
225#define double_starred_kvpairs_type 1151
226#define double_starred_kvpair_type 1152
227#define kvpair_type 1153
228#define for_if_clauses_type 1154
229#define for_if_clause_type 1155
230#define yield_expr_type 1156
231#define arguments_type 1157
232#define args_type 1158
233#define kwargs_type 1159
234#define starred_expression_type 1160
235#define kwarg_or_starred_type 1161
236#define kwarg_or_double_starred_type 1162
237#define star_targets_type 1163
238#define star_targets_list_seq_type 1164
239#define star_targets_tuple_seq_type 1165
240#define star_target_type 1166
241#define target_with_star_atom_type 1167
242#define star_atom_type 1168
243#define single_target_type 1169
244#define single_subscript_attribute_target_type 1170
245#define del_targets_type 1171
246#define del_target_type 1172
247#define del_t_atom_type 1173
248#define targets_type 1174
249#define target_type 1175
250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define t_atom_type 1178
253#define invalid_arguments_type 1179
254#define invalid_kwarg_type 1180
255#define invalid_expression_type 1181
256#define invalid_named_expression_type 1182
257#define invalid_assignment_type 1183
258#define invalid_ann_assign_target_type 1184
259#define invalid_del_stmt_type 1185
260#define invalid_block_type 1186
261#define invalid_primary_type 1187 // Left-recursive
262#define invalid_comprehension_type 1188
263#define invalid_dict_comprehension_type 1189
264#define invalid_parameters_type 1190
265#define invalid_parameters_helper_type 1191
266#define invalid_lambda_parameters_type 1192
267#define invalid_lambda_parameters_helper_type 1193
268#define invalid_star_etc_type 1194
269#define invalid_lambda_star_etc_type 1195
270#define invalid_double_type_comments_type 1196
271#define invalid_with_item_type 1197
272#define invalid_for_target_type 1198
273#define invalid_group_type 1199
274#define invalid_import_from_targets_type 1200
275#define invalid_with_stmt_type 1201
276#define invalid_with_stmt_indent_type 1202
277#define invalid_try_stmt_type 1203
278#define invalid_except_stmt_type 1204
279#define invalid_finally_stmt_type 1205
280#define invalid_except_stmt_indent_type 1206
281#define invalid_match_stmt_type 1207
282#define invalid_case_block_type 1208
283#define invalid_if_stmt_type 1209
284#define invalid_elif_stmt_type 1210
285#define invalid_else_stmt_type 1211
286#define invalid_while_stmt_type 1212
287#define invalid_for_stmt_type 1213
288#define invalid_def_raw_type 1214
289#define invalid_class_def_raw_type 1215
290#define invalid_double_starred_kvpairs_type 1216
291#define invalid_kvpair_type 1217
292#define _loop0_1_type 1218
293#define _loop0_2_type 1219
294#define _loop0_4_type 1220
295#define _gather_3_type 1221
296#define _loop0_6_type 1222
297#define _gather_5_type 1223
298#define _loop0_8_type 1224
299#define _gather_7_type 1225
300#define _loop0_10_type 1226
301#define _gather_9_type 1227
302#define _loop1_11_type 1228
303#define _loop0_13_type 1229
304#define _gather_12_type 1230
305#define _tmp_14_type 1231
306#define _tmp_15_type 1232
307#define _tmp_16_type 1233
308#define _tmp_17_type 1234
309#define _tmp_18_type 1235
310#define _tmp_19_type 1236
311#define _tmp_20_type 1237
312#define _tmp_21_type 1238
313#define _loop1_22_type 1239
314#define _tmp_23_type 1240
315#define _tmp_24_type 1241
316#define _loop0_26_type 1242
317#define _gather_25_type 1243
318#define _loop0_28_type 1244
319#define _gather_27_type 1245
320#define _tmp_29_type 1246
321#define _tmp_30_type 1247
322#define _loop0_31_type 1248
323#define _loop1_32_type 1249
324#define _loop0_34_type 1250
325#define _gather_33_type 1251
326#define _tmp_35_type 1252
327#define _loop0_37_type 1253
328#define _gather_36_type 1254
329#define _tmp_38_type 1255
330#define _loop0_40_type 1256
331#define _gather_39_type 1257
332#define _loop0_42_type 1258
333#define _gather_41_type 1259
334#define _loop0_44_type 1260
335#define _gather_43_type 1261
336#define _loop0_46_type 1262
337#define _gather_45_type 1263
338#define _tmp_47_type 1264
339#define _loop1_48_type 1265
340#define _tmp_49_type 1266
341#define _loop1_50_type 1267
342#define _loop0_52_type 1268
343#define _gather_51_type 1269
344#define _tmp_53_type 1270
345#define _tmp_54_type 1271
346#define _tmp_55_type 1272
347#define _tmp_56_type 1273
348#define _loop0_58_type 1274
349#define _gather_57_type 1275
350#define _loop0_60_type 1276
351#define _gather_59_type 1277
352#define _tmp_61_type 1278
353#define _loop0_63_type 1279
354#define _gather_62_type 1280
355#define _loop0_65_type 1281
356#define _gather_64_type 1282
357#define _tmp_66_type 1283
358#define _tmp_67_type 1284
359#define _tmp_68_type 1285
360#define _tmp_69_type 1286
361#define _loop0_70_type 1287
362#define _loop0_71_type 1288
363#define _loop0_72_type 1289
364#define _loop1_73_type 1290
365#define _loop0_74_type 1291
366#define _loop1_75_type 1292
367#define _loop1_76_type 1293
368#define _loop1_77_type 1294
369#define _loop0_78_type 1295
370#define _loop1_79_type 1296
371#define _loop0_80_type 1297
372#define _loop1_81_type 1298
373#define _loop0_82_type 1299
374#define _loop1_83_type 1300
375#define _loop1_84_type 1301
376#define _tmp_85_type 1302
377#define _loop1_86_type 1303
378#define _loop0_88_type 1304
379#define _gather_87_type 1305
380#define _loop1_89_type 1306
381#define _loop0_90_type 1307
382#define _loop0_91_type 1308
383#define _loop0_92_type 1309
384#define _loop1_93_type 1310
385#define _loop0_94_type 1311
386#define _loop1_95_type 1312
387#define _loop1_96_type 1313
388#define _loop1_97_type 1314
389#define _loop0_98_type 1315
390#define _loop1_99_type 1316
391#define _loop0_100_type 1317
392#define _loop1_101_type 1318
393#define _loop0_102_type 1319
394#define _loop1_103_type 1320
395#define _loop1_104_type 1321
396#define _loop1_105_type 1322
397#define _loop1_106_type 1323
398#define _tmp_107_type 1324
399#define _loop0_109_type 1325
400#define _gather_108_type 1326
401#define _tmp_110_type 1327
402#define _tmp_111_type 1328
403#define _tmp_112_type 1329
404#define _tmp_113_type 1330
405#define _loop1_114_type 1331
406#define _tmp_115_type 1332
407#define _tmp_116_type 1333
408#define _loop0_118_type 1334
409#define _gather_117_type 1335
410#define _loop1_119_type 1336
411#define _loop0_120_type 1337
412#define _loop0_121_type 1338
413#define _loop0_123_type 1339
414#define _gather_122_type 1340
415#define _tmp_124_type 1341
416#define _loop0_126_type 1342
417#define _gather_125_type 1343
418#define _loop0_128_type 1344
419#define _gather_127_type 1345
420#define _loop0_130_type 1346
421#define _gather_129_type 1347
422#define _loop0_132_type 1348
423#define _gather_131_type 1349
424#define _loop0_133_type 1350
425#define _loop0_135_type 1351
426#define _gather_134_type 1352
427#define _loop1_136_type 1353
428#define _tmp_137_type 1354
429#define _loop0_139_type 1355
430#define _gather_138_type 1356
431#define _loop0_141_type 1357
432#define _gather_140_type 1358
433#define _tmp_142_type 1359
434#define _tmp_143_type 1360
435#define _tmp_144_type 1361
436#define _tmp_145_type 1362
437#define _tmp_146_type 1363
438#define _loop0_147_type 1364
439#define _loop0_148_type 1365
440#define _loop0_149_type 1366
441#define _tmp_150_type 1367
442#define _tmp_151_type 1368
443#define _tmp_152_type 1369
444#define _tmp_153_type 1370
445#define _loop0_154_type 1371
446#define _loop1_155_type 1372
447#define _loop0_156_type 1373
448#define _loop1_157_type 1374
449#define _tmp_158_type 1375
450#define _tmp_159_type 1376
451#define _tmp_160_type 1377
452#define _loop0_162_type 1378
453#define _gather_161_type 1379
454#define _loop0_164_type 1380
455#define _gather_163_type 1381
456#define _loop0_166_type 1382
457#define _gather_165_type 1383
458#define _loop0_168_type 1384
459#define _gather_167_type 1385
460#define _tmp_169_type 1386
461#define _tmp_170_type 1387
462#define _tmp_171_type 1388
463#define _tmp_172_type 1389
464#define _tmp_173_type 1390
465#define _loop0_175_type 1391
466#define _gather_174_type 1392
467#define _tmp_176_type 1393
468#define _tmp_177_type 1394
469#define _tmp_178_type 1395
470#define _tmp_179_type 1396
471#define _tmp_180_type 1397
472#define _tmp_181_type 1398
473#define _tmp_182_type 1399
474#define _tmp_183_type 1400
475#define _tmp_184_type 1401
476#define _tmp_185_type 1402
477#define _tmp_186_type 1403
478#define _tmp_187_type 1404
479#define _tmp_188_type 1405
480#define _tmp_189_type 1406
481#define _tmp_190_type 1407
482#define _tmp_191_type 1408
483#define _tmp_192_type 1409
484#define _tmp_193_type 1410
485#define _tmp_194_type 1411
486#define _tmp_195_type 1412
487#define _tmp_196_type 1413
488#define _tmp_197_type 1414
489#define _tmp_198_type 1415
490#define _tmp_199_type 1416
491#define _tmp_200_type 1417
492#define _tmp_201_type 1418
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100493
494static mod_ty file_rule(Parser *p);
495static mod_ty interactive_rule(Parser *p);
496static mod_ty eval_rule(Parser *p);
497static mod_ty func_type_rule(Parser *p);
498static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100499static asdl_expr_seq* type_expressions_rule(Parser *p);
500static asdl_stmt_seq* statements_rule(Parser *p);
501static asdl_stmt_seq* statement_rule(Parser *p);
502static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000503static asdl_stmt_seq* simple_stmts_rule(Parser *p);
504static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100505static stmt_ty compound_stmt_rule(Parser *p);
506static stmt_ty assignment_rule(Parser *p);
507static AugOperator* augassign_rule(Parser *p);
508static stmt_ty global_stmt_rule(Parser *p);
509static stmt_ty nonlocal_stmt_rule(Parser *p);
510static stmt_ty yield_stmt_rule(Parser *p);
511static stmt_ty assert_stmt_rule(Parser *p);
512static stmt_ty del_stmt_rule(Parser *p);
513static stmt_ty import_stmt_rule(Parser *p);
514static stmt_ty import_name_rule(Parser *p);
515static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100516static asdl_alias_seq* import_from_targets_rule(Parser *p);
517static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100518static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static alias_ty dotted_as_name_rule(Parser *p);
521static expr_ty dotted_name_rule(Parser *p);
522static stmt_ty if_stmt_rule(Parser *p);
523static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100524static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100525static stmt_ty while_stmt_rule(Parser *p);
526static stmt_ty for_stmt_rule(Parser *p);
527static stmt_ty with_stmt_rule(Parser *p);
528static withitem_ty with_item_rule(Parser *p);
529static stmt_ty try_stmt_rule(Parser *p);
530static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100531static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800532static stmt_ty match_stmt_rule(Parser *p);
533static expr_ty subject_expr_rule(Parser *p);
534static match_case_ty case_block_rule(Parser *p);
535static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000536static pattern_ty patterns_rule(Parser *p);
537static pattern_ty pattern_rule(Parser *p);
538static pattern_ty as_pattern_rule(Parser *p);
539static pattern_ty or_pattern_rule(Parser *p);
540static pattern_ty closed_pattern_rule(Parser *p);
541static pattern_ty literal_pattern_rule(Parser *p);
542static expr_ty literal_expr_rule(Parser *p);
543static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800544static expr_ty signed_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000545static expr_ty imaginary_number_rule(Parser *p);
546static pattern_ty capture_pattern_rule(Parser *p);
547static expr_ty pattern_capture_target_rule(Parser *p);
548static pattern_ty wildcard_pattern_rule(Parser *p);
549static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800550static expr_ty attr_rule(Parser *p);
551static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000552static pattern_ty group_pattern_rule(Parser *p);
553static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800554static asdl_seq* open_sequence_pattern_rule(Parser *p);
555static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000556static pattern_ty maybe_star_pattern_rule(Parser *p);
557static pattern_ty star_pattern_rule(Parser *p);
558static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800559static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000560static KeyPatternPair* key_value_pattern_rule(Parser *p);
561static expr_ty double_star_pattern_rule(Parser *p);
562static pattern_ty class_pattern_rule(Parser *p);
563static asdl_pattern_seq* positional_patterns_rule(Parser *p);
564static asdl_seq* keyword_patterns_rule(Parser *p);
565static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100566static stmt_ty return_stmt_rule(Parser *p);
567static stmt_ty raise_stmt_rule(Parser *p);
568static stmt_ty function_def_rule(Parser *p);
569static stmt_ty function_def_raw_rule(Parser *p);
570static Token* func_type_comment_rule(Parser *p);
571static arguments_ty params_rule(Parser *p);
572static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100573static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100574static SlashWithDefault* slash_with_default_rule(Parser *p);
575static StarEtc* star_etc_rule(Parser *p);
576static arg_ty kwds_rule(Parser *p);
577static arg_ty param_no_default_rule(Parser *p);
578static NameDefaultPair* param_with_default_rule(Parser *p);
579static NameDefaultPair* param_maybe_default_rule(Parser *p);
580static arg_ty param_rule(Parser *p);
581static expr_ty annotation_rule(Parser *p);
582static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100583static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100584static stmt_ty class_def_rule(Parser *p);
585static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100586static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100587static expr_ty star_expressions_rule(Parser *p);
588static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100589static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100590static expr_ty star_named_expression_rule(Parser *p);
591static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100592static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100593static expr_ty annotated_rhs_rule(Parser *p);
594static expr_ty expressions_rule(Parser *p);
595static expr_ty expression_rule(Parser *p);
596static expr_ty lambdef_rule(Parser *p);
597static arguments_ty lambda_params_rule(Parser *p);
598static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100599static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
601static StarEtc* lambda_star_etc_rule(Parser *p);
602static arg_ty lambda_kwds_rule(Parser *p);
603static arg_ty lambda_param_no_default_rule(Parser *p);
604static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
605static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
606static arg_ty lambda_param_rule(Parser *p);
607static expr_ty disjunction_rule(Parser *p);
608static expr_ty conjunction_rule(Parser *p);
609static expr_ty inversion_rule(Parser *p);
610static expr_ty comparison_rule(Parser *p);
611static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
612static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
613static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
614static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
615static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
616static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
617static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
618static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
619static CmpopExprPair* in_bitwise_or_rule(Parser *p);
620static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
621static CmpopExprPair* is_bitwise_or_rule(Parser *p);
622static expr_ty bitwise_or_rule(Parser *p);
623static expr_ty bitwise_xor_rule(Parser *p);
624static expr_ty bitwise_and_rule(Parser *p);
625static expr_ty shift_expr_rule(Parser *p);
626static expr_ty sum_rule(Parser *p);
627static expr_ty term_rule(Parser *p);
628static expr_ty factor_rule(Parser *p);
629static expr_ty power_rule(Parser *p);
630static expr_ty await_primary_rule(Parser *p);
631static expr_ty primary_rule(Parser *p);
632static expr_ty slices_rule(Parser *p);
633static expr_ty slice_rule(Parser *p);
634static expr_ty atom_rule(Parser *p);
635static expr_ty strings_rule(Parser *p);
636static expr_ty list_rule(Parser *p);
637static expr_ty listcomp_rule(Parser *p);
638static expr_ty tuple_rule(Parser *p);
639static expr_ty group_rule(Parser *p);
640static expr_ty genexp_rule(Parser *p);
641static expr_ty set_rule(Parser *p);
642static expr_ty setcomp_rule(Parser *p);
643static expr_ty dict_rule(Parser *p);
644static expr_ty dictcomp_rule(Parser *p);
645static asdl_seq* double_starred_kvpairs_rule(Parser *p);
646static KeyValuePair* double_starred_kvpair_rule(Parser *p);
647static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100648static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100649static comprehension_ty for_if_clause_rule(Parser *p);
650static expr_ty yield_expr_rule(Parser *p);
651static expr_ty arguments_rule(Parser *p);
652static expr_ty args_rule(Parser *p);
653static asdl_seq* kwargs_rule(Parser *p);
654static expr_ty starred_expression_rule(Parser *p);
655static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
656static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
657static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200658static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
659static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100660static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200661static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100662static expr_ty star_atom_rule(Parser *p);
663static expr_ty single_target_rule(Parser *p);
664static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100665static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100666static expr_ty del_target_rule(Parser *p);
667static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100668static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100669static expr_ty target_rule(Parser *p);
670static expr_ty t_primary_rule(Parser *p);
671static void *t_lookahead_rule(Parser *p);
672static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200673static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100675static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static void *invalid_named_expression_rule(Parser *p);
677static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300678static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300679static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100680static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200681static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100682static void *invalid_comprehension_rule(Parser *p);
683static void *invalid_dict_comprehension_rule(Parser *p);
684static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200685static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200687static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100688static void *invalid_star_etc_rule(Parser *p);
689static void *invalid_lambda_star_etc_rule(Parser *p);
690static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300691static void *invalid_with_item_rule(Parser *p);
692static void *invalid_for_target_rule(Parser *p);
693static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100694static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000695static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100696static void *invalid_with_stmt_indent_rule(Parser *p);
697static void *invalid_try_stmt_rule(Parser *p);
698static void *invalid_except_stmt_rule(Parser *p);
699static void *invalid_finally_stmt_rule(Parser *p);
700static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000701static void *invalid_match_stmt_rule(Parser *p);
702static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100703static void *invalid_if_stmt_rule(Parser *p);
704static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100705static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100706static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100707static void *invalid_for_stmt_rule(Parser *p);
708static void *invalid_def_raw_rule(Parser *p);
709static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100710static void *invalid_double_starred_kvpairs_rule(Parser *p);
711static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100712static asdl_seq *_loop0_1_rule(Parser *p);
713static asdl_seq *_loop0_2_rule(Parser *p);
714static asdl_seq *_loop0_4_rule(Parser *p);
715static asdl_seq *_gather_3_rule(Parser *p);
716static asdl_seq *_loop0_6_rule(Parser *p);
717static asdl_seq *_gather_5_rule(Parser *p);
718static asdl_seq *_loop0_8_rule(Parser *p);
719static asdl_seq *_gather_7_rule(Parser *p);
720static asdl_seq *_loop0_10_rule(Parser *p);
721static asdl_seq *_gather_9_rule(Parser *p);
722static asdl_seq *_loop1_11_rule(Parser *p);
723static asdl_seq *_loop0_13_rule(Parser *p);
724static asdl_seq *_gather_12_rule(Parser *p);
725static void *_tmp_14_rule(Parser *p);
726static void *_tmp_15_rule(Parser *p);
727static void *_tmp_16_rule(Parser *p);
728static void *_tmp_17_rule(Parser *p);
729static void *_tmp_18_rule(Parser *p);
730static void *_tmp_19_rule(Parser *p);
731static void *_tmp_20_rule(Parser *p);
732static void *_tmp_21_rule(Parser *p);
733static asdl_seq *_loop1_22_rule(Parser *p);
734static void *_tmp_23_rule(Parser *p);
735static void *_tmp_24_rule(Parser *p);
736static asdl_seq *_loop0_26_rule(Parser *p);
737static asdl_seq *_gather_25_rule(Parser *p);
738static asdl_seq *_loop0_28_rule(Parser *p);
739static asdl_seq *_gather_27_rule(Parser *p);
740static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300741static void *_tmp_30_rule(Parser *p);
742static asdl_seq *_loop0_31_rule(Parser *p);
743static asdl_seq *_loop1_32_rule(Parser *p);
744static asdl_seq *_loop0_34_rule(Parser *p);
745static asdl_seq *_gather_33_rule(Parser *p);
746static void *_tmp_35_rule(Parser *p);
747static asdl_seq *_loop0_37_rule(Parser *p);
748static asdl_seq *_gather_36_rule(Parser *p);
749static void *_tmp_38_rule(Parser *p);
750static asdl_seq *_loop0_40_rule(Parser *p);
751static asdl_seq *_gather_39_rule(Parser *p);
752static asdl_seq *_loop0_42_rule(Parser *p);
753static asdl_seq *_gather_41_rule(Parser *p);
754static asdl_seq *_loop0_44_rule(Parser *p);
755static asdl_seq *_gather_43_rule(Parser *p);
756static asdl_seq *_loop0_46_rule(Parser *p);
757static asdl_seq *_gather_45_rule(Parser *p);
758static void *_tmp_47_rule(Parser *p);
759static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100760static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800761static asdl_seq *_loop1_50_rule(Parser *p);
762static asdl_seq *_loop0_52_rule(Parser *p);
763static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300764static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800765static void *_tmp_54_rule(Parser *p);
766static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000767static void *_tmp_56_rule(Parser *p);
768static asdl_seq *_loop0_58_rule(Parser *p);
769static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800770static asdl_seq *_loop0_60_rule(Parser *p);
771static asdl_seq *_gather_59_rule(Parser *p);
772static void *_tmp_61_rule(Parser *p);
773static asdl_seq *_loop0_63_rule(Parser *p);
774static asdl_seq *_gather_62_rule(Parser *p);
775static asdl_seq *_loop0_65_rule(Parser *p);
776static asdl_seq *_gather_64_rule(Parser *p);
777static void *_tmp_66_rule(Parser *p);
778static void *_tmp_67_rule(Parser *p);
779static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300780static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800781static asdl_seq *_loop0_70_rule(Parser *p);
782static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000783static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000784static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300785static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800786static asdl_seq *_loop1_75_rule(Parser *p);
787static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000788static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300789static asdl_seq *_loop0_78_rule(Parser *p);
790static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800791static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100792static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000793static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300794static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800795static asdl_seq *_loop1_84_rule(Parser *p);
796static void *_tmp_85_rule(Parser *p);
797static asdl_seq *_loop1_86_rule(Parser *p);
798static asdl_seq *_loop0_88_rule(Parser *p);
799static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100800static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800801static asdl_seq *_loop0_90_rule(Parser *p);
802static asdl_seq *_loop0_91_rule(Parser *p);
803static asdl_seq *_loop0_92_rule(Parser *p);
804static asdl_seq *_loop1_93_rule(Parser *p);
805static asdl_seq *_loop0_94_rule(Parser *p);
806static asdl_seq *_loop1_95_rule(Parser *p);
807static asdl_seq *_loop1_96_rule(Parser *p);
808static asdl_seq *_loop1_97_rule(Parser *p);
809static asdl_seq *_loop0_98_rule(Parser *p);
810static asdl_seq *_loop1_99_rule(Parser *p);
811static asdl_seq *_loop0_100_rule(Parser *p);
812static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000813static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000814static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800815static asdl_seq *_loop1_104_rule(Parser *p);
816static asdl_seq *_loop1_105_rule(Parser *p);
817static asdl_seq *_loop1_106_rule(Parser *p);
818static void *_tmp_107_rule(Parser *p);
819static asdl_seq *_loop0_109_rule(Parser *p);
820static asdl_seq *_gather_108_rule(Parser *p);
821static void *_tmp_110_rule(Parser *p);
822static void *_tmp_111_rule(Parser *p);
823static void *_tmp_112_rule(Parser *p);
824static void *_tmp_113_rule(Parser *p);
825static asdl_seq *_loop1_114_rule(Parser *p);
826static void *_tmp_115_rule(Parser *p);
827static void *_tmp_116_rule(Parser *p);
828static asdl_seq *_loop0_118_rule(Parser *p);
829static asdl_seq *_gather_117_rule(Parser *p);
830static asdl_seq *_loop1_119_rule(Parser *p);
831static asdl_seq *_loop0_120_rule(Parser *p);
832static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200833static asdl_seq *_loop0_123_rule(Parser *p);
834static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800835static void *_tmp_124_rule(Parser *p);
836static asdl_seq *_loop0_126_rule(Parser *p);
837static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300838static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800839static asdl_seq *_gather_127_rule(Parser *p);
840static asdl_seq *_loop0_130_rule(Parser *p);
841static asdl_seq *_gather_129_rule(Parser *p);
842static asdl_seq *_loop0_132_rule(Parser *p);
843static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000844static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000845static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800846static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000847static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100848static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800849static asdl_seq *_loop0_139_rule(Parser *p);
850static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000851static asdl_seq *_loop0_141_rule(Parser *p);
852static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800853static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100854static void *_tmp_143_rule(Parser *p);
855static void *_tmp_144_rule(Parser *p);
856static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100857static void *_tmp_146_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100858static asdl_seq *_loop0_147_rule(Parser *p);
859static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100860static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100861static void *_tmp_150_rule(Parser *p);
862static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100863static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100864static void *_tmp_153_rule(Parser *p);
865static asdl_seq *_loop0_154_rule(Parser *p);
866static asdl_seq *_loop1_155_rule(Parser *p);
867static asdl_seq *_loop0_156_rule(Parser *p);
868static asdl_seq *_loop1_157_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100869static void *_tmp_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100870static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100871static void *_tmp_160_rule(Parser *p);
872static asdl_seq *_loop0_162_rule(Parser *p);
873static asdl_seq *_gather_161_rule(Parser *p);
874static asdl_seq *_loop0_164_rule(Parser *p);
875static asdl_seq *_gather_163_rule(Parser *p);
876static asdl_seq *_loop0_166_rule(Parser *p);
877static asdl_seq *_gather_165_rule(Parser *p);
878static asdl_seq *_loop0_168_rule(Parser *p);
879static asdl_seq *_gather_167_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800880static void *_tmp_169_rule(Parser *p);
881static void *_tmp_170_rule(Parser *p);
882static void *_tmp_171_rule(Parser *p);
883static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100884static void *_tmp_173_rule(Parser *p);
885static asdl_seq *_loop0_175_rule(Parser *p);
886static asdl_seq *_gather_174_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800887static void *_tmp_176_rule(Parser *p);
888static void *_tmp_177_rule(Parser *p);
889static void *_tmp_178_rule(Parser *p);
890static void *_tmp_179_rule(Parser *p);
891static void *_tmp_180_rule(Parser *p);
892static void *_tmp_181_rule(Parser *p);
893static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100894static void *_tmp_183_rule(Parser *p);
895static void *_tmp_184_rule(Parser *p);
896static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100897static void *_tmp_186_rule(Parser *p);
898static void *_tmp_187_rule(Parser *p);
899static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100900static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100901static void *_tmp_190_rule(Parser *p);
902static void *_tmp_191_rule(Parser *p);
903static void *_tmp_192_rule(Parser *p);
904static void *_tmp_193_rule(Parser *p);
905static void *_tmp_194_rule(Parser *p);
906static void *_tmp_195_rule(Parser *p);
907static void *_tmp_196_rule(Parser *p);
908static void *_tmp_197_rule(Parser *p);
909static void *_tmp_198_rule(Parser *p);
910static void *_tmp_199_rule(Parser *p);
911static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100912static void *_tmp_201_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000913
914
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100915// file: statements? $
916static mod_ty
917file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000918{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100919 D(p->level++);
920 if (p->error_indicator) {
921 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000922 return NULL;
923 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100924 mod_ty _res = NULL;
925 int _mark = p->mark;
926 { // statements? $
927 if (p->error_indicator) {
928 D(p->level--);
929 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000930 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100931 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
932 void *a;
933 Token * endmarker_var;
934 if (
935 (a = statements_rule(p), 1) // statements?
936 &&
937 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
938 )
939 {
940 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
941 _res = _PyPegen_make_module ( p , a );
942 if (_res == NULL && PyErr_Occurred()) {
943 p->error_indicator = 1;
944 D(p->level--);
945 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000946 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100947 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000948 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100949 p->mark = _mark;
950 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 _res = NULL;
954 done:
955 D(p->level--);
956 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000957}
958
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959// interactive: statement_newline
960static mod_ty
961interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000962{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963 D(p->level++);
964 if (p->error_indicator) {
965 D(p->level--);
966 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000967 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100968 mod_ty _res = NULL;
969 int _mark = p->mark;
970 { // statement_newline
971 if (p->error_indicator) {
972 D(p->level--);
973 return NULL;
974 }
975 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100976 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100977 if (
978 (a = statement_newline_rule(p)) // statement_newline
979 )
980 {
981 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200982 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100983 if (_res == NULL && PyErr_Occurred()) {
984 p->error_indicator = 1;
985 D(p->level--);
986 return NULL;
987 }
988 goto done;
989 }
990 p->mark = _mark;
991 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
993 }
994 _res = NULL;
995 done:
996 D(p->level--);
997 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000998}
999
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001000// eval: expressions NEWLINE* $
1001static mod_ty
1002eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001003{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001004 D(p->level++);
1005 if (p->error_indicator) {
1006 D(p->level--);
1007 return NULL;
1008 }
1009 mod_ty _res = NULL;
1010 int _mark = p->mark;
1011 { // expressions NEWLINE* $
1012 if (p->error_indicator) {
1013 D(p->level--);
1014 return NULL;
1015 }
1016 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1017 asdl_seq * _loop0_1_var;
1018 expr_ty a;
1019 Token * endmarker_var;
1020 if (
1021 (a = expressions_rule(p)) // expressions
1022 &&
1023 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1024 &&
1025 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1026 )
1027 {
1028 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001029 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001030 if (_res == NULL && PyErr_Occurred()) {
1031 p->error_indicator = 1;
1032 D(p->level--);
1033 return NULL;
1034 }
1035 goto done;
1036 }
1037 p->mark = _mark;
1038 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1040 }
1041 _res = NULL;
1042 done:
1043 D(p->level--);
1044 return _res;
1045}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001046
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001047// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1048static mod_ty
1049func_type_rule(Parser *p)
1050{
1051 D(p->level++);
1052 if (p->error_indicator) {
1053 D(p->level--);
1054 return NULL;
1055 }
1056 mod_ty _res = NULL;
1057 int _mark = p->mark;
1058 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1059 if (p->error_indicator) {
1060 D(p->level--);
1061 return NULL;
1062 }
1063 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1064 Token * _literal;
1065 Token * _literal_1;
1066 Token * _literal_2;
1067 asdl_seq * _loop0_2_var;
1068 void *a;
1069 expr_ty b;
1070 Token * endmarker_var;
1071 if (
1072 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1073 &&
1074 (a = type_expressions_rule(p), 1) // type_expressions?
1075 &&
1076 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1077 &&
1078 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1079 &&
1080 (b = expression_rule(p)) // expression
1081 &&
1082 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1083 &&
1084 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1085 )
1086 {
1087 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001088 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001089 if (_res == NULL && PyErr_Occurred()) {
1090 p->error_indicator = 1;
1091 D(p->level--);
1092 return NULL;
1093 }
1094 goto done;
1095 }
1096 p->mark = _mark;
1097 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1099 }
1100 _res = NULL;
1101 done:
1102 D(p->level--);
1103 return _res;
1104}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001105
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001106// fstring: star_expressions
1107static expr_ty
1108fstring_rule(Parser *p)
1109{
1110 D(p->level++);
1111 if (p->error_indicator) {
1112 D(p->level--);
1113 return NULL;
1114 }
1115 expr_ty _res = NULL;
1116 int _mark = p->mark;
1117 { // star_expressions
1118 if (p->error_indicator) {
1119 D(p->level--);
1120 return NULL;
1121 }
1122 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1123 expr_ty star_expressions_var;
1124 if (
1125 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1126 )
1127 {
1128 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1129 _res = star_expressions_var;
1130 goto done;
1131 }
1132 p->mark = _mark;
1133 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1135 }
1136 _res = NULL;
1137 done:
1138 D(p->level--);
1139 return _res;
1140}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001141
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001142// type_expressions:
1143// | ','.expression+ ',' '*' expression ',' '**' expression
1144// | ','.expression+ ',' '*' expression
1145// | ','.expression+ ',' '**' expression
1146// | '*' expression ',' '**' expression
1147// | '*' expression
1148// | '**' expression
1149// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001150static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001151type_expressions_rule(Parser *p)
1152{
1153 D(p->level++);
1154 if (p->error_indicator) {
1155 D(p->level--);
1156 return NULL;
1157 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001158 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001159 int _mark = p->mark;
1160 { // ','.expression+ ',' '*' expression ',' '**' expression
1161 if (p->error_indicator) {
1162 D(p->level--);
1163 return NULL;
1164 }
1165 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1166 Token * _literal;
1167 Token * _literal_1;
1168 Token * _literal_2;
1169 Token * _literal_3;
1170 asdl_seq * a;
1171 expr_ty b;
1172 expr_ty c;
1173 if (
1174 (a = _gather_3_rule(p)) // ','.expression+
1175 &&
1176 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1177 &&
1178 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1179 &&
1180 (b = expression_rule(p)) // expression
1181 &&
1182 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1183 &&
1184 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1185 &&
1186 (c = expression_rule(p)) // expression
1187 )
1188 {
1189 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001190 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001191 if (_res == NULL && PyErr_Occurred()) {
1192 p->error_indicator = 1;
1193 D(p->level--);
1194 return NULL;
1195 }
1196 goto done;
1197 }
1198 p->mark = _mark;
1199 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1201 }
1202 { // ','.expression+ ',' '*' expression
1203 if (p->error_indicator) {
1204 D(p->level--);
1205 return NULL;
1206 }
1207 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1208 Token * _literal;
1209 Token * _literal_1;
1210 asdl_seq * a;
1211 expr_ty b;
1212 if (
1213 (a = _gather_5_rule(p)) // ','.expression+
1214 &&
1215 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1216 &&
1217 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1218 &&
1219 (b = expression_rule(p)) // expression
1220 )
1221 {
1222 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001223 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001224 if (_res == NULL && PyErr_Occurred()) {
1225 p->error_indicator = 1;
1226 D(p->level--);
1227 return NULL;
1228 }
1229 goto done;
1230 }
1231 p->mark = _mark;
1232 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1234 }
1235 { // ','.expression+ ',' '**' expression
1236 if (p->error_indicator) {
1237 D(p->level--);
1238 return NULL;
1239 }
1240 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1241 Token * _literal;
1242 Token * _literal_1;
1243 asdl_seq * a;
1244 expr_ty b;
1245 if (
1246 (a = _gather_7_rule(p)) // ','.expression+
1247 &&
1248 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1249 &&
1250 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1251 &&
1252 (b = expression_rule(p)) // expression
1253 )
1254 {
1255 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001256 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001257 if (_res == NULL && PyErr_Occurred()) {
1258 p->error_indicator = 1;
1259 D(p->level--);
1260 return NULL;
1261 }
1262 goto done;
1263 }
1264 p->mark = _mark;
1265 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1267 }
1268 { // '*' expression ',' '**' expression
1269 if (p->error_indicator) {
1270 D(p->level--);
1271 return NULL;
1272 }
1273 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1274 Token * _literal;
1275 Token * _literal_1;
1276 Token * _literal_2;
1277 expr_ty a;
1278 expr_ty b;
1279 if (
1280 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1281 &&
1282 (a = expression_rule(p)) // expression
1283 &&
1284 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1285 &&
1286 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1287 &&
1288 (b = expression_rule(p)) // expression
1289 )
1290 {
1291 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001292 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_singleton_seq ( p , a ) ) , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001293 if (_res == NULL && PyErr_Occurred()) {
1294 p->error_indicator = 1;
1295 D(p->level--);
1296 return NULL;
1297 }
1298 goto done;
1299 }
1300 p->mark = _mark;
1301 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1303 }
1304 { // '*' expression
1305 if (p->error_indicator) {
1306 D(p->level--);
1307 return NULL;
1308 }
1309 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1310 Token * _literal;
1311 expr_ty a;
1312 if (
1313 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1314 &&
1315 (a = expression_rule(p)) // expression
1316 )
1317 {
1318 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001319 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001320 if (_res == NULL && PyErr_Occurred()) {
1321 p->error_indicator = 1;
1322 D(p->level--);
1323 return NULL;
1324 }
1325 goto done;
1326 }
1327 p->mark = _mark;
1328 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1330 }
1331 { // '**' expression
1332 if (p->error_indicator) {
1333 D(p->level--);
1334 return NULL;
1335 }
1336 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1337 Token * _literal;
1338 expr_ty a;
1339 if (
1340 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1341 &&
1342 (a = expression_rule(p)) // expression
1343 )
1344 {
1345 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001346 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001347 if (_res == NULL && PyErr_Occurred()) {
1348 p->error_indicator = 1;
1349 D(p->level--);
1350 return NULL;
1351 }
1352 goto done;
1353 }
1354 p->mark = _mark;
1355 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1357 }
1358 { // ','.expression+
1359 if (p->error_indicator) {
1360 D(p->level--);
1361 return NULL;
1362 }
1363 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001364 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001365 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001366 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001367 )
1368 {
1369 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 _res = a;
1371 if (_res == NULL && PyErr_Occurred()) {
1372 p->error_indicator = 1;
1373 D(p->level--);
1374 return NULL;
1375 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001376 goto done;
1377 }
1378 p->mark = _mark;
1379 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1381 }
1382 _res = NULL;
1383 done:
1384 D(p->level--);
1385 return _res;
1386}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001387
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001388// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001389static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001390statements_rule(Parser *p)
1391{
1392 D(p->level++);
1393 if (p->error_indicator) {
1394 D(p->level--);
1395 return NULL;
1396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001397 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001398 int _mark = p->mark;
1399 { // statement+
1400 if (p->error_indicator) {
1401 D(p->level--);
1402 return NULL;
1403 }
1404 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1405 asdl_seq * a;
1406 if (
1407 (a = _loop1_11_rule(p)) // statement+
1408 )
1409 {
1410 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001411 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001412 if (_res == NULL && PyErr_Occurred()) {
1413 p->error_indicator = 1;
1414 D(p->level--);
1415 return NULL;
1416 }
1417 goto done;
1418 }
1419 p->mark = _mark;
1420 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1422 }
1423 _res = NULL;
1424 done:
1425 D(p->level--);
1426 return _res;
1427}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001428
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001429// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001430static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001431statement_rule(Parser *p)
1432{
1433 D(p->level++);
1434 if (p->error_indicator) {
1435 D(p->level--);
1436 return NULL;
1437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001438 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001439 int _mark = p->mark;
1440 { // compound_stmt
1441 if (p->error_indicator) {
1442 D(p->level--);
1443 return NULL;
1444 }
1445 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1446 stmt_ty a;
1447 if (
1448 (a = compound_stmt_rule(p)) // compound_stmt
1449 )
1450 {
1451 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001452 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001453 if (_res == NULL && PyErr_Occurred()) {
1454 p->error_indicator = 1;
1455 D(p->level--);
1456 return NULL;
1457 }
1458 goto done;
1459 }
1460 p->mark = _mark;
1461 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1463 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001464 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 if (p->error_indicator) {
1466 D(p->level--);
1467 return NULL;
1468 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001469 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001470 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001471 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001472 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001473 )
1474 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001475 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001476 _res = a;
1477 if (_res == NULL && PyErr_Occurred()) {
1478 p->error_indicator = 1;
1479 D(p->level--);
1480 return NULL;
1481 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001482 goto done;
1483 }
1484 p->mark = _mark;
1485 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 }
1488 _res = NULL;
1489 done:
1490 D(p->level--);
1491 return _res;
1492}
1493
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001494// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001495static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496statement_newline_rule(Parser *p)
1497{
1498 D(p->level++);
1499 if (p->error_indicator) {
1500 D(p->level--);
1501 return NULL;
1502 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001503 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001504 int _mark = p->mark;
1505 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1506 p->error_indicator = 1;
1507 D(p->level--);
1508 return NULL;
1509 }
1510 int _start_lineno = p->tokens[_mark]->lineno;
1511 UNUSED(_start_lineno); // Only used by EXTRA macro
1512 int _start_col_offset = p->tokens[_mark]->col_offset;
1513 UNUSED(_start_col_offset); // Only used by EXTRA macro
1514 { // compound_stmt NEWLINE
1515 if (p->error_indicator) {
1516 D(p->level--);
1517 return NULL;
1518 }
1519 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1520 stmt_ty a;
1521 Token * newline_var;
1522 if (
1523 (a = compound_stmt_rule(p)) // compound_stmt
1524 &&
1525 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1526 )
1527 {
1528 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001529 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001530 if (_res == NULL && PyErr_Occurred()) {
1531 p->error_indicator = 1;
1532 D(p->level--);
1533 return NULL;
1534 }
1535 goto done;
1536 }
1537 p->mark = _mark;
1538 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1540 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001541 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001542 if (p->error_indicator) {
1543 D(p->level--);
1544 return NULL;
1545 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001546 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1547 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001548 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001549 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001550 )
1551 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001552 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1553 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 goto done;
1555 }
1556 p->mark = _mark;
1557 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001559 }
1560 { // NEWLINE
1561 if (p->error_indicator) {
1562 D(p->level--);
1563 return NULL;
1564 }
1565 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1566 Token * newline_var;
1567 if (
1568 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1569 )
1570 {
1571 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1572 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1573 if (_token == NULL) {
1574 D(p->level--);
1575 return NULL;
1576 }
1577 int _end_lineno = _token->end_lineno;
1578 UNUSED(_end_lineno); // Only used by EXTRA macro
1579 int _end_col_offset = _token->end_col_offset;
1580 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001581 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001582 if (_res == NULL && PyErr_Occurred()) {
1583 p->error_indicator = 1;
1584 D(p->level--);
1585 return NULL;
1586 }
1587 goto done;
1588 }
1589 p->mark = _mark;
1590 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1592 }
1593 { // $
1594 if (p->error_indicator) {
1595 D(p->level--);
1596 return NULL;
1597 }
1598 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1599 Token * endmarker_var;
1600 if (
1601 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1602 )
1603 {
1604 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1605 _res = _PyPegen_interactive_exit ( p );
1606 if (_res == NULL && PyErr_Occurred()) {
1607 p->error_indicator = 1;
1608 D(p->level--);
1609 return NULL;
1610 }
1611 goto done;
1612 }
1613 p->mark = _mark;
1614 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1616 }
1617 _res = NULL;
1618 done:
1619 D(p->level--);
1620 return _res;
1621}
1622
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001623// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001624static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001625simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001626{
1627 D(p->level++);
1628 if (p->error_indicator) {
1629 D(p->level--);
1630 return NULL;
1631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001632 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001633 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001634 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001635 if (p->error_indicator) {
1636 D(p->level--);
1637 return NULL;
1638 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001640 stmt_ty a;
1641 Token * newline_var;
1642 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001643 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001644 &&
1645 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1646 &&
1647 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1648 )
1649 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001650 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001651 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001652 if (_res == NULL && PyErr_Occurred()) {
1653 p->error_indicator = 1;
1654 D(p->level--);
1655 return NULL;
1656 }
1657 goto done;
1658 }
1659 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001660 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001662 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001663 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001664 if (p->error_indicator) {
1665 D(p->level--);
1666 return NULL;
1667 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001668 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001669 void *_opt_var;
1670 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001671 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001672 Token * newline_var;
1673 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001675 &&
1676 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1677 &&
1678 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1679 )
1680 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001681 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001682 _res = a;
1683 if (_res == NULL && PyErr_Occurred()) {
1684 p->error_indicator = 1;
1685 D(p->level--);
1686 return NULL;
1687 }
1688 goto done;
1689 }
1690 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001691 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001693 }
1694 _res = NULL;
1695 done:
1696 D(p->level--);
1697 return _res;
1698}
1699
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001700// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001701// | assignment
1702// | star_expressions
1703// | &'return' return_stmt
1704// | &('import' | 'from') import_stmt
1705// | &'raise' raise_stmt
1706// | 'pass'
1707// | &'del' del_stmt
1708// | &'yield' yield_stmt
1709// | &'assert' assert_stmt
1710// | 'break'
1711// | 'continue'
1712// | &'global' global_stmt
1713// | &'nonlocal' nonlocal_stmt
1714static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001715simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001716{
1717 D(p->level++);
1718 if (p->error_indicator) {
1719 D(p->level--);
1720 return NULL;
1721 }
1722 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001723 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001724 D(p->level--);
1725 return _res;
1726 }
1727 int _mark = p->mark;
1728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1729 p->error_indicator = 1;
1730 D(p->level--);
1731 return NULL;
1732 }
1733 int _start_lineno = p->tokens[_mark]->lineno;
1734 UNUSED(_start_lineno); // Only used by EXTRA macro
1735 int _start_col_offset = p->tokens[_mark]->col_offset;
1736 UNUSED(_start_col_offset); // Only used by EXTRA macro
1737 { // assignment
1738 if (p->error_indicator) {
1739 D(p->level--);
1740 return NULL;
1741 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001742 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001743 stmt_ty assignment_var;
1744 if (
1745 (assignment_var = assignment_rule(p)) // assignment
1746 )
1747 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001748 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001749 _res = assignment_var;
1750 goto done;
1751 }
1752 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001753 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1755 }
1756 { // star_expressions
1757 if (p->error_indicator) {
1758 D(p->level--);
1759 return NULL;
1760 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001761 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001762 expr_ty e;
1763 if (
1764 (e = star_expressions_rule(p)) // star_expressions
1765 )
1766 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1769 if (_token == NULL) {
1770 D(p->level--);
1771 return NULL;
1772 }
1773 int _end_lineno = _token->end_lineno;
1774 UNUSED(_end_lineno); // Only used by EXTRA macro
1775 int _end_col_offset = _token->end_col_offset;
1776 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001777 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001778 if (_res == NULL && PyErr_Occurred()) {
1779 p->error_indicator = 1;
1780 D(p->level--);
1781 return NULL;
1782 }
1783 goto done;
1784 }
1785 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001786 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1788 }
1789 { // &'return' return_stmt
1790 if (p->error_indicator) {
1791 D(p->level--);
1792 return NULL;
1793 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001794 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001795 stmt_ty return_stmt_var;
1796 if (
1797 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1798 &&
1799 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1800 )
1801 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001802 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001803 _res = return_stmt_var;
1804 goto done;
1805 }
1806 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001807 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1809 }
1810 { // &('import' | 'from') import_stmt
1811 if (p->error_indicator) {
1812 D(p->level--);
1813 return NULL;
1814 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001815 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001816 stmt_ty import_stmt_var;
1817 if (
1818 _PyPegen_lookahead(1, _tmp_14_rule, p)
1819 &&
1820 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1821 )
1822 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001823 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001824 _res = import_stmt_var;
1825 goto done;
1826 }
1827 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001828 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1830 }
1831 { // &'raise' raise_stmt
1832 if (p->error_indicator) {
1833 D(p->level--);
1834 return NULL;
1835 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001836 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001837 stmt_ty raise_stmt_var;
1838 if (
1839 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1840 &&
1841 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1842 )
1843 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001844 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001845 _res = raise_stmt_var;
1846 goto done;
1847 }
1848 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001849 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1851 }
1852 { // 'pass'
1853 if (p->error_indicator) {
1854 D(p->level--);
1855 return NULL;
1856 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001857 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001858 Token * _keyword;
1859 if (
1860 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1861 )
1862 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1865 if (_token == NULL) {
1866 D(p->level--);
1867 return NULL;
1868 }
1869 int _end_lineno = _token->end_lineno;
1870 UNUSED(_end_lineno); // Only used by EXTRA macro
1871 int _end_col_offset = _token->end_col_offset;
1872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001873 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001874 if (_res == NULL && PyErr_Occurred()) {
1875 p->error_indicator = 1;
1876 D(p->level--);
1877 return NULL;
1878 }
1879 goto done;
1880 }
1881 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001882 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1884 }
1885 { // &'del' del_stmt
1886 if (p->error_indicator) {
1887 D(p->level--);
1888 return NULL;
1889 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001890 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001891 stmt_ty del_stmt_var;
1892 if (
1893 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1894 &&
1895 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1896 )
1897 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001898 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001899 _res = del_stmt_var;
1900 goto done;
1901 }
1902 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001903 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1905 }
1906 { // &'yield' yield_stmt
1907 if (p->error_indicator) {
1908 D(p->level--);
1909 return NULL;
1910 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001911 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001912 stmt_ty yield_stmt_var;
1913 if (
1914 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1915 &&
1916 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1917 )
1918 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001919 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001920 _res = yield_stmt_var;
1921 goto done;
1922 }
1923 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001924 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1926 }
1927 { // &'assert' assert_stmt
1928 if (p->error_indicator) {
1929 D(p->level--);
1930 return NULL;
1931 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001932 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001933 stmt_ty assert_stmt_var;
1934 if (
1935 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1936 &&
1937 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1938 )
1939 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001940 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001941 _res = assert_stmt_var;
1942 goto done;
1943 }
1944 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001945 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1947 }
1948 { // 'break'
1949 if (p->error_indicator) {
1950 D(p->level--);
1951 return NULL;
1952 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001953 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001954 Token * _keyword;
1955 if (
1956 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1957 )
1958 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1961 if (_token == NULL) {
1962 D(p->level--);
1963 return NULL;
1964 }
1965 int _end_lineno = _token->end_lineno;
1966 UNUSED(_end_lineno); // Only used by EXTRA macro
1967 int _end_col_offset = _token->end_col_offset;
1968 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001969 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001970 if (_res == NULL && PyErr_Occurred()) {
1971 p->error_indicator = 1;
1972 D(p->level--);
1973 return NULL;
1974 }
1975 goto done;
1976 }
1977 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001978 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1980 }
1981 { // 'continue'
1982 if (p->error_indicator) {
1983 D(p->level--);
1984 return NULL;
1985 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001986 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001987 Token * _keyword;
1988 if (
1989 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1990 )
1991 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1994 if (_token == NULL) {
1995 D(p->level--);
1996 return NULL;
1997 }
1998 int _end_lineno = _token->end_lineno;
1999 UNUSED(_end_lineno); // Only used by EXTRA macro
2000 int _end_col_offset = _token->end_col_offset;
2001 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002002 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002003 if (_res == NULL && PyErr_Occurred()) {
2004 p->error_indicator = 1;
2005 D(p->level--);
2006 return NULL;
2007 }
2008 goto done;
2009 }
2010 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002011 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2013 }
2014 { // &'global' global_stmt
2015 if (p->error_indicator) {
2016 D(p->level--);
2017 return NULL;
2018 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002019 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002020 stmt_ty global_stmt_var;
2021 if (
2022 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2023 &&
2024 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2025 )
2026 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002027 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002028 _res = global_stmt_var;
2029 goto done;
2030 }
2031 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002032 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2034 }
2035 { // &'nonlocal' nonlocal_stmt
2036 if (p->error_indicator) {
2037 D(p->level--);
2038 return NULL;
2039 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002040 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002041 stmt_ty nonlocal_stmt_var;
2042 if (
2043 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2044 &&
2045 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2046 )
2047 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002048 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002049 _res = nonlocal_stmt_var;
2050 goto done;
2051 }
2052 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002053 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2055 }
2056 _res = NULL;
2057 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002058 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002059 D(p->level--);
2060 return _res;
2061}
2062
2063// compound_stmt:
2064// | &('def' | '@' | ASYNC) function_def
2065// | &'if' if_stmt
2066// | &('class' | '@') class_def
2067// | &('with' | ASYNC) with_stmt
2068// | &('for' | ASYNC) for_stmt
2069// | &'try' try_stmt
2070// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002071// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002072static stmt_ty
2073compound_stmt_rule(Parser *p)
2074{
2075 D(p->level++);
2076 if (p->error_indicator) {
2077 D(p->level--);
2078 return NULL;
2079 }
2080 stmt_ty _res = NULL;
2081 int _mark = p->mark;
2082 { // &('def' | '@' | ASYNC) function_def
2083 if (p->error_indicator) {
2084 D(p->level--);
2085 return NULL;
2086 }
2087 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2088 stmt_ty function_def_var;
2089 if (
2090 _PyPegen_lookahead(1, _tmp_15_rule, p)
2091 &&
2092 (function_def_var = function_def_rule(p)) // function_def
2093 )
2094 {
2095 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2096 _res = function_def_var;
2097 goto done;
2098 }
2099 p->mark = _mark;
2100 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2102 }
2103 { // &'if' if_stmt
2104 if (p->error_indicator) {
2105 D(p->level--);
2106 return NULL;
2107 }
2108 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2109 stmt_ty if_stmt_var;
2110 if (
2111 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2112 &&
2113 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2114 )
2115 {
2116 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2117 _res = if_stmt_var;
2118 goto done;
2119 }
2120 p->mark = _mark;
2121 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2123 }
2124 { // &('class' | '@') class_def
2125 if (p->error_indicator) {
2126 D(p->level--);
2127 return NULL;
2128 }
2129 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2130 stmt_ty class_def_var;
2131 if (
2132 _PyPegen_lookahead(1, _tmp_16_rule, p)
2133 &&
2134 (class_def_var = class_def_rule(p)) // class_def
2135 )
2136 {
2137 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2138 _res = class_def_var;
2139 goto done;
2140 }
2141 p->mark = _mark;
2142 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2144 }
2145 { // &('with' | ASYNC) with_stmt
2146 if (p->error_indicator) {
2147 D(p->level--);
2148 return NULL;
2149 }
2150 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2151 stmt_ty with_stmt_var;
2152 if (
2153 _PyPegen_lookahead(1, _tmp_17_rule, p)
2154 &&
2155 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2156 )
2157 {
2158 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2159 _res = with_stmt_var;
2160 goto done;
2161 }
2162 p->mark = _mark;
2163 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2165 }
2166 { // &('for' | ASYNC) for_stmt
2167 if (p->error_indicator) {
2168 D(p->level--);
2169 return NULL;
2170 }
2171 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2172 stmt_ty for_stmt_var;
2173 if (
2174 _PyPegen_lookahead(1, _tmp_18_rule, p)
2175 &&
2176 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2177 )
2178 {
2179 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2180 _res = for_stmt_var;
2181 goto done;
2182 }
2183 p->mark = _mark;
2184 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2186 }
2187 { // &'try' try_stmt
2188 if (p->error_indicator) {
2189 D(p->level--);
2190 return NULL;
2191 }
2192 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2193 stmt_ty try_stmt_var;
2194 if (
2195 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2196 &&
2197 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2198 )
2199 {
2200 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2201 _res = try_stmt_var;
2202 goto done;
2203 }
2204 p->mark = _mark;
2205 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2207 }
2208 { // &'while' while_stmt
2209 if (p->error_indicator) {
2210 D(p->level--);
2211 return NULL;
2212 }
2213 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2214 stmt_ty while_stmt_var;
2215 if (
2216 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2217 &&
2218 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2219 )
2220 {
2221 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2222 _res = while_stmt_var;
2223 goto done;
2224 }
2225 p->mark = _mark;
2226 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2228 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002229 { // match_stmt
2230 if (p->error_indicator) {
2231 D(p->level--);
2232 return NULL;
2233 }
2234 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2235 stmt_ty match_stmt_var;
2236 if (
2237 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2238 )
2239 {
2240 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2241 _res = match_stmt_var;
2242 goto done;
2243 }
2244 p->mark = _mark;
2245 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2247 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002248 _res = NULL;
2249 done:
2250 D(p->level--);
2251 return _res;
2252}
2253
2254// assignment:
2255// | NAME ':' expression ['=' annotated_rhs]
2256// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2257// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002258// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002259// | invalid_assignment
2260static stmt_ty
2261assignment_rule(Parser *p)
2262{
2263 D(p->level++);
2264 if (p->error_indicator) {
2265 D(p->level--);
2266 return NULL;
2267 }
2268 stmt_ty _res = NULL;
2269 int _mark = p->mark;
2270 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2271 p->error_indicator = 1;
2272 D(p->level--);
2273 return NULL;
2274 }
2275 int _start_lineno = p->tokens[_mark]->lineno;
2276 UNUSED(_start_lineno); // Only used by EXTRA macro
2277 int _start_col_offset = p->tokens[_mark]->col_offset;
2278 UNUSED(_start_col_offset); // Only used by EXTRA macro
2279 { // NAME ':' expression ['=' annotated_rhs]
2280 if (p->error_indicator) {
2281 D(p->level--);
2282 return NULL;
2283 }
2284 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2285 Token * _literal;
2286 expr_ty a;
2287 expr_ty b;
2288 void *c;
2289 if (
2290 (a = _PyPegen_name_token(p)) // NAME
2291 &&
2292 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2293 &&
2294 (b = expression_rule(p)) // expression
2295 &&
2296 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2297 )
2298 {
2299 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2300 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2301 if (_token == NULL) {
2302 D(p->level--);
2303 return NULL;
2304 }
2305 int _end_lineno = _token->end_lineno;
2306 UNUSED(_end_lineno); // Only used by EXTRA macro
2307 int _end_col_offset = _token->end_col_offset;
2308 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002309 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002310 if (_res == NULL && PyErr_Occurred()) {
2311 p->error_indicator = 1;
2312 D(p->level--);
2313 return NULL;
2314 }
2315 goto done;
2316 }
2317 p->mark = _mark;
2318 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2320 }
2321 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2322 if (p->error_indicator) {
2323 D(p->level--);
2324 return NULL;
2325 }
2326 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2327 Token * _literal;
2328 void *a;
2329 expr_ty b;
2330 void *c;
2331 if (
2332 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2333 &&
2334 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2335 &&
2336 (b = expression_rule(p)) // expression
2337 &&
2338 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2339 )
2340 {
2341 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2342 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2343 if (_token == NULL) {
2344 D(p->level--);
2345 return NULL;
2346 }
2347 int _end_lineno = _token->end_lineno;
2348 UNUSED(_end_lineno); // Only used by EXTRA macro
2349 int _end_col_offset = _token->end_col_offset;
2350 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002351 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002352 if (_res == NULL && PyErr_Occurred()) {
2353 p->error_indicator = 1;
2354 D(p->level--);
2355 return NULL;
2356 }
2357 goto done;
2358 }
2359 p->mark = _mark;
2360 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2362 }
2363 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2364 if (p->error_indicator) {
2365 D(p->level--);
2366 return NULL;
2367 }
2368 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01002369 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002370 void *b;
2371 void *tc;
2372 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002373 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002374 &&
2375 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2376 &&
2377 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2378 &&
2379 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2380 )
2381 {
2382 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2384 if (_token == NULL) {
2385 D(p->level--);
2386 return NULL;
2387 }
2388 int _end_lineno = _token->end_lineno;
2389 UNUSED(_end_lineno); // Only used by EXTRA macro
2390 int _end_col_offset = _token->end_col_offset;
2391 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002392 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002393 if (_res == NULL && PyErr_Occurred()) {
2394 p->error_indicator = 1;
2395 D(p->level--);
2396 return NULL;
2397 }
2398 goto done;
2399 }
2400 p->mark = _mark;
2401 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2403 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002404 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002405 if (p->error_indicator) {
2406 D(p->level--);
2407 return NULL;
2408 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002409 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2410 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002411 expr_ty a;
2412 AugOperator* b;
2413 void *c;
2414 if (
2415 (a = single_target_rule(p)) // single_target
2416 &&
2417 (b = augassign_rule(p)) // augassign
2418 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002419 (_cut_var = 1)
2420 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002421 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2422 )
2423 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002424 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2426 if (_token == NULL) {
2427 D(p->level--);
2428 return NULL;
2429 }
2430 int _end_lineno = _token->end_lineno;
2431 UNUSED(_end_lineno); // Only used by EXTRA macro
2432 int _end_col_offset = _token->end_col_offset;
2433 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002434 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002435 if (_res == NULL && PyErr_Occurred()) {
2436 p->error_indicator = 1;
2437 D(p->level--);
2438 return NULL;
2439 }
2440 goto done;
2441 }
2442 p->mark = _mark;
2443 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2445 if (_cut_var) {
2446 D(p->level--);
2447 return NULL;
2448 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002449 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002450 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002451 if (p->error_indicator) {
2452 D(p->level--);
2453 return NULL;
2454 }
2455 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2456 void *invalid_assignment_var;
2457 if (
2458 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2459 )
2460 {
2461 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2462 _res = invalid_assignment_var;
2463 goto done;
2464 }
2465 p->mark = _mark;
2466 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2468 }
2469 _res = NULL;
2470 done:
2471 D(p->level--);
2472 return _res;
2473}
2474
2475// augassign:
2476// | '+='
2477// | '-='
2478// | '*='
2479// | '@='
2480// | '/='
2481// | '%='
2482// | '&='
2483// | '|='
2484// | '^='
2485// | '<<='
2486// | '>>='
2487// | '**='
2488// | '//='
2489static AugOperator*
2490augassign_rule(Parser *p)
2491{
2492 D(p->level++);
2493 if (p->error_indicator) {
2494 D(p->level--);
2495 return NULL;
2496 }
2497 AugOperator* _res = NULL;
2498 int _mark = p->mark;
2499 { // '+='
2500 if (p->error_indicator) {
2501 D(p->level--);
2502 return NULL;
2503 }
2504 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2505 Token * _literal;
2506 if (
2507 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2508 )
2509 {
2510 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2511 _res = _PyPegen_augoperator ( p , Add );
2512 if (_res == NULL && PyErr_Occurred()) {
2513 p->error_indicator = 1;
2514 D(p->level--);
2515 return NULL;
2516 }
2517 goto done;
2518 }
2519 p->mark = _mark;
2520 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2522 }
2523 { // '-='
2524 if (p->error_indicator) {
2525 D(p->level--);
2526 return NULL;
2527 }
2528 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2529 Token * _literal;
2530 if (
2531 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2532 )
2533 {
2534 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2535 _res = _PyPegen_augoperator ( p , Sub );
2536 if (_res == NULL && PyErr_Occurred()) {
2537 p->error_indicator = 1;
2538 D(p->level--);
2539 return NULL;
2540 }
2541 goto done;
2542 }
2543 p->mark = _mark;
2544 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2546 }
2547 { // '*='
2548 if (p->error_indicator) {
2549 D(p->level--);
2550 return NULL;
2551 }
2552 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2553 Token * _literal;
2554 if (
2555 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2556 )
2557 {
2558 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2559 _res = _PyPegen_augoperator ( p , Mult );
2560 if (_res == NULL && PyErr_Occurred()) {
2561 p->error_indicator = 1;
2562 D(p->level--);
2563 return NULL;
2564 }
2565 goto done;
2566 }
2567 p->mark = _mark;
2568 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2570 }
2571 { // '@='
2572 if (p->error_indicator) {
2573 D(p->level--);
2574 return NULL;
2575 }
2576 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2577 Token * _literal;
2578 if (
2579 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2580 )
2581 {
2582 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002583 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002584 if (_res == NULL && PyErr_Occurred()) {
2585 p->error_indicator = 1;
2586 D(p->level--);
2587 return NULL;
2588 }
2589 goto done;
2590 }
2591 p->mark = _mark;
2592 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2594 }
2595 { // '/='
2596 if (p->error_indicator) {
2597 D(p->level--);
2598 return NULL;
2599 }
2600 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2601 Token * _literal;
2602 if (
2603 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2604 )
2605 {
2606 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2607 _res = _PyPegen_augoperator ( p , Div );
2608 if (_res == NULL && PyErr_Occurred()) {
2609 p->error_indicator = 1;
2610 D(p->level--);
2611 return NULL;
2612 }
2613 goto done;
2614 }
2615 p->mark = _mark;
2616 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2618 }
2619 { // '%='
2620 if (p->error_indicator) {
2621 D(p->level--);
2622 return NULL;
2623 }
2624 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2625 Token * _literal;
2626 if (
2627 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2628 )
2629 {
2630 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2631 _res = _PyPegen_augoperator ( p , Mod );
2632 if (_res == NULL && PyErr_Occurred()) {
2633 p->error_indicator = 1;
2634 D(p->level--);
2635 return NULL;
2636 }
2637 goto done;
2638 }
2639 p->mark = _mark;
2640 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2642 }
2643 { // '&='
2644 if (p->error_indicator) {
2645 D(p->level--);
2646 return NULL;
2647 }
2648 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2649 Token * _literal;
2650 if (
2651 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2652 )
2653 {
2654 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2655 _res = _PyPegen_augoperator ( p , BitAnd );
2656 if (_res == NULL && PyErr_Occurred()) {
2657 p->error_indicator = 1;
2658 D(p->level--);
2659 return NULL;
2660 }
2661 goto done;
2662 }
2663 p->mark = _mark;
2664 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2666 }
2667 { // '|='
2668 if (p->error_indicator) {
2669 D(p->level--);
2670 return NULL;
2671 }
2672 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2673 Token * _literal;
2674 if (
2675 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2676 )
2677 {
2678 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2679 _res = _PyPegen_augoperator ( p , BitOr );
2680 if (_res == NULL && PyErr_Occurred()) {
2681 p->error_indicator = 1;
2682 D(p->level--);
2683 return NULL;
2684 }
2685 goto done;
2686 }
2687 p->mark = _mark;
2688 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2690 }
2691 { // '^='
2692 if (p->error_indicator) {
2693 D(p->level--);
2694 return NULL;
2695 }
2696 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2697 Token * _literal;
2698 if (
2699 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2700 )
2701 {
2702 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2703 _res = _PyPegen_augoperator ( p , BitXor );
2704 if (_res == NULL && PyErr_Occurred()) {
2705 p->error_indicator = 1;
2706 D(p->level--);
2707 return NULL;
2708 }
2709 goto done;
2710 }
2711 p->mark = _mark;
2712 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2714 }
2715 { // '<<='
2716 if (p->error_indicator) {
2717 D(p->level--);
2718 return NULL;
2719 }
2720 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2721 Token * _literal;
2722 if (
2723 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2724 )
2725 {
2726 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2727 _res = _PyPegen_augoperator ( p , LShift );
2728 if (_res == NULL && PyErr_Occurred()) {
2729 p->error_indicator = 1;
2730 D(p->level--);
2731 return NULL;
2732 }
2733 goto done;
2734 }
2735 p->mark = _mark;
2736 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2738 }
2739 { // '>>='
2740 if (p->error_indicator) {
2741 D(p->level--);
2742 return NULL;
2743 }
2744 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2745 Token * _literal;
2746 if (
2747 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2748 )
2749 {
2750 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2751 _res = _PyPegen_augoperator ( p , RShift );
2752 if (_res == NULL && PyErr_Occurred()) {
2753 p->error_indicator = 1;
2754 D(p->level--);
2755 return NULL;
2756 }
2757 goto done;
2758 }
2759 p->mark = _mark;
2760 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2762 }
2763 { // '**='
2764 if (p->error_indicator) {
2765 D(p->level--);
2766 return NULL;
2767 }
2768 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2769 Token * _literal;
2770 if (
2771 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2772 )
2773 {
2774 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2775 _res = _PyPegen_augoperator ( p , Pow );
2776 if (_res == NULL && PyErr_Occurred()) {
2777 p->error_indicator = 1;
2778 D(p->level--);
2779 return NULL;
2780 }
2781 goto done;
2782 }
2783 p->mark = _mark;
2784 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2786 }
2787 { // '//='
2788 if (p->error_indicator) {
2789 D(p->level--);
2790 return NULL;
2791 }
2792 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2793 Token * _literal;
2794 if (
2795 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2796 )
2797 {
2798 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2799 _res = _PyPegen_augoperator ( p , FloorDiv );
2800 if (_res == NULL && PyErr_Occurred()) {
2801 p->error_indicator = 1;
2802 D(p->level--);
2803 return NULL;
2804 }
2805 goto done;
2806 }
2807 p->mark = _mark;
2808 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2810 }
2811 _res = NULL;
2812 done:
2813 D(p->level--);
2814 return _res;
2815}
2816
2817// global_stmt: 'global' ','.NAME+
2818static stmt_ty
2819global_stmt_rule(Parser *p)
2820{
2821 D(p->level++);
2822 if (p->error_indicator) {
2823 D(p->level--);
2824 return NULL;
2825 }
2826 stmt_ty _res = NULL;
2827 int _mark = p->mark;
2828 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2829 p->error_indicator = 1;
2830 D(p->level--);
2831 return NULL;
2832 }
2833 int _start_lineno = p->tokens[_mark]->lineno;
2834 UNUSED(_start_lineno); // Only used by EXTRA macro
2835 int _start_col_offset = p->tokens[_mark]->col_offset;
2836 UNUSED(_start_col_offset); // Only used by EXTRA macro
2837 { // 'global' ','.NAME+
2838 if (p->error_indicator) {
2839 D(p->level--);
2840 return NULL;
2841 }
2842 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2843 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002844 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002845 if (
2846 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2847 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002848 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002849 )
2850 {
2851 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2852 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2853 if (_token == NULL) {
2854 D(p->level--);
2855 return NULL;
2856 }
2857 int _end_lineno = _token->end_lineno;
2858 UNUSED(_end_lineno); // Only used by EXTRA macro
2859 int _end_col_offset = _token->end_col_offset;
2860 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002861 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002862 if (_res == NULL && PyErr_Occurred()) {
2863 p->error_indicator = 1;
2864 D(p->level--);
2865 return NULL;
2866 }
2867 goto done;
2868 }
2869 p->mark = _mark;
2870 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2872 }
2873 _res = NULL;
2874 done:
2875 D(p->level--);
2876 return _res;
2877}
2878
2879// nonlocal_stmt: 'nonlocal' ','.NAME+
2880static stmt_ty
2881nonlocal_stmt_rule(Parser *p)
2882{
2883 D(p->level++);
2884 if (p->error_indicator) {
2885 D(p->level--);
2886 return NULL;
2887 }
2888 stmt_ty _res = NULL;
2889 int _mark = p->mark;
2890 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2891 p->error_indicator = 1;
2892 D(p->level--);
2893 return NULL;
2894 }
2895 int _start_lineno = p->tokens[_mark]->lineno;
2896 UNUSED(_start_lineno); // Only used by EXTRA macro
2897 int _start_col_offset = p->tokens[_mark]->col_offset;
2898 UNUSED(_start_col_offset); // Only used by EXTRA macro
2899 { // 'nonlocal' ','.NAME+
2900 if (p->error_indicator) {
2901 D(p->level--);
2902 return NULL;
2903 }
2904 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2905 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002906 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002907 if (
2908 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2909 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002910 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002911 )
2912 {
2913 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2914 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2915 if (_token == NULL) {
2916 D(p->level--);
2917 return NULL;
2918 }
2919 int _end_lineno = _token->end_lineno;
2920 UNUSED(_end_lineno); // Only used by EXTRA macro
2921 int _end_col_offset = _token->end_col_offset;
2922 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002923 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002924 if (_res == NULL && PyErr_Occurred()) {
2925 p->error_indicator = 1;
2926 D(p->level--);
2927 return NULL;
2928 }
2929 goto done;
2930 }
2931 p->mark = _mark;
2932 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2934 }
2935 _res = NULL;
2936 done:
2937 D(p->level--);
2938 return _res;
2939}
2940
2941// yield_stmt: yield_expr
2942static stmt_ty
2943yield_stmt_rule(Parser *p)
2944{
2945 D(p->level++);
2946 if (p->error_indicator) {
2947 D(p->level--);
2948 return NULL;
2949 }
2950 stmt_ty _res = NULL;
2951 int _mark = p->mark;
2952 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2953 p->error_indicator = 1;
2954 D(p->level--);
2955 return NULL;
2956 }
2957 int _start_lineno = p->tokens[_mark]->lineno;
2958 UNUSED(_start_lineno); // Only used by EXTRA macro
2959 int _start_col_offset = p->tokens[_mark]->col_offset;
2960 UNUSED(_start_col_offset); // Only used by EXTRA macro
2961 { // yield_expr
2962 if (p->error_indicator) {
2963 D(p->level--);
2964 return NULL;
2965 }
2966 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2967 expr_ty y;
2968 if (
2969 (y = yield_expr_rule(p)) // yield_expr
2970 )
2971 {
2972 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2973 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2974 if (_token == NULL) {
2975 D(p->level--);
2976 return NULL;
2977 }
2978 int _end_lineno = _token->end_lineno;
2979 UNUSED(_end_lineno); // Only used by EXTRA macro
2980 int _end_col_offset = _token->end_col_offset;
2981 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002982 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002983 if (_res == NULL && PyErr_Occurred()) {
2984 p->error_indicator = 1;
2985 D(p->level--);
2986 return NULL;
2987 }
2988 goto done;
2989 }
2990 p->mark = _mark;
2991 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2993 }
2994 _res = NULL;
2995 done:
2996 D(p->level--);
2997 return _res;
2998}
2999
3000// assert_stmt: 'assert' expression [',' expression]
3001static stmt_ty
3002assert_stmt_rule(Parser *p)
3003{
3004 D(p->level++);
3005 if (p->error_indicator) {
3006 D(p->level--);
3007 return NULL;
3008 }
3009 stmt_ty _res = NULL;
3010 int _mark = p->mark;
3011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3012 p->error_indicator = 1;
3013 D(p->level--);
3014 return NULL;
3015 }
3016 int _start_lineno = p->tokens[_mark]->lineno;
3017 UNUSED(_start_lineno); // Only used by EXTRA macro
3018 int _start_col_offset = p->tokens[_mark]->col_offset;
3019 UNUSED(_start_col_offset); // Only used by EXTRA macro
3020 { // 'assert' expression [',' expression]
3021 if (p->error_indicator) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3026 Token * _keyword;
3027 expr_ty a;
3028 void *b;
3029 if (
3030 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3031 &&
3032 (a = expression_rule(p)) // expression
3033 &&
3034 (b = _tmp_29_rule(p), 1) // [',' expression]
3035 )
3036 {
3037 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3039 if (_token == NULL) {
3040 D(p->level--);
3041 return NULL;
3042 }
3043 int _end_lineno = _token->end_lineno;
3044 UNUSED(_end_lineno); // Only used by EXTRA macro
3045 int _end_col_offset = _token->end_col_offset;
3046 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003047 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003048 if (_res == NULL && PyErr_Occurred()) {
3049 p->error_indicator = 1;
3050 D(p->level--);
3051 return NULL;
3052 }
3053 goto done;
3054 }
3055 p->mark = _mark;
3056 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3058 }
3059 _res = NULL;
3060 done:
3061 D(p->level--);
3062 return _res;
3063}
3064
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003065// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003066static stmt_ty
3067del_stmt_rule(Parser *p)
3068{
3069 D(p->level++);
3070 if (p->error_indicator) {
3071 D(p->level--);
3072 return NULL;
3073 }
3074 stmt_ty _res = NULL;
3075 int _mark = p->mark;
3076 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3077 p->error_indicator = 1;
3078 D(p->level--);
3079 return NULL;
3080 }
3081 int _start_lineno = p->tokens[_mark]->lineno;
3082 UNUSED(_start_lineno); // Only used by EXTRA macro
3083 int _start_col_offset = p->tokens[_mark]->col_offset;
3084 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003085 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003086 if (p->error_indicator) {
3087 D(p->level--);
3088 return NULL;
3089 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003090 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003091 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003092 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003093 if (
3094 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3095 &&
3096 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003097 &&
3098 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003099 )
3100 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003101 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3103 if (_token == NULL) {
3104 D(p->level--);
3105 return NULL;
3106 }
3107 int _end_lineno = _token->end_lineno;
3108 UNUSED(_end_lineno); // Only used by EXTRA macro
3109 int _end_col_offset = _token->end_col_offset;
3110 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003111 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003112 if (_res == NULL && PyErr_Occurred()) {
3113 p->error_indicator = 1;
3114 D(p->level--);
3115 return NULL;
3116 }
3117 goto done;
3118 }
3119 p->mark = _mark;
3120 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3122 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003123 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003124 if (p->error_indicator) {
3125 D(p->level--);
3126 return NULL;
3127 }
3128 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3129 void *invalid_del_stmt_var;
3130 if (
3131 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3132 )
3133 {
3134 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3135 _res = invalid_del_stmt_var;
3136 goto done;
3137 }
3138 p->mark = _mark;
3139 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003141 }
3142 _res = NULL;
3143 done:
3144 D(p->level--);
3145 return _res;
3146}
3147
3148// import_stmt: import_name | import_from
3149static stmt_ty
3150import_stmt_rule(Parser *p)
3151{
3152 D(p->level++);
3153 if (p->error_indicator) {
3154 D(p->level--);
3155 return NULL;
3156 }
3157 stmt_ty _res = NULL;
3158 int _mark = p->mark;
3159 { // import_name
3160 if (p->error_indicator) {
3161 D(p->level--);
3162 return NULL;
3163 }
3164 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3165 stmt_ty import_name_var;
3166 if (
3167 (import_name_var = import_name_rule(p)) // import_name
3168 )
3169 {
3170 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3171 _res = import_name_var;
3172 goto done;
3173 }
3174 p->mark = _mark;
3175 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3177 }
3178 { // import_from
3179 if (p->error_indicator) {
3180 D(p->level--);
3181 return NULL;
3182 }
3183 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3184 stmt_ty import_from_var;
3185 if (
3186 (import_from_var = import_from_rule(p)) // import_from
3187 )
3188 {
3189 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3190 _res = import_from_var;
3191 goto done;
3192 }
3193 p->mark = _mark;
3194 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3196 }
3197 _res = NULL;
3198 done:
3199 D(p->level--);
3200 return _res;
3201}
3202
3203// import_name: 'import' dotted_as_names
3204static stmt_ty
3205import_name_rule(Parser *p)
3206{
3207 D(p->level++);
3208 if (p->error_indicator) {
3209 D(p->level--);
3210 return NULL;
3211 }
3212 stmt_ty _res = NULL;
3213 int _mark = p->mark;
3214 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3215 p->error_indicator = 1;
3216 D(p->level--);
3217 return NULL;
3218 }
3219 int _start_lineno = p->tokens[_mark]->lineno;
3220 UNUSED(_start_lineno); // Only used by EXTRA macro
3221 int _start_col_offset = p->tokens[_mark]->col_offset;
3222 UNUSED(_start_col_offset); // Only used by EXTRA macro
3223 { // 'import' dotted_as_names
3224 if (p->error_indicator) {
3225 D(p->level--);
3226 return NULL;
3227 }
3228 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3229 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003230 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003231 if (
3232 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3233 &&
3234 (a = dotted_as_names_rule(p)) // dotted_as_names
3235 )
3236 {
3237 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3238 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3239 if (_token == NULL) {
3240 D(p->level--);
3241 return NULL;
3242 }
3243 int _end_lineno = _token->end_lineno;
3244 UNUSED(_end_lineno); // Only used by EXTRA macro
3245 int _end_col_offset = _token->end_col_offset;
3246 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003247 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003248 if (_res == NULL && PyErr_Occurred()) {
3249 p->error_indicator = 1;
3250 D(p->level--);
3251 return NULL;
3252 }
3253 goto done;
3254 }
3255 p->mark = _mark;
3256 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3258 }
3259 _res = NULL;
3260 done:
3261 D(p->level--);
3262 return _res;
3263}
3264
3265// import_from:
3266// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3267// | 'from' (('.' | '...'))+ 'import' import_from_targets
3268static stmt_ty
3269import_from_rule(Parser *p)
3270{
3271 D(p->level++);
3272 if (p->error_indicator) {
3273 D(p->level--);
3274 return NULL;
3275 }
3276 stmt_ty _res = NULL;
3277 int _mark = p->mark;
3278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3279 p->error_indicator = 1;
3280 D(p->level--);
3281 return NULL;
3282 }
3283 int _start_lineno = p->tokens[_mark]->lineno;
3284 UNUSED(_start_lineno); // Only used by EXTRA macro
3285 int _start_col_offset = p->tokens[_mark]->col_offset;
3286 UNUSED(_start_col_offset); // Only used by EXTRA macro
3287 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3288 if (p->error_indicator) {
3289 D(p->level--);
3290 return NULL;
3291 }
3292 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3293 Token * _keyword;
3294 Token * _keyword_1;
3295 asdl_seq * a;
3296 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003297 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003298 if (
3299 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3300 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003301 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003302 &&
3303 (b = dotted_name_rule(p)) // dotted_name
3304 &&
3305 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3306 &&
3307 (c = import_from_targets_rule(p)) // import_from_targets
3308 )
3309 {
3310 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3312 if (_token == NULL) {
3313 D(p->level--);
3314 return NULL;
3315 }
3316 int _end_lineno = _token->end_lineno;
3317 UNUSED(_end_lineno); // Only used by EXTRA macro
3318 int _end_col_offset = _token->end_col_offset;
3319 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003320 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003321 if (_res == NULL && PyErr_Occurred()) {
3322 p->error_indicator = 1;
3323 D(p->level--);
3324 return NULL;
3325 }
3326 goto done;
3327 }
3328 p->mark = _mark;
3329 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3331 }
3332 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3333 if (p->error_indicator) {
3334 D(p->level--);
3335 return NULL;
3336 }
3337 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3338 Token * _keyword;
3339 Token * _keyword_1;
3340 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003341 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003342 if (
3343 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3344 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003345 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003346 &&
3347 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3348 &&
3349 (b = import_from_targets_rule(p)) // import_from_targets
3350 )
3351 {
3352 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3353 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3354 if (_token == NULL) {
3355 D(p->level--);
3356 return NULL;
3357 }
3358 int _end_lineno = _token->end_lineno;
3359 UNUSED(_end_lineno); // Only used by EXTRA macro
3360 int _end_col_offset = _token->end_col_offset;
3361 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003362 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003363 if (_res == NULL && PyErr_Occurred()) {
3364 p->error_indicator = 1;
3365 D(p->level--);
3366 return NULL;
3367 }
3368 goto done;
3369 }
3370 p->mark = _mark;
3371 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3373 }
3374 _res = NULL;
3375 done:
3376 D(p->level--);
3377 return _res;
3378}
3379
3380// import_from_targets:
3381// | '(' import_from_as_names ','? ')'
3382// | import_from_as_names !','
3383// | '*'
3384// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003385static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003386import_from_targets_rule(Parser *p)
3387{
3388 D(p->level++);
3389 if (p->error_indicator) {
3390 D(p->level--);
3391 return NULL;
3392 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003393 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003394 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3396 p->error_indicator = 1;
3397 D(p->level--);
3398 return NULL;
3399 }
3400 int _start_lineno = p->tokens[_mark]->lineno;
3401 UNUSED(_start_lineno); // Only used by EXTRA macro
3402 int _start_col_offset = p->tokens[_mark]->col_offset;
3403 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003404 { // '(' import_from_as_names ','? ')'
3405 if (p->error_indicator) {
3406 D(p->level--);
3407 return NULL;
3408 }
3409 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3410 Token * _literal;
3411 Token * _literal_1;
3412 void *_opt_var;
3413 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003414 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003415 if (
3416 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3417 &&
3418 (a = import_from_as_names_rule(p)) // import_from_as_names
3419 &&
3420 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3421 &&
3422 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3423 )
3424 {
3425 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3426 _res = a;
3427 if (_res == NULL && PyErr_Occurred()) {
3428 p->error_indicator = 1;
3429 D(p->level--);
3430 return NULL;
3431 }
3432 goto done;
3433 }
3434 p->mark = _mark;
3435 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3437 }
3438 { // import_from_as_names !','
3439 if (p->error_indicator) {
3440 D(p->level--);
3441 return NULL;
3442 }
3443 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003444 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003445 if (
3446 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3447 &&
3448 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3449 )
3450 {
3451 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3452 _res = import_from_as_names_var;
3453 goto done;
3454 }
3455 p->mark = _mark;
3456 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3458 }
3459 { // '*'
3460 if (p->error_indicator) {
3461 D(p->level--);
3462 return NULL;
3463 }
3464 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3465 Token * _literal;
3466 if (
3467 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3468 )
3469 {
3470 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3472 if (_token == NULL) {
3473 D(p->level--);
3474 return NULL;
3475 }
3476 int _end_lineno = _token->end_lineno;
3477 UNUSED(_end_lineno); // Only used by EXTRA macro
3478 int _end_col_offset = _token->end_col_offset;
3479 UNUSED(_end_col_offset); // Only used by EXTRA macro
3480 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003481 if (_res == NULL && PyErr_Occurred()) {
3482 p->error_indicator = 1;
3483 D(p->level--);
3484 return NULL;
3485 }
3486 goto done;
3487 }
3488 p->mark = _mark;
3489 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3491 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003492 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003493 if (p->error_indicator) {
3494 D(p->level--);
3495 return NULL;
3496 }
3497 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3498 void *invalid_import_from_targets_var;
3499 if (
3500 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3501 )
3502 {
3503 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3504 _res = invalid_import_from_targets_var;
3505 goto done;
3506 }
3507 p->mark = _mark;
3508 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3510 }
3511 _res = NULL;
3512 done:
3513 D(p->level--);
3514 return _res;
3515}
3516
3517// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003518static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003519import_from_as_names_rule(Parser *p)
3520{
3521 D(p->level++);
3522 if (p->error_indicator) {
3523 D(p->level--);
3524 return NULL;
3525 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003526 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003527 int _mark = p->mark;
3528 { // ','.import_from_as_name+
3529 if (p->error_indicator) {
3530 D(p->level--);
3531 return NULL;
3532 }
3533 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003534 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003535 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003536 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003537 )
3538 {
3539 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3540 _res = a;
3541 if (_res == NULL && PyErr_Occurred()) {
3542 p->error_indicator = 1;
3543 D(p->level--);
3544 return NULL;
3545 }
3546 goto done;
3547 }
3548 p->mark = _mark;
3549 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3551 }
3552 _res = NULL;
3553 done:
3554 D(p->level--);
3555 return _res;
3556}
3557
3558// import_from_as_name: NAME ['as' NAME]
3559static alias_ty
3560import_from_as_name_rule(Parser *p)
3561{
3562 D(p->level++);
3563 if (p->error_indicator) {
3564 D(p->level--);
3565 return NULL;
3566 }
3567 alias_ty _res = NULL;
3568 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003569 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3570 p->error_indicator = 1;
3571 D(p->level--);
3572 return NULL;
3573 }
3574 int _start_lineno = p->tokens[_mark]->lineno;
3575 UNUSED(_start_lineno); // Only used by EXTRA macro
3576 int _start_col_offset = p->tokens[_mark]->col_offset;
3577 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003578 { // NAME ['as' NAME]
3579 if (p->error_indicator) {
3580 D(p->level--);
3581 return NULL;
3582 }
3583 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3584 expr_ty a;
3585 void *b;
3586 if (
3587 (a = _PyPegen_name_token(p)) // NAME
3588 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003589 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003590 )
3591 {
3592 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003593 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3594 if (_token == NULL) {
3595 D(p->level--);
3596 return NULL;
3597 }
3598 int _end_lineno = _token->end_lineno;
3599 UNUSED(_end_lineno); // Only used by EXTRA macro
3600 int _end_col_offset = _token->end_col_offset;
3601 UNUSED(_end_col_offset); // Only used by EXTRA macro
3602 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003603 if (_res == NULL && PyErr_Occurred()) {
3604 p->error_indicator = 1;
3605 D(p->level--);
3606 return NULL;
3607 }
3608 goto done;
3609 }
3610 p->mark = _mark;
3611 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3613 }
3614 _res = NULL;
3615 done:
3616 D(p->level--);
3617 return _res;
3618}
3619
3620// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003621static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003622dotted_as_names_rule(Parser *p)
3623{
3624 D(p->level++);
3625 if (p->error_indicator) {
3626 D(p->level--);
3627 return NULL;
3628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003629 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003630 int _mark = p->mark;
3631 { // ','.dotted_as_name+
3632 if (p->error_indicator) {
3633 D(p->level--);
3634 return NULL;
3635 }
3636 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003637 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003638 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003639 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003640 )
3641 {
3642 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3643 _res = a;
3644 if (_res == NULL && PyErr_Occurred()) {
3645 p->error_indicator = 1;
3646 D(p->level--);
3647 return NULL;
3648 }
3649 goto done;
3650 }
3651 p->mark = _mark;
3652 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3654 }
3655 _res = NULL;
3656 done:
3657 D(p->level--);
3658 return _res;
3659}
3660
3661// dotted_as_name: dotted_name ['as' NAME]
3662static alias_ty
3663dotted_as_name_rule(Parser *p)
3664{
3665 D(p->level++);
3666 if (p->error_indicator) {
3667 D(p->level--);
3668 return NULL;
3669 }
3670 alias_ty _res = NULL;
3671 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003672 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3673 p->error_indicator = 1;
3674 D(p->level--);
3675 return NULL;
3676 }
3677 int _start_lineno = p->tokens[_mark]->lineno;
3678 UNUSED(_start_lineno); // Only used by EXTRA macro
3679 int _start_col_offset = p->tokens[_mark]->col_offset;
3680 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003681 { // dotted_name ['as' NAME]
3682 if (p->error_indicator) {
3683 D(p->level--);
3684 return NULL;
3685 }
3686 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3687 expr_ty a;
3688 void *b;
3689 if (
3690 (a = dotted_name_rule(p)) // dotted_name
3691 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003692 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003693 )
3694 {
3695 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3697 if (_token == NULL) {
3698 D(p->level--);
3699 return NULL;
3700 }
3701 int _end_lineno = _token->end_lineno;
3702 UNUSED(_end_lineno); // Only used by EXTRA macro
3703 int _end_col_offset = _token->end_col_offset;
3704 UNUSED(_end_col_offset); // Only used by EXTRA macro
3705 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003706 if (_res == NULL && PyErr_Occurred()) {
3707 p->error_indicator = 1;
3708 D(p->level--);
3709 return NULL;
3710 }
3711 goto done;
3712 }
3713 p->mark = _mark;
3714 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3716 }
3717 _res = NULL;
3718 done:
3719 D(p->level--);
3720 return _res;
3721}
3722
3723// Left-recursive
3724// dotted_name: dotted_name '.' NAME | NAME
3725static expr_ty dotted_name_raw(Parser *);
3726static expr_ty
3727dotted_name_rule(Parser *p)
3728{
3729 D(p->level++);
3730 expr_ty _res = NULL;
3731 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3732 D(p->level--);
3733 return _res;
3734 }
3735 int _mark = p->mark;
3736 int _resmark = p->mark;
3737 while (1) {
3738 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3739 if (tmpvar_0) {
3740 D(p->level--);
3741 return _res;
3742 }
3743 p->mark = _mark;
3744 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003745 if (p->error_indicator)
3746 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003747 if (_raw == NULL || p->mark <= _resmark)
3748 break;
3749 _resmark = p->mark;
3750 _res = _raw;
3751 }
3752 p->mark = _resmark;
3753 D(p->level--);
3754 return _res;
3755}
3756static expr_ty
3757dotted_name_raw(Parser *p)
3758{
3759 D(p->level++);
3760 if (p->error_indicator) {
3761 D(p->level--);
3762 return NULL;
3763 }
3764 expr_ty _res = NULL;
3765 int _mark = p->mark;
3766 { // dotted_name '.' NAME
3767 if (p->error_indicator) {
3768 D(p->level--);
3769 return NULL;
3770 }
3771 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3772 Token * _literal;
3773 expr_ty a;
3774 expr_ty b;
3775 if (
3776 (a = dotted_name_rule(p)) // dotted_name
3777 &&
3778 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3779 &&
3780 (b = _PyPegen_name_token(p)) // NAME
3781 )
3782 {
3783 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3784 _res = _PyPegen_join_names_with_dot ( p , a , b );
3785 if (_res == NULL && PyErr_Occurred()) {
3786 p->error_indicator = 1;
3787 D(p->level--);
3788 return NULL;
3789 }
3790 goto done;
3791 }
3792 p->mark = _mark;
3793 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3795 }
3796 { // NAME
3797 if (p->error_indicator) {
3798 D(p->level--);
3799 return NULL;
3800 }
3801 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3802 expr_ty name_var;
3803 if (
3804 (name_var = _PyPegen_name_token(p)) // NAME
3805 )
3806 {
3807 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3808 _res = name_var;
3809 goto done;
3810 }
3811 p->mark = _mark;
3812 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3814 }
3815 _res = NULL;
3816 done:
3817 D(p->level--);
3818 return _res;
3819}
3820
3821// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003822// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003823// | 'if' named_expression ':' block elif_stmt
3824// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003825static stmt_ty
3826if_stmt_rule(Parser *p)
3827{
3828 D(p->level++);
3829 if (p->error_indicator) {
3830 D(p->level--);
3831 return NULL;
3832 }
3833 stmt_ty _res = NULL;
3834 int _mark = p->mark;
3835 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3836 p->error_indicator = 1;
3837 D(p->level--);
3838 return NULL;
3839 }
3840 int _start_lineno = p->tokens[_mark]->lineno;
3841 UNUSED(_start_lineno); // Only used by EXTRA macro
3842 int _start_col_offset = p->tokens[_mark]->col_offset;
3843 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003844 if (p->call_invalid_rules) { // invalid_if_stmt
3845 if (p->error_indicator) {
3846 D(p->level--);
3847 return NULL;
3848 }
3849 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3850 void *invalid_if_stmt_var;
3851 if (
3852 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3853 )
3854 {
3855 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3856 _res = invalid_if_stmt_var;
3857 goto done;
3858 }
3859 p->mark = _mark;
3860 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3862 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003863 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003864 if (p->error_indicator) {
3865 D(p->level--);
3866 return NULL;
3867 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003868 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003869 Token * _keyword;
3870 Token * _literal;
3871 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003872 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003873 stmt_ty c;
3874 if (
3875 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3876 &&
3877 (a = named_expression_rule(p)) // named_expression
3878 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003879 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003880 &&
3881 (b = block_rule(p)) // block
3882 &&
3883 (c = elif_stmt_rule(p)) // elif_stmt
3884 )
3885 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003886 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3888 if (_token == NULL) {
3889 D(p->level--);
3890 return NULL;
3891 }
3892 int _end_lineno = _token->end_lineno;
3893 UNUSED(_end_lineno); // Only used by EXTRA macro
3894 int _end_col_offset = _token->end_col_offset;
3895 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003896 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003897 if (_res == NULL && PyErr_Occurred()) {
3898 p->error_indicator = 1;
3899 D(p->level--);
3900 return NULL;
3901 }
3902 goto done;
3903 }
3904 p->mark = _mark;
3905 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003907 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003908 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003909 if (p->error_indicator) {
3910 D(p->level--);
3911 return NULL;
3912 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003913 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003914 Token * _keyword;
3915 Token * _literal;
3916 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003917 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003918 void *c;
3919 if (
3920 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3921 &&
3922 (a = named_expression_rule(p)) // named_expression
3923 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 &&
3926 (b = block_rule(p)) // block
3927 &&
3928 (c = else_block_rule(p), 1) // else_block?
3929 )
3930 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003931 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3933 if (_token == NULL) {
3934 D(p->level--);
3935 return NULL;
3936 }
3937 int _end_lineno = _token->end_lineno;
3938 UNUSED(_end_lineno); // Only used by EXTRA macro
3939 int _end_col_offset = _token->end_col_offset;
3940 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003941 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003942 if (_res == NULL && PyErr_Occurred()) {
3943 p->error_indicator = 1;
3944 D(p->level--);
3945 return NULL;
3946 }
3947 goto done;
3948 }
3949 p->mark = _mark;
3950 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003953 _res = NULL;
3954 done:
3955 D(p->level--);
3956 return _res;
3957}
3958
3959// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003960// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003961// | 'elif' named_expression ':' block elif_stmt
3962// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003963static stmt_ty
3964elif_stmt_rule(Parser *p)
3965{
3966 D(p->level++);
3967 if (p->error_indicator) {
3968 D(p->level--);
3969 return NULL;
3970 }
3971 stmt_ty _res = NULL;
3972 int _mark = p->mark;
3973 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3974 p->error_indicator = 1;
3975 D(p->level--);
3976 return NULL;
3977 }
3978 int _start_lineno = p->tokens[_mark]->lineno;
3979 UNUSED(_start_lineno); // Only used by EXTRA macro
3980 int _start_col_offset = p->tokens[_mark]->col_offset;
3981 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003982 if (p->call_invalid_rules) { // invalid_elif_stmt
3983 if (p->error_indicator) {
3984 D(p->level--);
3985 return NULL;
3986 }
3987 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3988 void *invalid_elif_stmt_var;
3989 if (
3990 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3991 )
3992 {
3993 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3994 _res = invalid_elif_stmt_var;
3995 goto done;
3996 }
3997 p->mark = _mark;
3998 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4000 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004001 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004002 if (p->error_indicator) {
4003 D(p->level--);
4004 return NULL;
4005 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004006 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004007 Token * _keyword;
4008 Token * _literal;
4009 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004010 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004011 stmt_ty c;
4012 if (
4013 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4014 &&
4015 (a = named_expression_rule(p)) // named_expression
4016 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004017 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004018 &&
4019 (b = block_rule(p)) // block
4020 &&
4021 (c = elif_stmt_rule(p)) // elif_stmt
4022 )
4023 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004024 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004025 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4026 if (_token == NULL) {
4027 D(p->level--);
4028 return NULL;
4029 }
4030 int _end_lineno = _token->end_lineno;
4031 UNUSED(_end_lineno); // Only used by EXTRA macro
4032 int _end_col_offset = _token->end_col_offset;
4033 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004034 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004035 if (_res == NULL && PyErr_Occurred()) {
4036 p->error_indicator = 1;
4037 D(p->level--);
4038 return NULL;
4039 }
4040 goto done;
4041 }
4042 p->mark = _mark;
4043 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004045 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004046 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004047 if (p->error_indicator) {
4048 D(p->level--);
4049 return NULL;
4050 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004051 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004052 Token * _keyword;
4053 Token * _literal;
4054 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004055 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004056 void *c;
4057 if (
4058 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4059 &&
4060 (a = named_expression_rule(p)) // named_expression
4061 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004062 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 &&
4064 (b = block_rule(p)) // block
4065 &&
4066 (c = else_block_rule(p), 1) // else_block?
4067 )
4068 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004069 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4071 if (_token == NULL) {
4072 D(p->level--);
4073 return NULL;
4074 }
4075 int _end_lineno = _token->end_lineno;
4076 UNUSED(_end_lineno); // Only used by EXTRA macro
4077 int _end_col_offset = _token->end_col_offset;
4078 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004079 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004080 if (_res == NULL && PyErr_Occurred()) {
4081 p->error_indicator = 1;
4082 D(p->level--);
4083 return NULL;
4084 }
4085 goto done;
4086 }
4087 p->mark = _mark;
4088 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4090 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004091 _res = NULL;
4092 done:
4093 D(p->level--);
4094 return _res;
4095}
4096
Pablo Galindo56c95df2021-04-21 15:28:21 +01004097// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004098static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004099else_block_rule(Parser *p)
4100{
4101 D(p->level++);
4102 if (p->error_indicator) {
4103 D(p->level--);
4104 return NULL;
4105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004106 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004108 if (p->call_invalid_rules) { // invalid_else_stmt
4109 if (p->error_indicator) {
4110 D(p->level--);
4111 return NULL;
4112 }
4113 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4114 void *invalid_else_stmt_var;
4115 if (
4116 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4117 )
4118 {
4119 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4120 _res = invalid_else_stmt_var;
4121 goto done;
4122 }
4123 p->mark = _mark;
4124 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4126 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004127 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004128 if (p->error_indicator) {
4129 D(p->level--);
4130 return NULL;
4131 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004132 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004133 Token * _keyword;
4134 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004135 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004136 if (
4137 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4138 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004139 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004140 &&
4141 (b = block_rule(p)) // block
4142 )
4143 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004144 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004145 _res = b;
4146 if (_res == NULL && PyErr_Occurred()) {
4147 p->error_indicator = 1;
4148 D(p->level--);
4149 return NULL;
4150 }
4151 goto done;
4152 }
4153 p->mark = _mark;
4154 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004156 }
4157 _res = NULL;
4158 done:
4159 D(p->level--);
4160 return _res;
4161}
4162
Pablo Galindo56c95df2021-04-21 15:28:21 +01004163// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004164static stmt_ty
4165while_stmt_rule(Parser *p)
4166{
4167 D(p->level++);
4168 if (p->error_indicator) {
4169 D(p->level--);
4170 return NULL;
4171 }
4172 stmt_ty _res = NULL;
4173 int _mark = p->mark;
4174 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4175 p->error_indicator = 1;
4176 D(p->level--);
4177 return NULL;
4178 }
4179 int _start_lineno = p->tokens[_mark]->lineno;
4180 UNUSED(_start_lineno); // Only used by EXTRA macro
4181 int _start_col_offset = p->tokens[_mark]->col_offset;
4182 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004183 if (p->call_invalid_rules) { // invalid_while_stmt
4184 if (p->error_indicator) {
4185 D(p->level--);
4186 return NULL;
4187 }
4188 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4189 void *invalid_while_stmt_var;
4190 if (
4191 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4192 )
4193 {
4194 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4195 _res = invalid_while_stmt_var;
4196 goto done;
4197 }
4198 p->mark = _mark;
4199 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4201 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004202 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004203 if (p->error_indicator) {
4204 D(p->level--);
4205 return NULL;
4206 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004207 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004208 Token * _keyword;
4209 Token * _literal;
4210 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004211 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004212 void *c;
4213 if (
4214 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4215 &&
4216 (a = named_expression_rule(p)) // named_expression
4217 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004218 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004219 &&
4220 (b = block_rule(p)) // block
4221 &&
4222 (c = else_block_rule(p), 1) // else_block?
4223 )
4224 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004225 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4227 if (_token == NULL) {
4228 D(p->level--);
4229 return NULL;
4230 }
4231 int _end_lineno = _token->end_lineno;
4232 UNUSED(_end_lineno); // Only used by EXTRA macro
4233 int _end_col_offset = _token->end_col_offset;
4234 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004235 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004236 if (_res == NULL && PyErr_Occurred()) {
4237 p->error_indicator = 1;
4238 D(p->level--);
4239 return NULL;
4240 }
4241 goto done;
4242 }
4243 p->mark = _mark;
4244 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4246 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004247 _res = NULL;
4248 done:
4249 D(p->level--);
4250 return _res;
4251}
4252
4253// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004254// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004255// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4256// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004257// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004258static stmt_ty
4259for_stmt_rule(Parser *p)
4260{
4261 D(p->level++);
4262 if (p->error_indicator) {
4263 D(p->level--);
4264 return NULL;
4265 }
4266 stmt_ty _res = NULL;
4267 int _mark = p->mark;
4268 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4269 p->error_indicator = 1;
4270 D(p->level--);
4271 return NULL;
4272 }
4273 int _start_lineno = p->tokens[_mark]->lineno;
4274 UNUSED(_start_lineno); // Only used by EXTRA macro
4275 int _start_col_offset = p->tokens[_mark]->col_offset;
4276 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004277 if (p->call_invalid_rules) { // invalid_for_stmt
4278 if (p->error_indicator) {
4279 D(p->level--);
4280 return NULL;
4281 }
4282 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4283 void *invalid_for_stmt_var;
4284 if (
4285 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4286 )
4287 {
4288 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4289 _res = invalid_for_stmt_var;
4290 goto done;
4291 }
4292 p->mark = _mark;
4293 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4295 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004296 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004297 if (p->error_indicator) {
4298 D(p->level--);
4299 return NULL;
4300 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004301 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004302 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004303 Token * _keyword;
4304 Token * _keyword_1;
4305 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004306 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004307 void *el;
4308 expr_ty ex;
4309 expr_ty t;
4310 void *tc;
4311 if (
4312 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4313 &&
4314 (t = star_targets_rule(p)) // star_targets
4315 &&
4316 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4317 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004318 (_cut_var = 1)
4319 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004320 (ex = star_expressions_rule(p)) // star_expressions
4321 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004322 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004323 &&
4324 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4325 &&
4326 (b = block_rule(p)) // block
4327 &&
4328 (el = else_block_rule(p), 1) // else_block?
4329 )
4330 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004331 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4333 if (_token == NULL) {
4334 D(p->level--);
4335 return NULL;
4336 }
4337 int _end_lineno = _token->end_lineno;
4338 UNUSED(_end_lineno); // Only used by EXTRA macro
4339 int _end_col_offset = _token->end_col_offset;
4340 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004341 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004342 if (_res == NULL && PyErr_Occurred()) {
4343 p->error_indicator = 1;
4344 D(p->level--);
4345 return NULL;
4346 }
4347 goto done;
4348 }
4349 p->mark = _mark;
4350 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004352 if (_cut_var) {
4353 D(p->level--);
4354 return NULL;
4355 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004357 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004358 if (p->error_indicator) {
4359 D(p->level--);
4360 return NULL;
4361 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004362 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004363 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004364 Token * _keyword;
4365 Token * _keyword_1;
4366 Token * _literal;
4367 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004368 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004369 void *el;
4370 expr_ty ex;
4371 expr_ty t;
4372 void *tc;
4373 if (
4374 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4375 &&
4376 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4377 &&
4378 (t = star_targets_rule(p)) // star_targets
4379 &&
4380 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4381 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004382 (_cut_var = 1)
4383 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004384 (ex = star_expressions_rule(p)) // star_expressions
4385 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004386 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004387 &&
4388 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4389 &&
4390 (b = block_rule(p)) // block
4391 &&
4392 (el = else_block_rule(p), 1) // else_block?
4393 )
4394 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004395 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004396 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4397 if (_token == NULL) {
4398 D(p->level--);
4399 return NULL;
4400 }
4401 int _end_lineno = _token->end_lineno;
4402 UNUSED(_end_lineno); // Only used by EXTRA macro
4403 int _end_col_offset = _token->end_col_offset;
4404 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004405 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004406 if (_res == NULL && PyErr_Occurred()) {
4407 p->error_indicator = 1;
4408 D(p->level--);
4409 return NULL;
4410 }
4411 goto done;
4412 }
4413 p->mark = _mark;
4414 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004416 if (_cut_var) {
4417 D(p->level--);
4418 return NULL;
4419 }
4420 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004421 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004422 if (p->error_indicator) {
4423 D(p->level--);
4424 return NULL;
4425 }
4426 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4427 void *invalid_for_target_var;
4428 if (
4429 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4430 )
4431 {
4432 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4433 _res = invalid_for_target_var;
4434 goto done;
4435 }
4436 p->mark = _mark;
4437 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004439 }
4440 _res = NULL;
4441 done:
4442 D(p->level--);
4443 return _res;
4444}
4445
4446// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004447// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004448// | 'with' '(' ','.with_item+ ','? ')' ':' block
4449// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4450// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4451// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004452// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004453static stmt_ty
4454with_stmt_rule(Parser *p)
4455{
4456 D(p->level++);
4457 if (p->error_indicator) {
4458 D(p->level--);
4459 return NULL;
4460 }
4461 stmt_ty _res = NULL;
4462 int _mark = p->mark;
4463 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4464 p->error_indicator = 1;
4465 D(p->level--);
4466 return NULL;
4467 }
4468 int _start_lineno = p->tokens[_mark]->lineno;
4469 UNUSED(_start_lineno); // Only used by EXTRA macro
4470 int _start_col_offset = p->tokens[_mark]->col_offset;
4471 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004472 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4473 if (p->error_indicator) {
4474 D(p->level--);
4475 return NULL;
4476 }
4477 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4478 void *invalid_with_stmt_indent_var;
4479 if (
4480 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4481 )
4482 {
4483 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4484 _res = invalid_with_stmt_indent_var;
4485 goto done;
4486 }
4487 p->mark = _mark;
4488 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4490 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004491 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4492 if (p->error_indicator) {
4493 D(p->level--);
4494 return NULL;
4495 }
4496 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4497 Token * _keyword;
4498 Token * _literal;
4499 Token * _literal_1;
4500 Token * _literal_2;
4501 void *_opt_var;
4502 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004503 asdl_withitem_seq* a;
4504 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004505 if (
4506 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4507 &&
4508 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4509 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004510 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 &&
4512 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4513 &&
4514 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4515 &&
4516 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4517 &&
4518 (b = block_rule(p)) // block
4519 )
4520 {
4521 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4523 if (_token == NULL) {
4524 D(p->level--);
4525 return NULL;
4526 }
4527 int _end_lineno = _token->end_lineno;
4528 UNUSED(_end_lineno); // Only used by EXTRA macro
4529 int _end_col_offset = _token->end_col_offset;
4530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004531 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004532 if (_res == NULL && PyErr_Occurred()) {
4533 p->error_indicator = 1;
4534 D(p->level--);
4535 return NULL;
4536 }
4537 goto done;
4538 }
4539 p->mark = _mark;
4540 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4542 }
4543 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4544 if (p->error_indicator) {
4545 D(p->level--);
4546 return NULL;
4547 }
4548 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4549 Token * _keyword;
4550 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004551 asdl_withitem_seq* a;
4552 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004553 void *tc;
4554 if (
4555 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4556 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004557 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004558 &&
4559 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4560 &&
4561 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4562 &&
4563 (b = block_rule(p)) // block
4564 )
4565 {
4566 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4568 if (_token == NULL) {
4569 D(p->level--);
4570 return NULL;
4571 }
4572 int _end_lineno = _token->end_lineno;
4573 UNUSED(_end_lineno); // Only used by EXTRA macro
4574 int _end_col_offset = _token->end_col_offset;
4575 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004576 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004577 if (_res == NULL && PyErr_Occurred()) {
4578 p->error_indicator = 1;
4579 D(p->level--);
4580 return NULL;
4581 }
4582 goto done;
4583 }
4584 p->mark = _mark;
4585 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4587 }
4588 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4589 if (p->error_indicator) {
4590 D(p->level--);
4591 return NULL;
4592 }
4593 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4594 Token * _keyword;
4595 Token * _literal;
4596 Token * _literal_1;
4597 Token * _literal_2;
4598 void *_opt_var;
4599 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004600 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004601 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004602 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004603 if (
4604 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4605 &&
4606 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4607 &&
4608 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4609 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004610 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004611 &&
4612 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4613 &&
4614 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4615 &&
4616 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4617 &&
4618 (b = block_rule(p)) // block
4619 )
4620 {
4621 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4623 if (_token == NULL) {
4624 D(p->level--);
4625 return NULL;
4626 }
4627 int _end_lineno = _token->end_lineno;
4628 UNUSED(_end_lineno); // Only used by EXTRA macro
4629 int _end_col_offset = _token->end_col_offset;
4630 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004631 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 if (_res == NULL && PyErr_Occurred()) {
4633 p->error_indicator = 1;
4634 D(p->level--);
4635 return NULL;
4636 }
4637 goto done;
4638 }
4639 p->mark = _mark;
4640 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4642 }
4643 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4644 if (p->error_indicator) {
4645 D(p->level--);
4646 return NULL;
4647 }
4648 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4649 Token * _keyword;
4650 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004651 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004652 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004653 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004654 void *tc;
4655 if (
4656 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4657 &&
4658 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4659 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004660 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004661 &&
4662 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4663 &&
4664 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4665 &&
4666 (b = block_rule(p)) // block
4667 )
4668 {
4669 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4670 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4671 if (_token == NULL) {
4672 D(p->level--);
4673 return NULL;
4674 }
4675 int _end_lineno = _token->end_lineno;
4676 UNUSED(_end_lineno); // Only used by EXTRA macro
4677 int _end_col_offset = _token->end_col_offset;
4678 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004679 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004680 if (_res == NULL && PyErr_Occurred()) {
4681 p->error_indicator = 1;
4682 D(p->level--);
4683 return NULL;
4684 }
4685 goto done;
4686 }
4687 p->mark = _mark;
4688 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4690 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004691 if (p->call_invalid_rules) { // invalid_with_stmt
4692 if (p->error_indicator) {
4693 D(p->level--);
4694 return NULL;
4695 }
4696 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4697 void *invalid_with_stmt_var;
4698 if (
4699 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4700 )
4701 {
4702 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4703 _res = invalid_with_stmt_var;
4704 goto done;
4705 }
4706 p->mark = _mark;
4707 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4709 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004710 _res = NULL;
4711 done:
4712 D(p->level--);
4713 return _res;
4714}
4715
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004716// with_item:
4717// | expression 'as' star_target &(',' | ')' | ':')
4718// | invalid_with_item
4719// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004720static withitem_ty
4721with_item_rule(Parser *p)
4722{
4723 D(p->level++);
4724 if (p->error_indicator) {
4725 D(p->level--);
4726 return NULL;
4727 }
4728 withitem_ty _res = NULL;
4729 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004730 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004731 if (p->error_indicator) {
4732 D(p->level--);
4733 return NULL;
4734 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004735 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004736 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004737 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004738 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004739 if (
4740 (e = expression_rule(p)) // expression
4741 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004742 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4743 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004744 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004745 &&
4746 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 )
4748 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004749 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004750 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 if (_res == NULL && PyErr_Occurred()) {
4752 p->error_indicator = 1;
4753 D(p->level--);
4754 return NULL;
4755 }
4756 goto done;
4757 }
4758 p->mark = _mark;
4759 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004761 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004762 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004763 if (p->error_indicator) {
4764 D(p->level--);
4765 return NULL;
4766 }
4767 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4768 void *invalid_with_item_var;
4769 if (
4770 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4771 )
4772 {
4773 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4774 _res = invalid_with_item_var;
4775 goto done;
4776 }
4777 p->mark = _mark;
4778 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4780 }
4781 { // expression
4782 if (p->error_indicator) {
4783 D(p->level--);
4784 return NULL;
4785 }
4786 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4787 expr_ty e;
4788 if (
4789 (e = expression_rule(p)) // expression
4790 )
4791 {
4792 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004793 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004794 if (_res == NULL && PyErr_Occurred()) {
4795 p->error_indicator = 1;
4796 D(p->level--);
4797 return NULL;
4798 }
4799 goto done;
4800 }
4801 p->mark = _mark;
4802 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004804 }
4805 _res = NULL;
4806 done:
4807 D(p->level--);
4808 return _res;
4809}
4810
4811// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004812// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004813// | 'try' &&':' block finally_block
4814// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004815static stmt_ty
4816try_stmt_rule(Parser *p)
4817{
4818 D(p->level++);
4819 if (p->error_indicator) {
4820 D(p->level--);
4821 return NULL;
4822 }
4823 stmt_ty _res = NULL;
4824 int _mark = p->mark;
4825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4826 p->error_indicator = 1;
4827 D(p->level--);
4828 return NULL;
4829 }
4830 int _start_lineno = p->tokens[_mark]->lineno;
4831 UNUSED(_start_lineno); // Only used by EXTRA macro
4832 int _start_col_offset = p->tokens[_mark]->col_offset;
4833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004834 if (p->call_invalid_rules) { // invalid_try_stmt
4835 if (p->error_indicator) {
4836 D(p->level--);
4837 return NULL;
4838 }
4839 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4840 void *invalid_try_stmt_var;
4841 if (
4842 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4843 )
4844 {
4845 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4846 _res = invalid_try_stmt_var;
4847 goto done;
4848 }
4849 p->mark = _mark;
4850 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4852 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004853 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004854 if (p->error_indicator) {
4855 D(p->level--);
4856 return NULL;
4857 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004858 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004859 Token * _keyword;
4860 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004861 asdl_stmt_seq* b;
4862 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004863 if (
4864 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4865 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004866 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004867 &&
4868 (b = block_rule(p)) // block
4869 &&
4870 (f = finally_block_rule(p)) // finally_block
4871 )
4872 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004873 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004874 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4875 if (_token == NULL) {
4876 D(p->level--);
4877 return NULL;
4878 }
4879 int _end_lineno = _token->end_lineno;
4880 UNUSED(_end_lineno); // Only used by EXTRA macro
4881 int _end_col_offset = _token->end_col_offset;
4882 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004883 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004884 if (_res == NULL && PyErr_Occurred()) {
4885 p->error_indicator = 1;
4886 D(p->level--);
4887 return NULL;
4888 }
4889 goto done;
4890 }
4891 p->mark = _mark;
4892 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004894 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004895 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004896 if (p->error_indicator) {
4897 D(p->level--);
4898 return NULL;
4899 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004900 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004901 Token * _keyword;
4902 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004903 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004904 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004905 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004906 void *f;
4907 if (
4908 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4909 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004910 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004911 &&
4912 (b = block_rule(p)) // block
4913 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004914 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004915 &&
4916 (el = else_block_rule(p), 1) // else_block?
4917 &&
4918 (f = finally_block_rule(p), 1) // finally_block?
4919 )
4920 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004921 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4923 if (_token == NULL) {
4924 D(p->level--);
4925 return NULL;
4926 }
4927 int _end_lineno = _token->end_lineno;
4928 UNUSED(_end_lineno); // Only used by EXTRA macro
4929 int _end_col_offset = _token->end_col_offset;
4930 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004931 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004932 if (_res == NULL && PyErr_Occurred()) {
4933 p->error_indicator = 1;
4934 D(p->level--);
4935 return NULL;
4936 }
4937 goto done;
4938 }
4939 p->mark = _mark;
4940 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004942 }
4943 _res = NULL;
4944 done:
4945 D(p->level--);
4946 return _res;
4947}
4948
Pablo Galindo206cbda2021-02-07 18:42:21 +00004949// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004950// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004951// | 'except' expression ['as' NAME] ':' block
4952// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004953// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004954static excepthandler_ty
4955except_block_rule(Parser *p)
4956{
4957 D(p->level++);
4958 if (p->error_indicator) {
4959 D(p->level--);
4960 return NULL;
4961 }
4962 excepthandler_ty _res = NULL;
4963 int _mark = p->mark;
4964 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4965 p->error_indicator = 1;
4966 D(p->level--);
4967 return NULL;
4968 }
4969 int _start_lineno = p->tokens[_mark]->lineno;
4970 UNUSED(_start_lineno); // Only used by EXTRA macro
4971 int _start_col_offset = p->tokens[_mark]->col_offset;
4972 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004973 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4974 if (p->error_indicator) {
4975 D(p->level--);
4976 return NULL;
4977 }
4978 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4979 void *invalid_except_stmt_indent_var;
4980 if (
4981 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4982 )
4983 {
4984 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4985 _res = invalid_except_stmt_indent_var;
4986 goto done;
4987 }
4988 p->mark = _mark;
4989 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4991 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004992 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004993 if (p->error_indicator) {
4994 D(p->level--);
4995 return NULL;
4996 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004997 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004998 Token * _keyword;
4999 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005000 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 expr_ty e;
5002 void *t;
5003 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005004 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005005 &&
5006 (e = expression_rule(p)) // expression
5007 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005008 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005009 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005010 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005011 &&
5012 (b = block_rule(p)) // block
5013 )
5014 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005015 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5017 if (_token == NULL) {
5018 D(p->level--);
5019 return NULL;
5020 }
5021 int _end_lineno = _token->end_lineno;
5022 UNUSED(_end_lineno); // Only used by EXTRA macro
5023 int _end_col_offset = _token->end_col_offset;
5024 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005025 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005026 if (_res == NULL && PyErr_Occurred()) {
5027 p->error_indicator = 1;
5028 D(p->level--);
5029 return NULL;
5030 }
5031 goto done;
5032 }
5033 p->mark = _mark;
5034 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005036 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005037 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005038 if (p->error_indicator) {
5039 D(p->level--);
5040 return NULL;
5041 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005042 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005043 Token * _keyword;
5044 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005045 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005046 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005047 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005048 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005049 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005050 &&
5051 (b = block_rule(p)) // block
5052 )
5053 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005054 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5056 if (_token == NULL) {
5057 D(p->level--);
5058 return NULL;
5059 }
5060 int _end_lineno = _token->end_lineno;
5061 UNUSED(_end_lineno); // Only used by EXTRA macro
5062 int _end_col_offset = _token->end_col_offset;
5063 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005064 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005065 if (_res == NULL && PyErr_Occurred()) {
5066 p->error_indicator = 1;
5067 D(p->level--);
5068 return NULL;
5069 }
5070 goto done;
5071 }
5072 p->mark = _mark;
5073 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5075 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005076 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005077 if (p->error_indicator) {
5078 D(p->level--);
5079 return NULL;
5080 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005081 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5082 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005083 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005084 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005085 )
5086 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005087 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5088 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005089 goto done;
5090 }
5091 p->mark = _mark;
5092 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005094 }
5095 _res = NULL;
5096 done:
5097 D(p->level--);
5098 return _res;
5099}
5100
Pablo Galindo56c95df2021-04-21 15:28:21 +01005101// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005102static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005103finally_block_rule(Parser *p)
5104{
5105 D(p->level++);
5106 if (p->error_indicator) {
5107 D(p->level--);
5108 return NULL;
5109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005110 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005111 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005112 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005113 if (p->error_indicator) {
5114 D(p->level--);
5115 return NULL;
5116 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005117 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5118 void *invalid_finally_stmt_var;
5119 if (
5120 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5121 )
5122 {
5123 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5124 _res = invalid_finally_stmt_var;
5125 goto done;
5126 }
5127 p->mark = _mark;
5128 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5130 }
5131 { // 'finally' &&':' block
5132 if (p->error_indicator) {
5133 D(p->level--);
5134 return NULL;
5135 }
5136 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005137 Token * _keyword;
5138 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005139 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005140 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005141 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005142 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005143 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005144 &&
5145 (a = block_rule(p)) // block
5146 )
5147 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005148 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005149 _res = a;
5150 if (_res == NULL && PyErr_Occurred()) {
5151 p->error_indicator = 1;
5152 D(p->level--);
5153 return NULL;
5154 }
5155 goto done;
5156 }
5157 p->mark = _mark;
5158 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 }
5161 _res = NULL;
5162 done:
5163 D(p->level--);
5164 return _res;
5165}
5166
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005167// match_stmt:
5168// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5169// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005170static stmt_ty
5171match_stmt_rule(Parser *p)
5172{
5173 D(p->level++);
5174 if (p->error_indicator) {
5175 D(p->level--);
5176 return NULL;
5177 }
5178 stmt_ty _res = NULL;
5179 int _mark = p->mark;
5180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5181 p->error_indicator = 1;
5182 D(p->level--);
5183 return NULL;
5184 }
5185 int _start_lineno = p->tokens[_mark]->lineno;
5186 UNUSED(_start_lineno); // Only used by EXTRA macro
5187 int _start_col_offset = p->tokens[_mark]->col_offset;
5188 UNUSED(_start_col_offset); // Only used by EXTRA macro
5189 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5190 if (p->error_indicator) {
5191 D(p->level--);
5192 return NULL;
5193 }
5194 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5195 expr_ty _keyword;
5196 Token * _literal;
5197 asdl_match_case_seq* cases;
5198 Token * dedent_var;
5199 Token * indent_var;
5200 Token * newline_var;
5201 expr_ty subject;
5202 if (
5203 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5204 &&
5205 (subject = subject_expr_rule(p)) // subject_expr
5206 &&
5207 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5208 &&
5209 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5210 &&
5211 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5212 &&
5213 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5214 &&
5215 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5216 )
5217 {
5218 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5220 if (_token == NULL) {
5221 D(p->level--);
5222 return NULL;
5223 }
5224 int _end_lineno = _token->end_lineno;
5225 UNUSED(_end_lineno); // Only used by EXTRA macro
5226 int _end_col_offset = _token->end_col_offset;
5227 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005228 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005229 if (_res == NULL && PyErr_Occurred()) {
5230 p->error_indicator = 1;
5231 D(p->level--);
5232 return NULL;
5233 }
5234 goto done;
5235 }
5236 p->mark = _mark;
5237 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5239 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005240 if (p->call_invalid_rules) { // invalid_match_stmt
5241 if (p->error_indicator) {
5242 D(p->level--);
5243 return NULL;
5244 }
5245 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5246 void *invalid_match_stmt_var;
5247 if (
5248 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5249 )
5250 {
5251 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5252 _res = invalid_match_stmt_var;
5253 goto done;
5254 }
5255 p->mark = _mark;
5256 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5258 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005259 _res = NULL;
5260 done:
5261 D(p->level--);
5262 return _res;
5263}
5264
5265// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5266static expr_ty
5267subject_expr_rule(Parser *p)
5268{
5269 D(p->level++);
5270 if (p->error_indicator) {
5271 D(p->level--);
5272 return NULL;
5273 }
5274 expr_ty _res = NULL;
5275 int _mark = p->mark;
5276 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5277 p->error_indicator = 1;
5278 D(p->level--);
5279 return NULL;
5280 }
5281 int _start_lineno = p->tokens[_mark]->lineno;
5282 UNUSED(_start_lineno); // Only used by EXTRA macro
5283 int _start_col_offset = p->tokens[_mark]->col_offset;
5284 UNUSED(_start_col_offset); // Only used by EXTRA macro
5285 { // star_named_expression ',' star_named_expressions?
5286 if (p->error_indicator) {
5287 D(p->level--);
5288 return NULL;
5289 }
5290 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5291 Token * _literal;
5292 expr_ty value;
5293 void *values;
5294 if (
5295 (value = star_named_expression_rule(p)) // star_named_expression
5296 &&
5297 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5298 &&
5299 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5300 )
5301 {
5302 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5303 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5304 if (_token == NULL) {
5305 D(p->level--);
5306 return NULL;
5307 }
5308 int _end_lineno = _token->end_lineno;
5309 UNUSED(_end_lineno); // Only used by EXTRA macro
5310 int _end_col_offset = _token->end_col_offset;
5311 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005312 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005313 if (_res == NULL && PyErr_Occurred()) {
5314 p->error_indicator = 1;
5315 D(p->level--);
5316 return NULL;
5317 }
5318 goto done;
5319 }
5320 p->mark = _mark;
5321 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5323 }
5324 { // named_expression
5325 if (p->error_indicator) {
5326 D(p->level--);
5327 return NULL;
5328 }
5329 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5330 expr_ty named_expression_var;
5331 if (
5332 (named_expression_var = named_expression_rule(p)) // named_expression
5333 )
5334 {
5335 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5336 _res = named_expression_var;
5337 goto done;
5338 }
5339 p->mark = _mark;
5340 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5342 }
5343 _res = NULL;
5344 done:
5345 D(p->level--);
5346 return _res;
5347}
5348
Pablo Galindo56c95df2021-04-21 15:28:21 +01005349// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005350static match_case_ty
5351case_block_rule(Parser *p)
5352{
5353 D(p->level++);
5354 if (p->error_indicator) {
5355 D(p->level--);
5356 return NULL;
5357 }
5358 match_case_ty _res = NULL;
5359 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005360 if (p->call_invalid_rules) { // invalid_case_block
5361 if (p->error_indicator) {
5362 D(p->level--);
5363 return NULL;
5364 }
5365 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5366 void *invalid_case_block_var;
5367 if (
5368 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5369 )
5370 {
5371 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5372 _res = invalid_case_block_var;
5373 goto done;
5374 }
5375 p->mark = _mark;
5376 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5378 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005379 { // "case" patterns guard? ':' block
5380 if (p->error_indicator) {
5381 D(p->level--);
5382 return NULL;
5383 }
5384 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5385 expr_ty _keyword;
5386 Token * _literal;
5387 asdl_stmt_seq* body;
5388 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005389 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005390 if (
5391 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5392 &&
5393 (pattern = patterns_rule(p)) // patterns
5394 &&
5395 (guard = guard_rule(p), 1) // guard?
5396 &&
5397 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5398 &&
5399 (body = block_rule(p)) // block
5400 )
5401 {
5402 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005403 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005404 if (_res == NULL && PyErr_Occurred()) {
5405 p->error_indicator = 1;
5406 D(p->level--);
5407 return NULL;
5408 }
5409 goto done;
5410 }
5411 p->mark = _mark;
5412 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5414 }
5415 _res = NULL;
5416 done:
5417 D(p->level--);
5418 return _res;
5419}
5420
5421// guard: 'if' named_expression
5422static expr_ty
5423guard_rule(Parser *p)
5424{
5425 D(p->level++);
5426 if (p->error_indicator) {
5427 D(p->level--);
5428 return NULL;
5429 }
5430 expr_ty _res = NULL;
5431 int _mark = p->mark;
5432 { // 'if' named_expression
5433 if (p->error_indicator) {
5434 D(p->level--);
5435 return NULL;
5436 }
5437 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5438 Token * _keyword;
5439 expr_ty guard;
5440 if (
5441 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5442 &&
5443 (guard = named_expression_rule(p)) // named_expression
5444 )
5445 {
5446 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5447 _res = guard;
5448 if (_res == NULL && PyErr_Occurred()) {
5449 p->error_indicator = 1;
5450 D(p->level--);
5451 return NULL;
5452 }
5453 goto done;
5454 }
5455 p->mark = _mark;
5456 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5458 }
5459 _res = NULL;
5460 done:
5461 D(p->level--);
5462 return _res;
5463}
5464
5465// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005466static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005467patterns_rule(Parser *p)
5468{
5469 D(p->level++);
5470 if (p->error_indicator) {
5471 D(p->level--);
5472 return NULL;
5473 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005474 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005475 int _mark = p->mark;
5476 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5477 p->error_indicator = 1;
5478 D(p->level--);
5479 return NULL;
5480 }
5481 int _start_lineno = p->tokens[_mark]->lineno;
5482 UNUSED(_start_lineno); // Only used by EXTRA macro
5483 int _start_col_offset = p->tokens[_mark]->col_offset;
5484 UNUSED(_start_col_offset); // Only used by EXTRA macro
5485 { // open_sequence_pattern
5486 if (p->error_indicator) {
5487 D(p->level--);
5488 return NULL;
5489 }
5490 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005491 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005492 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005493 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005494 )
5495 {
5496 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5497 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5498 if (_token == NULL) {
5499 D(p->level--);
5500 return NULL;
5501 }
5502 int _end_lineno = _token->end_lineno;
5503 UNUSED(_end_lineno); // Only used by EXTRA macro
5504 int _end_col_offset = _token->end_col_offset;
5505 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005506 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005507 if (_res == NULL && PyErr_Occurred()) {
5508 p->error_indicator = 1;
5509 D(p->level--);
5510 return NULL;
5511 }
5512 goto done;
5513 }
5514 p->mark = _mark;
5515 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5517 }
5518 { // pattern
5519 if (p->error_indicator) {
5520 D(p->level--);
5521 return NULL;
5522 }
5523 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005524 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005525 if (
5526 (pattern_var = pattern_rule(p)) // pattern
5527 )
5528 {
5529 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5530 _res = pattern_var;
5531 goto done;
5532 }
5533 p->mark = _mark;
5534 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5536 }
5537 _res = NULL;
5538 done:
5539 D(p->level--);
5540 return _res;
5541}
5542
5543// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005544static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005545pattern_rule(Parser *p)
5546{
5547 D(p->level++);
5548 if (p->error_indicator) {
5549 D(p->level--);
5550 return NULL;
5551 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005552 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005553 int _mark = p->mark;
5554 { // as_pattern
5555 if (p->error_indicator) {
5556 D(p->level--);
5557 return NULL;
5558 }
5559 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005560 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005561 if (
5562 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5563 )
5564 {
5565 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5566 _res = as_pattern_var;
5567 goto done;
5568 }
5569 p->mark = _mark;
5570 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5572 }
5573 { // or_pattern
5574 if (p->error_indicator) {
5575 D(p->level--);
5576 return NULL;
5577 }
5578 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005579 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005580 if (
5581 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5582 )
5583 {
5584 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5585 _res = or_pattern_var;
5586 goto done;
5587 }
5588 p->mark = _mark;
5589 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5591 }
5592 _res = NULL;
5593 done:
5594 D(p->level--);
5595 return _res;
5596}
5597
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005598// as_pattern: or_pattern 'as' pattern_capture_target
5599static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005600as_pattern_rule(Parser *p)
5601{
5602 D(p->level++);
5603 if (p->error_indicator) {
5604 D(p->level--);
5605 return NULL;
5606 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005607 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005608 int _mark = p->mark;
5609 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5610 p->error_indicator = 1;
5611 D(p->level--);
5612 return NULL;
5613 }
5614 int _start_lineno = p->tokens[_mark]->lineno;
5615 UNUSED(_start_lineno); // Only used by EXTRA macro
5616 int _start_col_offset = p->tokens[_mark]->col_offset;
5617 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005618 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005619 if (p->error_indicator) {
5620 D(p->level--);
5621 return NULL;
5622 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005623 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005624 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005625 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005626 expr_ty target;
5627 if (
5628 (pattern = or_pattern_rule(p)) // or_pattern
5629 &&
5630 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5631 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005632 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005633 )
5634 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005635 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005636 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5637 if (_token == NULL) {
5638 D(p->level--);
5639 return NULL;
5640 }
5641 int _end_lineno = _token->end_lineno;
5642 UNUSED(_end_lineno); // Only used by EXTRA macro
5643 int _end_col_offset = _token->end_col_offset;
5644 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005645 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005646 if (_res == NULL && PyErr_Occurred()) {
5647 p->error_indicator = 1;
5648 D(p->level--);
5649 return NULL;
5650 }
5651 goto done;
5652 }
5653 p->mark = _mark;
5654 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005656 }
5657 _res = NULL;
5658 done:
5659 D(p->level--);
5660 return _res;
5661}
5662
5663// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005664static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005665or_pattern_rule(Parser *p)
5666{
5667 D(p->level++);
5668 if (p->error_indicator) {
5669 D(p->level--);
5670 return NULL;
5671 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005672 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005673 int _mark = p->mark;
5674 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5675 p->error_indicator = 1;
5676 D(p->level--);
5677 return NULL;
5678 }
5679 int _start_lineno = p->tokens[_mark]->lineno;
5680 UNUSED(_start_lineno); // Only used by EXTRA macro
5681 int _start_col_offset = p->tokens[_mark]->col_offset;
5682 UNUSED(_start_col_offset); // Only used by EXTRA macro
5683 { // '|'.closed_pattern+
5684 if (p->error_indicator) {
5685 D(p->level--);
5686 return NULL;
5687 }
5688 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005689 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005690 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005691 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005692 )
5693 {
5694 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5696 if (_token == NULL) {
5697 D(p->level--);
5698 return NULL;
5699 }
5700 int _end_lineno = _token->end_lineno;
5701 UNUSED(_end_lineno); // Only used by EXTRA macro
5702 int _end_col_offset = _token->end_col_offset;
5703 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005704 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005705 if (_res == NULL && PyErr_Occurred()) {
5706 p->error_indicator = 1;
5707 D(p->level--);
5708 return NULL;
5709 }
5710 goto done;
5711 }
5712 p->mark = _mark;
5713 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5715 }
5716 _res = NULL;
5717 done:
5718 D(p->level--);
5719 return _res;
5720}
5721
5722// closed_pattern:
5723// | literal_pattern
5724// | capture_pattern
5725// | wildcard_pattern
5726// | value_pattern
5727// | group_pattern
5728// | sequence_pattern
5729// | mapping_pattern
5730// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005731static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005732closed_pattern_rule(Parser *p)
5733{
5734 D(p->level++);
5735 if (p->error_indicator) {
5736 D(p->level--);
5737 return NULL;
5738 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005739 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005740 int _mark = p->mark;
5741 { // literal_pattern
5742 if (p->error_indicator) {
5743 D(p->level--);
5744 return NULL;
5745 }
5746 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005747 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005748 if (
5749 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5750 )
5751 {
5752 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5753 _res = literal_pattern_var;
5754 goto done;
5755 }
5756 p->mark = _mark;
5757 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5759 }
5760 { // capture_pattern
5761 if (p->error_indicator) {
5762 D(p->level--);
5763 return NULL;
5764 }
5765 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005766 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005767 if (
5768 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5769 )
5770 {
5771 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5772 _res = capture_pattern_var;
5773 goto done;
5774 }
5775 p->mark = _mark;
5776 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5778 }
5779 { // wildcard_pattern
5780 if (p->error_indicator) {
5781 D(p->level--);
5782 return NULL;
5783 }
5784 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005785 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005786 if (
5787 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5788 )
5789 {
5790 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5791 _res = wildcard_pattern_var;
5792 goto done;
5793 }
5794 p->mark = _mark;
5795 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5797 }
5798 { // value_pattern
5799 if (p->error_indicator) {
5800 D(p->level--);
5801 return NULL;
5802 }
5803 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005804 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005805 if (
5806 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5807 )
5808 {
5809 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5810 _res = value_pattern_var;
5811 goto done;
5812 }
5813 p->mark = _mark;
5814 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5816 }
5817 { // group_pattern
5818 if (p->error_indicator) {
5819 D(p->level--);
5820 return NULL;
5821 }
5822 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005823 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005824 if (
5825 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5826 )
5827 {
5828 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5829 _res = group_pattern_var;
5830 goto done;
5831 }
5832 p->mark = _mark;
5833 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5835 }
5836 { // sequence_pattern
5837 if (p->error_indicator) {
5838 D(p->level--);
5839 return NULL;
5840 }
5841 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005842 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005843 if (
5844 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5845 )
5846 {
5847 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5848 _res = sequence_pattern_var;
5849 goto done;
5850 }
5851 p->mark = _mark;
5852 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5854 }
5855 { // mapping_pattern
5856 if (p->error_indicator) {
5857 D(p->level--);
5858 return NULL;
5859 }
5860 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005861 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005862 if (
5863 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5864 )
5865 {
5866 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5867 _res = mapping_pattern_var;
5868 goto done;
5869 }
5870 p->mark = _mark;
5871 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5873 }
5874 { // class_pattern
5875 if (p->error_indicator) {
5876 D(p->level--);
5877 return NULL;
5878 }
5879 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005880 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005881 if (
5882 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5883 )
5884 {
5885 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5886 _res = class_pattern_var;
5887 goto done;
5888 }
5889 p->mark = _mark;
5890 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5892 }
5893 _res = NULL;
5894 done:
5895 D(p->level--);
5896 return _res;
5897}
5898
5899// literal_pattern:
5900// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005901// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005902// | strings
5903// | 'None'
5904// | 'True'
5905// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005906static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005907literal_pattern_rule(Parser *p)
5908{
5909 D(p->level++);
5910 if (p->error_indicator) {
5911 D(p->level--);
5912 return NULL;
5913 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005914 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005915 int _mark = p->mark;
5916 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5917 p->error_indicator = 1;
5918 D(p->level--);
5919 return NULL;
5920 }
5921 int _start_lineno = p->tokens[_mark]->lineno;
5922 UNUSED(_start_lineno); // Only used by EXTRA macro
5923 int _start_col_offset = p->tokens[_mark]->col_offset;
5924 UNUSED(_start_col_offset); // Only used by EXTRA macro
5925 { // signed_number !('+' | '-')
5926 if (p->error_indicator) {
5927 D(p->level--);
5928 return NULL;
5929 }
5930 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005931 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005932 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005933 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005934 &&
5935 _PyPegen_lookahead(0, _tmp_53_rule, p)
5936 )
5937 {
5938 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005939 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5940 if (_token == NULL) {
5941 D(p->level--);
5942 return NULL;
5943 }
5944 int _end_lineno = _token->end_lineno;
5945 UNUSED(_end_lineno); // Only used by EXTRA macro
5946 int _end_col_offset = _token->end_col_offset;
5947 UNUSED(_end_col_offset); // Only used by EXTRA macro
5948 _res = _PyAST_MatchValue ( value , EXTRA );
5949 if (_res == NULL && PyErr_Occurred()) {
5950 p->error_indicator = 1;
5951 D(p->level--);
5952 return NULL;
5953 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005954 goto done;
5955 }
5956 p->mark = _mark;
5957 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5959 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005960 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005961 if (p->error_indicator) {
5962 D(p->level--);
5963 return NULL;
5964 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005965 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5966 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005968 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005969 )
5970 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005971 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005972 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5973 if (_token == NULL) {
5974 D(p->level--);
5975 return NULL;
5976 }
5977 int _end_lineno = _token->end_lineno;
5978 UNUSED(_end_lineno); // Only used by EXTRA macro
5979 int _end_col_offset = _token->end_col_offset;
5980 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005981 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005982 if (_res == NULL && PyErr_Occurred()) {
5983 p->error_indicator = 1;
5984 D(p->level--);
5985 return NULL;
5986 }
5987 goto done;
5988 }
5989 p->mark = _mark;
5990 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005992 }
5993 { // strings
5994 if (p->error_indicator) {
5995 D(p->level--);
5996 return NULL;
5997 }
5998 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005999 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006000 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006001 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006002 )
6003 {
6004 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6006 if (_token == NULL) {
6007 D(p->level--);
6008 return NULL;
6009 }
6010 int _end_lineno = _token->end_lineno;
6011 UNUSED(_end_lineno); // Only used by EXTRA macro
6012 int _end_col_offset = _token->end_col_offset;
6013 UNUSED(_end_col_offset); // Only used by EXTRA macro
6014 _res = _PyAST_MatchValue ( value , EXTRA );
6015 if (_res == NULL && PyErr_Occurred()) {
6016 p->error_indicator = 1;
6017 D(p->level--);
6018 return NULL;
6019 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006020 goto done;
6021 }
6022 p->mark = _mark;
6023 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6025 }
6026 { // 'None'
6027 if (p->error_indicator) {
6028 D(p->level--);
6029 return NULL;
6030 }
6031 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6032 Token * _keyword;
6033 if (
6034 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6035 )
6036 {
6037 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6039 if (_token == NULL) {
6040 D(p->level--);
6041 return NULL;
6042 }
6043 int _end_lineno = _token->end_lineno;
6044 UNUSED(_end_lineno); // Only used by EXTRA macro
6045 int _end_col_offset = _token->end_col_offset;
6046 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006047 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006048 if (_res == NULL && PyErr_Occurred()) {
6049 p->error_indicator = 1;
6050 D(p->level--);
6051 return NULL;
6052 }
6053 goto done;
6054 }
6055 p->mark = _mark;
6056 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6058 }
6059 { // 'True'
6060 if (p->error_indicator) {
6061 D(p->level--);
6062 return NULL;
6063 }
6064 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6065 Token * _keyword;
6066 if (
6067 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6068 )
6069 {
6070 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6072 if (_token == NULL) {
6073 D(p->level--);
6074 return NULL;
6075 }
6076 int _end_lineno = _token->end_lineno;
6077 UNUSED(_end_lineno); // Only used by EXTRA macro
6078 int _end_col_offset = _token->end_col_offset;
6079 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006080 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006081 if (_res == NULL && PyErr_Occurred()) {
6082 p->error_indicator = 1;
6083 D(p->level--);
6084 return NULL;
6085 }
6086 goto done;
6087 }
6088 p->mark = _mark;
6089 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6091 }
6092 { // 'False'
6093 if (p->error_indicator) {
6094 D(p->level--);
6095 return NULL;
6096 }
6097 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6098 Token * _keyword;
6099 if (
6100 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6101 )
6102 {
6103 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6104 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6105 if (_token == NULL) {
6106 D(p->level--);
6107 return NULL;
6108 }
6109 int _end_lineno = _token->end_lineno;
6110 UNUSED(_end_lineno); // Only used by EXTRA macro
6111 int _end_col_offset = _token->end_col_offset;
6112 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006113 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006114 if (_res == NULL && PyErr_Occurred()) {
6115 p->error_indicator = 1;
6116 D(p->level--);
6117 return NULL;
6118 }
6119 goto done;
6120 }
6121 p->mark = _mark;
6122 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6124 }
6125 _res = NULL;
6126 done:
6127 D(p->level--);
6128 return _res;
6129}
6130
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006131// literal_expr:
6132// | signed_number !('+' | '-')
6133// | complex_number
6134// | strings
6135// | 'None'
6136// | 'True'
6137// | 'False'
6138static expr_ty
6139literal_expr_rule(Parser *p)
6140{
6141 D(p->level++);
6142 if (p->error_indicator) {
6143 D(p->level--);
6144 return NULL;
6145 }
6146 expr_ty _res = NULL;
6147 int _mark = p->mark;
6148 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6149 p->error_indicator = 1;
6150 D(p->level--);
6151 return NULL;
6152 }
6153 int _start_lineno = p->tokens[_mark]->lineno;
6154 UNUSED(_start_lineno); // Only used by EXTRA macro
6155 int _start_col_offset = p->tokens[_mark]->col_offset;
6156 UNUSED(_start_col_offset); // Only used by EXTRA macro
6157 { // signed_number !('+' | '-')
6158 if (p->error_indicator) {
6159 D(p->level--);
6160 return NULL;
6161 }
6162 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6163 expr_ty signed_number_var;
6164 if (
6165 (signed_number_var = signed_number_rule(p)) // signed_number
6166 &&
6167 _PyPegen_lookahead(0, _tmp_54_rule, p)
6168 )
6169 {
6170 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6171 _res = signed_number_var;
6172 goto done;
6173 }
6174 p->mark = _mark;
6175 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6177 }
6178 { // complex_number
6179 if (p->error_indicator) {
6180 D(p->level--);
6181 return NULL;
6182 }
6183 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6184 expr_ty complex_number_var;
6185 if (
6186 (complex_number_var = complex_number_rule(p)) // complex_number
6187 )
6188 {
6189 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6190 _res = complex_number_var;
6191 goto done;
6192 }
6193 p->mark = _mark;
6194 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6196 }
6197 { // strings
6198 if (p->error_indicator) {
6199 D(p->level--);
6200 return NULL;
6201 }
6202 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6203 expr_ty strings_var;
6204 if (
6205 (strings_var = strings_rule(p)) // strings
6206 )
6207 {
6208 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6209 _res = strings_var;
6210 goto done;
6211 }
6212 p->mark = _mark;
6213 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6215 }
6216 { // 'None'
6217 if (p->error_indicator) {
6218 D(p->level--);
6219 return NULL;
6220 }
6221 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6222 Token * _keyword;
6223 if (
6224 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6225 )
6226 {
6227 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6228 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6229 if (_token == NULL) {
6230 D(p->level--);
6231 return NULL;
6232 }
6233 int _end_lineno = _token->end_lineno;
6234 UNUSED(_end_lineno); // Only used by EXTRA macro
6235 int _end_col_offset = _token->end_col_offset;
6236 UNUSED(_end_col_offset); // Only used by EXTRA macro
6237 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6238 if (_res == NULL && PyErr_Occurred()) {
6239 p->error_indicator = 1;
6240 D(p->level--);
6241 return NULL;
6242 }
6243 goto done;
6244 }
6245 p->mark = _mark;
6246 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6248 }
6249 { // 'True'
6250 if (p->error_indicator) {
6251 D(p->level--);
6252 return NULL;
6253 }
6254 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6255 Token * _keyword;
6256 if (
6257 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6258 )
6259 {
6260 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6262 if (_token == NULL) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 int _end_lineno = _token->end_lineno;
6267 UNUSED(_end_lineno); // Only used by EXTRA macro
6268 int _end_col_offset = _token->end_col_offset;
6269 UNUSED(_end_col_offset); // Only used by EXTRA macro
6270 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6271 if (_res == NULL && PyErr_Occurred()) {
6272 p->error_indicator = 1;
6273 D(p->level--);
6274 return NULL;
6275 }
6276 goto done;
6277 }
6278 p->mark = _mark;
6279 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6281 }
6282 { // 'False'
6283 if (p->error_indicator) {
6284 D(p->level--);
6285 return NULL;
6286 }
6287 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6288 Token * _keyword;
6289 if (
6290 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6291 )
6292 {
6293 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6294 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6295 if (_token == NULL) {
6296 D(p->level--);
6297 return NULL;
6298 }
6299 int _end_lineno = _token->end_lineno;
6300 UNUSED(_end_lineno); // Only used by EXTRA macro
6301 int _end_col_offset = _token->end_col_offset;
6302 UNUSED(_end_col_offset); // Only used by EXTRA macro
6303 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6304 if (_res == NULL && PyErr_Occurred()) {
6305 p->error_indicator = 1;
6306 D(p->level--);
6307 return NULL;
6308 }
6309 goto done;
6310 }
6311 p->mark = _mark;
6312 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6314 }
6315 _res = NULL;
6316 done:
6317 D(p->level--);
6318 return _res;
6319}
6320
6321// complex_number: signed_number '+' imaginary_number | signed_number '-' imaginary_number
6322static expr_ty
6323complex_number_rule(Parser *p)
6324{
6325 D(p->level++);
6326 if (p->error_indicator) {
6327 D(p->level--);
6328 return NULL;
6329 }
6330 expr_ty _res = NULL;
6331 int _mark = p->mark;
6332 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6333 p->error_indicator = 1;
6334 D(p->level--);
6335 return NULL;
6336 }
6337 int _start_lineno = p->tokens[_mark]->lineno;
6338 UNUSED(_start_lineno); // Only used by EXTRA macro
6339 int _start_col_offset = p->tokens[_mark]->col_offset;
6340 UNUSED(_start_col_offset); // Only used by EXTRA macro
6341 { // signed_number '+' imaginary_number
6342 if (p->error_indicator) {
6343 D(p->level--);
6344 return NULL;
6345 }
6346 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' imaginary_number"));
6347 Token * _literal;
6348 expr_ty imag;
6349 expr_ty real;
6350 if (
6351 (real = signed_number_rule(p)) // signed_number
6352 &&
6353 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6354 &&
6355 (imag = imaginary_number_rule(p)) // imaginary_number
6356 )
6357 {
6358 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' imaginary_number"));
6359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6360 if (_token == NULL) {
6361 D(p->level--);
6362 return NULL;
6363 }
6364 int _end_lineno = _token->end_lineno;
6365 UNUSED(_end_lineno); // Only used by EXTRA macro
6366 int _end_col_offset = _token->end_col_offset;
6367 UNUSED(_end_col_offset); // Only used by EXTRA macro
6368 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6369 if (_res == NULL && PyErr_Occurred()) {
6370 p->error_indicator = 1;
6371 D(p->level--);
6372 return NULL;
6373 }
6374 goto done;
6375 }
6376 p->mark = _mark;
6377 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
6378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' imaginary_number"));
6379 }
6380 { // signed_number '-' imaginary_number
6381 if (p->error_indicator) {
6382 D(p->level--);
6383 return NULL;
6384 }
6385 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' imaginary_number"));
6386 Token * _literal;
6387 expr_ty imag;
6388 expr_ty real;
6389 if (
6390 (real = signed_number_rule(p)) // signed_number
6391 &&
6392 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6393 &&
6394 (imag = imaginary_number_rule(p)) // imaginary_number
6395 )
6396 {
6397 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' imaginary_number"));
6398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6399 if (_token == NULL) {
6400 D(p->level--);
6401 return NULL;
6402 }
6403 int _end_lineno = _token->end_lineno;
6404 UNUSED(_end_lineno); // Only used by EXTRA macro
6405 int _end_col_offset = _token->end_col_offset;
6406 UNUSED(_end_col_offset); // Only used by EXTRA macro
6407 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6408 if (_res == NULL && PyErr_Occurred()) {
6409 p->error_indicator = 1;
6410 D(p->level--);
6411 return NULL;
6412 }
6413 goto done;
6414 }
6415 p->mark = _mark;
6416 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
6417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' imaginary_number"));
6418 }
6419 _res = NULL;
6420 done:
6421 D(p->level--);
6422 return _res;
6423}
6424
Brandt Bucher145bf262021-02-26 14:51:55 -08006425// signed_number: NUMBER | '-' NUMBER
6426static expr_ty
6427signed_number_rule(Parser *p)
6428{
6429 D(p->level++);
6430 if (p->error_indicator) {
6431 D(p->level--);
6432 return NULL;
6433 }
6434 expr_ty _res = NULL;
6435 int _mark = p->mark;
6436 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6437 p->error_indicator = 1;
6438 D(p->level--);
6439 return NULL;
6440 }
6441 int _start_lineno = p->tokens[_mark]->lineno;
6442 UNUSED(_start_lineno); // Only used by EXTRA macro
6443 int _start_col_offset = p->tokens[_mark]->col_offset;
6444 UNUSED(_start_col_offset); // Only used by EXTRA macro
6445 { // NUMBER
6446 if (p->error_indicator) {
6447 D(p->level--);
6448 return NULL;
6449 }
6450 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6451 expr_ty number_var;
6452 if (
6453 (number_var = _PyPegen_number_token(p)) // NUMBER
6454 )
6455 {
6456 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6457 _res = number_var;
6458 goto done;
6459 }
6460 p->mark = _mark;
6461 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6463 }
6464 { // '-' NUMBER
6465 if (p->error_indicator) {
6466 D(p->level--);
6467 return NULL;
6468 }
6469 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6470 Token * _literal;
6471 expr_ty number;
6472 if (
6473 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6474 &&
6475 (number = _PyPegen_number_token(p)) // NUMBER
6476 )
6477 {
6478 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6479 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6480 if (_token == NULL) {
6481 D(p->level--);
6482 return NULL;
6483 }
6484 int _end_lineno = _token->end_lineno;
6485 UNUSED(_end_lineno); // Only used by EXTRA macro
6486 int _end_col_offset = _token->end_col_offset;
6487 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006488 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006489 if (_res == NULL && PyErr_Occurred()) {
6490 p->error_indicator = 1;
6491 D(p->level--);
6492 return NULL;
6493 }
6494 goto done;
6495 }
6496 p->mark = _mark;
6497 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6499 }
6500 _res = NULL;
6501 done:
6502 D(p->level--);
6503 return _res;
6504}
6505
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006506// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006507static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006508imaginary_number_rule(Parser *p)
6509{
6510 D(p->level++);
6511 if (p->error_indicator) {
6512 D(p->level--);
6513 return NULL;
6514 }
6515 expr_ty _res = NULL;
6516 int _mark = p->mark;
6517 { // NUMBER
6518 if (p->error_indicator) {
6519 D(p->level--);
6520 return NULL;
6521 }
6522 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6523 expr_ty imag;
6524 if (
6525 (imag = _PyPegen_number_token(p)) // NUMBER
6526 )
6527 {
6528 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6529 _res = _PyPegen_ensure_imaginary ( p , imag );
6530 if (_res == NULL && PyErr_Occurred()) {
6531 p->error_indicator = 1;
6532 D(p->level--);
6533 return NULL;
6534 }
6535 goto done;
6536 }
6537 p->mark = _mark;
6538 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6540 }
6541 _res = NULL;
6542 done:
6543 D(p->level--);
6544 return _res;
6545}
6546
6547// capture_pattern: pattern_capture_target
6548static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006549capture_pattern_rule(Parser *p)
6550{
6551 D(p->level++);
6552 if (p->error_indicator) {
6553 D(p->level--);
6554 return NULL;
6555 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006556 pattern_ty _res = NULL;
6557 int _mark = p->mark;
6558 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6559 p->error_indicator = 1;
6560 D(p->level--);
6561 return NULL;
6562 }
6563 int _start_lineno = p->tokens[_mark]->lineno;
6564 UNUSED(_start_lineno); // Only used by EXTRA macro
6565 int _start_col_offset = p->tokens[_mark]->col_offset;
6566 UNUSED(_start_col_offset); // Only used by EXTRA macro
6567 { // pattern_capture_target
6568 if (p->error_indicator) {
6569 D(p->level--);
6570 return NULL;
6571 }
6572 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6573 expr_ty target;
6574 if (
6575 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6576 )
6577 {
6578 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6580 if (_token == NULL) {
6581 D(p->level--);
6582 return NULL;
6583 }
6584 int _end_lineno = _token->end_lineno;
6585 UNUSED(_end_lineno); // Only used by EXTRA macro
6586 int _end_col_offset = _token->end_col_offset;
6587 UNUSED(_end_col_offset); // Only used by EXTRA macro
6588 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6589 if (_res == NULL && PyErr_Occurred()) {
6590 p->error_indicator = 1;
6591 D(p->level--);
6592 return NULL;
6593 }
6594 goto done;
6595 }
6596 p->mark = _mark;
6597 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6599 }
6600 _res = NULL;
6601 done:
6602 D(p->level--);
6603 return _res;
6604}
6605
6606// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6607static expr_ty
6608pattern_capture_target_rule(Parser *p)
6609{
6610 D(p->level++);
6611 if (p->error_indicator) {
6612 D(p->level--);
6613 return NULL;
6614 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006615 expr_ty _res = NULL;
6616 int _mark = p->mark;
6617 { // !"_" NAME !('.' | '(' | '=')
6618 if (p->error_indicator) {
6619 D(p->level--);
6620 return NULL;
6621 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006622 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006623 expr_ty name;
6624 if (
6625 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6626 &&
6627 (name = _PyPegen_name_token(p)) // NAME
6628 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006629 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006630 )
6631 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006632 D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006633 _res = _PyPegen_set_expr_context ( p , name , Store );
6634 if (_res == NULL && PyErr_Occurred()) {
6635 p->error_indicator = 1;
6636 D(p->level--);
6637 return NULL;
6638 }
6639 goto done;
6640 }
6641 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006642 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6644 }
6645 _res = NULL;
6646 done:
6647 D(p->level--);
6648 return _res;
6649}
6650
6651// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006652static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006653wildcard_pattern_rule(Parser *p)
6654{
6655 D(p->level++);
6656 if (p->error_indicator) {
6657 D(p->level--);
6658 return NULL;
6659 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006660 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006661 int _mark = p->mark;
6662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6663 p->error_indicator = 1;
6664 D(p->level--);
6665 return NULL;
6666 }
6667 int _start_lineno = p->tokens[_mark]->lineno;
6668 UNUSED(_start_lineno); // Only used by EXTRA macro
6669 int _start_col_offset = p->tokens[_mark]->col_offset;
6670 UNUSED(_start_col_offset); // Only used by EXTRA macro
6671 { // "_"
6672 if (p->error_indicator) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6677 expr_ty _keyword;
6678 if (
6679 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6680 )
6681 {
6682 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6683 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6684 if (_token == NULL) {
6685 D(p->level--);
6686 return NULL;
6687 }
6688 int _end_lineno = _token->end_lineno;
6689 UNUSED(_end_lineno); // Only used by EXTRA macro
6690 int _end_col_offset = _token->end_col_offset;
6691 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006692 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006693 if (_res == NULL && PyErr_Occurred()) {
6694 p->error_indicator = 1;
6695 D(p->level--);
6696 return NULL;
6697 }
6698 goto done;
6699 }
6700 p->mark = _mark;
6701 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6703 }
6704 _res = NULL;
6705 done:
6706 D(p->level--);
6707 return _res;
6708}
6709
6710// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006711static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006712value_pattern_rule(Parser *p)
6713{
6714 D(p->level++);
6715 if (p->error_indicator) {
6716 D(p->level--);
6717 return NULL;
6718 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006719 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006720 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006721 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6722 p->error_indicator = 1;
6723 D(p->level--);
6724 return NULL;
6725 }
6726 int _start_lineno = p->tokens[_mark]->lineno;
6727 UNUSED(_start_lineno); // Only used by EXTRA macro
6728 int _start_col_offset = p->tokens[_mark]->col_offset;
6729 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006730 { // attr !('.' | '(' | '=')
6731 if (p->error_indicator) {
6732 D(p->level--);
6733 return NULL;
6734 }
6735 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6736 expr_ty attr;
6737 if (
6738 (attr = attr_rule(p)) // attr
6739 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006740 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006741 )
6742 {
6743 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6745 if (_token == NULL) {
6746 D(p->level--);
6747 return NULL;
6748 }
6749 int _end_lineno = _token->end_lineno;
6750 UNUSED(_end_lineno); // Only used by EXTRA macro
6751 int _end_col_offset = _token->end_col_offset;
6752 UNUSED(_end_col_offset); // Only used by EXTRA macro
6753 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006754 if (_res == NULL && PyErr_Occurred()) {
6755 p->error_indicator = 1;
6756 D(p->level--);
6757 return NULL;
6758 }
6759 goto done;
6760 }
6761 p->mark = _mark;
6762 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6764 }
6765 _res = NULL;
6766 done:
6767 D(p->level--);
6768 return _res;
6769}
6770
6771// Left-recursive
6772// attr: name_or_attr '.' NAME
6773static expr_ty attr_raw(Parser *);
6774static expr_ty
6775attr_rule(Parser *p)
6776{
6777 D(p->level++);
6778 expr_ty _res = NULL;
6779 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6780 D(p->level--);
6781 return _res;
6782 }
6783 int _mark = p->mark;
6784 int _resmark = p->mark;
6785 while (1) {
6786 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6787 if (tmpvar_1) {
6788 D(p->level--);
6789 return _res;
6790 }
6791 p->mark = _mark;
6792 void *_raw = attr_raw(p);
6793 if (p->error_indicator)
6794 return NULL;
6795 if (_raw == NULL || p->mark <= _resmark)
6796 break;
6797 _resmark = p->mark;
6798 _res = _raw;
6799 }
6800 p->mark = _resmark;
6801 D(p->level--);
6802 return _res;
6803}
6804static expr_ty
6805attr_raw(Parser *p)
6806{
6807 D(p->level++);
6808 if (p->error_indicator) {
6809 D(p->level--);
6810 return NULL;
6811 }
6812 expr_ty _res = NULL;
6813 int _mark = p->mark;
6814 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6815 p->error_indicator = 1;
6816 D(p->level--);
6817 return NULL;
6818 }
6819 int _start_lineno = p->tokens[_mark]->lineno;
6820 UNUSED(_start_lineno); // Only used by EXTRA macro
6821 int _start_col_offset = p->tokens[_mark]->col_offset;
6822 UNUSED(_start_col_offset); // Only used by EXTRA macro
6823 { // name_or_attr '.' NAME
6824 if (p->error_indicator) {
6825 D(p->level--);
6826 return NULL;
6827 }
6828 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6829 Token * _literal;
6830 expr_ty attr;
6831 expr_ty value;
6832 if (
6833 (value = name_or_attr_rule(p)) // name_or_attr
6834 &&
6835 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6836 &&
6837 (attr = _PyPegen_name_token(p)) // NAME
6838 )
6839 {
6840 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6841 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6842 if (_token == NULL) {
6843 D(p->level--);
6844 return NULL;
6845 }
6846 int _end_lineno = _token->end_lineno;
6847 UNUSED(_end_lineno); // Only used by EXTRA macro
6848 int _end_col_offset = _token->end_col_offset;
6849 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006850 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006851 if (_res == NULL && PyErr_Occurred()) {
6852 p->error_indicator = 1;
6853 D(p->level--);
6854 return NULL;
6855 }
6856 goto done;
6857 }
6858 p->mark = _mark;
6859 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6861 }
6862 _res = NULL;
6863 done:
6864 D(p->level--);
6865 return _res;
6866}
6867
6868// Left-recursive
6869// name_or_attr: attr | NAME
6870static expr_ty
6871name_or_attr_rule(Parser *p)
6872{
6873 D(p->level++);
6874 if (p->error_indicator) {
6875 D(p->level--);
6876 return NULL;
6877 }
6878 expr_ty _res = NULL;
6879 int _mark = p->mark;
6880 { // attr
6881 if (p->error_indicator) {
6882 D(p->level--);
6883 return NULL;
6884 }
6885 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6886 expr_ty attr_var;
6887 if (
6888 (attr_var = attr_rule(p)) // attr
6889 )
6890 {
6891 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6892 _res = attr_var;
6893 goto done;
6894 }
6895 p->mark = _mark;
6896 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6898 }
6899 { // NAME
6900 if (p->error_indicator) {
6901 D(p->level--);
6902 return NULL;
6903 }
6904 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6905 expr_ty name_var;
6906 if (
6907 (name_var = _PyPegen_name_token(p)) // NAME
6908 )
6909 {
6910 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6911 _res = name_var;
6912 goto done;
6913 }
6914 p->mark = _mark;
6915 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6917 }
6918 _res = NULL;
6919 done:
6920 D(p->level--);
6921 return _res;
6922}
6923
6924// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006925static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006926group_pattern_rule(Parser *p)
6927{
6928 D(p->level++);
6929 if (p->error_indicator) {
6930 D(p->level--);
6931 return NULL;
6932 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006933 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006934 int _mark = p->mark;
6935 { // '(' pattern ')'
6936 if (p->error_indicator) {
6937 D(p->level--);
6938 return NULL;
6939 }
6940 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6941 Token * _literal;
6942 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006943 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08006944 if (
6945 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6946 &&
6947 (pattern = pattern_rule(p)) // pattern
6948 &&
6949 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6950 )
6951 {
6952 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6953 _res = pattern;
6954 if (_res == NULL && PyErr_Occurred()) {
6955 p->error_indicator = 1;
6956 D(p->level--);
6957 return NULL;
6958 }
6959 goto done;
6960 }
6961 p->mark = _mark;
6962 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6964 }
6965 _res = NULL;
6966 done:
6967 D(p->level--);
6968 return _res;
6969}
6970
6971// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006972static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006973sequence_pattern_rule(Parser *p)
6974{
6975 D(p->level++);
6976 if (p->error_indicator) {
6977 D(p->level--);
6978 return NULL;
6979 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006980 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006981 int _mark = p->mark;
6982 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6983 p->error_indicator = 1;
6984 D(p->level--);
6985 return NULL;
6986 }
6987 int _start_lineno = p->tokens[_mark]->lineno;
6988 UNUSED(_start_lineno); // Only used by EXTRA macro
6989 int _start_col_offset = p->tokens[_mark]->col_offset;
6990 UNUSED(_start_col_offset); // Only used by EXTRA macro
6991 { // '[' maybe_sequence_pattern? ']'
6992 if (p->error_indicator) {
6993 D(p->level--);
6994 return NULL;
6995 }
6996 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6997 Token * _literal;
6998 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006999 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007000 if (
7001 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7002 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007003 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007004 &&
7005 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7006 )
7007 {
7008 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7010 if (_token == NULL) {
7011 D(p->level--);
7012 return NULL;
7013 }
7014 int _end_lineno = _token->end_lineno;
7015 UNUSED(_end_lineno); // Only used by EXTRA macro
7016 int _end_col_offset = _token->end_col_offset;
7017 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007018 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007019 if (_res == NULL && PyErr_Occurred()) {
7020 p->error_indicator = 1;
7021 D(p->level--);
7022 return NULL;
7023 }
7024 goto done;
7025 }
7026 p->mark = _mark;
7027 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7029 }
7030 { // '(' open_sequence_pattern? ')'
7031 if (p->error_indicator) {
7032 D(p->level--);
7033 return NULL;
7034 }
7035 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7036 Token * _literal;
7037 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007038 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007039 if (
7040 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7041 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007042 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007043 &&
7044 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7045 )
7046 {
7047 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7048 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7049 if (_token == NULL) {
7050 D(p->level--);
7051 return NULL;
7052 }
7053 int _end_lineno = _token->end_lineno;
7054 UNUSED(_end_lineno); // Only used by EXTRA macro
7055 int _end_col_offset = _token->end_col_offset;
7056 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007057 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007058 if (_res == NULL && PyErr_Occurred()) {
7059 p->error_indicator = 1;
7060 D(p->level--);
7061 return NULL;
7062 }
7063 goto done;
7064 }
7065 p->mark = _mark;
7066 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7068 }
7069 _res = NULL;
7070 done:
7071 D(p->level--);
7072 return _res;
7073}
7074
7075// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7076static asdl_seq*
7077open_sequence_pattern_rule(Parser *p)
7078{
7079 D(p->level++);
7080 if (p->error_indicator) {
7081 D(p->level--);
7082 return NULL;
7083 }
7084 asdl_seq* _res = NULL;
7085 int _mark = p->mark;
7086 { // maybe_star_pattern ',' maybe_sequence_pattern?
7087 if (p->error_indicator) {
7088 D(p->level--);
7089 return NULL;
7090 }
7091 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7092 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007093 pattern_ty pattern;
7094 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007095 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007096 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007097 &&
7098 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7099 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007100 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007101 )
7102 {
7103 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007104 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007105 if (_res == NULL && PyErr_Occurred()) {
7106 p->error_indicator = 1;
7107 D(p->level--);
7108 return NULL;
7109 }
7110 goto done;
7111 }
7112 p->mark = _mark;
7113 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7115 }
7116 _res = NULL;
7117 done:
7118 D(p->level--);
7119 return _res;
7120}
7121
7122// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7123static asdl_seq*
7124maybe_sequence_pattern_rule(Parser *p)
7125{
7126 D(p->level++);
7127 if (p->error_indicator) {
7128 D(p->level--);
7129 return NULL;
7130 }
7131 asdl_seq* _res = NULL;
7132 int _mark = p->mark;
7133 { // ','.maybe_star_pattern+ ','?
7134 if (p->error_indicator) {
7135 D(p->level--);
7136 return NULL;
7137 }
7138 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7139 void *_opt_var;
7140 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007141 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007142 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007143 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007144 &&
7145 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7146 )
7147 {
7148 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007149 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007150 if (_res == NULL && PyErr_Occurred()) {
7151 p->error_indicator = 1;
7152 D(p->level--);
7153 return NULL;
7154 }
7155 goto done;
7156 }
7157 p->mark = _mark;
7158 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7160 }
7161 _res = NULL;
7162 done:
7163 D(p->level--);
7164 return _res;
7165}
7166
7167// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007168static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007169maybe_star_pattern_rule(Parser *p)
7170{
7171 D(p->level++);
7172 if (p->error_indicator) {
7173 D(p->level--);
7174 return NULL;
7175 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007176 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007177 int _mark = p->mark;
7178 { // star_pattern
7179 if (p->error_indicator) {
7180 D(p->level--);
7181 return NULL;
7182 }
7183 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007184 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007185 if (
7186 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7187 )
7188 {
7189 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7190 _res = star_pattern_var;
7191 goto done;
7192 }
7193 p->mark = _mark;
7194 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7196 }
7197 { // pattern
7198 if (p->error_indicator) {
7199 D(p->level--);
7200 return NULL;
7201 }
7202 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007203 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007204 if (
7205 (pattern_var = pattern_rule(p)) // pattern
7206 )
7207 {
7208 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7209 _res = pattern_var;
7210 goto done;
7211 }
7212 p->mark = _mark;
7213 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7215 }
7216 _res = NULL;
7217 done:
7218 D(p->level--);
7219 return _res;
7220}
7221
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007222// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7223static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007224star_pattern_rule(Parser *p)
7225{
7226 D(p->level++);
7227 if (p->error_indicator) {
7228 D(p->level--);
7229 return NULL;
7230 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007231 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007232 int _mark = p->mark;
7233 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7234 p->error_indicator = 1;
7235 D(p->level--);
7236 return NULL;
7237 }
7238 int _start_lineno = p->tokens[_mark]->lineno;
7239 UNUSED(_start_lineno); // Only used by EXTRA macro
7240 int _start_col_offset = p->tokens[_mark]->col_offset;
7241 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007242 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007243 if (p->error_indicator) {
7244 D(p->level--);
7245 return NULL;
7246 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007247 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007248 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007249 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007250 if (
7251 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7252 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007253 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007254 )
7255 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007256 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007257 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7258 if (_token == NULL) {
7259 D(p->level--);
7260 return NULL;
7261 }
7262 int _end_lineno = _token->end_lineno;
7263 UNUSED(_end_lineno); // Only used by EXTRA macro
7264 int _end_col_offset = _token->end_col_offset;
7265 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007266 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007267 if (_res == NULL && PyErr_Occurred()) {
7268 p->error_indicator = 1;
7269 D(p->level--);
7270 return NULL;
7271 }
7272 goto done;
7273 }
7274 p->mark = _mark;
7275 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7277 }
7278 { // '*' wildcard_pattern
7279 if (p->error_indicator) {
7280 D(p->level--);
7281 return NULL;
7282 }
7283 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7284 Token * _literal;
7285 pattern_ty wildcard_pattern_var;
7286 if (
7287 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7288 &&
7289 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7290 )
7291 {
7292 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7293 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7294 if (_token == NULL) {
7295 D(p->level--);
7296 return NULL;
7297 }
7298 int _end_lineno = _token->end_lineno;
7299 UNUSED(_end_lineno); // Only used by EXTRA macro
7300 int _end_col_offset = _token->end_col_offset;
7301 UNUSED(_end_col_offset); // Only used by EXTRA macro
7302 _res = _PyAST_MatchStar ( NULL , EXTRA );
7303 if (_res == NULL && PyErr_Occurred()) {
7304 p->error_indicator = 1;
7305 D(p->level--);
7306 return NULL;
7307 }
7308 goto done;
7309 }
7310 p->mark = _mark;
7311 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007313 }
7314 _res = NULL;
7315 done:
7316 D(p->level--);
7317 return _res;
7318}
7319
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007320// mapping_pattern:
7321// | '{' '}'
7322// | '{' double_star_pattern ','? '}'
7323// | '{' items_pattern ',' double_star_pattern ','? '}'
7324// | '{' items_pattern ','? '}'
7325static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007326mapping_pattern_rule(Parser *p)
7327{
7328 D(p->level++);
7329 if (p->error_indicator) {
7330 D(p->level--);
7331 return NULL;
7332 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007333 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007334 int _mark = p->mark;
7335 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7336 p->error_indicator = 1;
7337 D(p->level--);
7338 return NULL;
7339 }
7340 int _start_lineno = p->tokens[_mark]->lineno;
7341 UNUSED(_start_lineno); // Only used by EXTRA macro
7342 int _start_col_offset = p->tokens[_mark]->col_offset;
7343 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007344 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007345 if (p->error_indicator) {
7346 D(p->level--);
7347 return NULL;
7348 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007349 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007350 Token * _literal;
7351 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007352 if (
7353 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7354 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007355 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7356 )
7357 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007358 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7360 if (_token == NULL) {
7361 D(p->level--);
7362 return NULL;
7363 }
7364 int _end_lineno = _token->end_lineno;
7365 UNUSED(_end_lineno); // Only used by EXTRA macro
7366 int _end_col_offset = _token->end_col_offset;
7367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007368 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007369 if (_res == NULL && PyErr_Occurred()) {
7370 p->error_indicator = 1;
7371 D(p->level--);
7372 return NULL;
7373 }
7374 goto done;
7375 }
7376 p->mark = _mark;
7377 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7379 }
7380 { // '{' double_star_pattern ','? '}'
7381 if (p->error_indicator) {
7382 D(p->level--);
7383 return NULL;
7384 }
7385 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7386 Token * _literal;
7387 Token * _literal_1;
7388 void *_opt_var;
7389 UNUSED(_opt_var); // Silence compiler warnings
7390 expr_ty rest;
7391 if (
7392 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7393 &&
7394 (rest = double_star_pattern_rule(p)) // double_star_pattern
7395 &&
7396 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7397 &&
7398 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7399 )
7400 {
7401 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7403 if (_token == NULL) {
7404 D(p->level--);
7405 return NULL;
7406 }
7407 int _end_lineno = _token->end_lineno;
7408 UNUSED(_end_lineno); // Only used by EXTRA macro
7409 int _end_col_offset = _token->end_col_offset;
7410 UNUSED(_end_col_offset); // Only used by EXTRA macro
7411 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7412 if (_res == NULL && PyErr_Occurred()) {
7413 p->error_indicator = 1;
7414 D(p->level--);
7415 return NULL;
7416 }
7417 goto done;
7418 }
7419 p->mark = _mark;
7420 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7422 }
7423 { // '{' items_pattern ',' double_star_pattern ','? '}'
7424 if (p->error_indicator) {
7425 D(p->level--);
7426 return NULL;
7427 }
7428 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7429 Token * _literal;
7430 Token * _literal_1;
7431 Token * _literal_2;
7432 void *_opt_var;
7433 UNUSED(_opt_var); // Silence compiler warnings
7434 asdl_seq* items;
7435 expr_ty rest;
7436 if (
7437 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7438 &&
7439 (items = items_pattern_rule(p)) // items_pattern
7440 &&
7441 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7442 &&
7443 (rest = double_star_pattern_rule(p)) // double_star_pattern
7444 &&
7445 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7446 &&
7447 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7448 )
7449 {
7450 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7452 if (_token == NULL) {
7453 D(p->level--);
7454 return NULL;
7455 }
7456 int _end_lineno = _token->end_lineno;
7457 UNUSED(_end_lineno); // Only used by EXTRA macro
7458 int _end_col_offset = _token->end_col_offset;
7459 UNUSED(_end_col_offset); // Only used by EXTRA macro
7460 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , rest -> v . Name . id , EXTRA );
7461 if (_res == NULL && PyErr_Occurred()) {
7462 p->error_indicator = 1;
7463 D(p->level--);
7464 return NULL;
7465 }
7466 goto done;
7467 }
7468 p->mark = _mark;
7469 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7471 }
7472 { // '{' items_pattern ','? '}'
7473 if (p->error_indicator) {
7474 D(p->level--);
7475 return NULL;
7476 }
7477 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7478 Token * _literal;
7479 Token * _literal_1;
7480 void *_opt_var;
7481 UNUSED(_opt_var); // Silence compiler warnings
7482 asdl_seq* items;
7483 if (
7484 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7485 &&
7486 (items = items_pattern_rule(p)) // items_pattern
7487 &&
7488 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7489 &&
7490 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7491 )
7492 {
7493 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7494 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7495 if (_token == NULL) {
7496 D(p->level--);
7497 return NULL;
7498 }
7499 int _end_lineno = _token->end_lineno;
7500 UNUSED(_end_lineno); // Only used by EXTRA macro
7501 int _end_col_offset = _token->end_col_offset;
7502 UNUSED(_end_col_offset); // Only used by EXTRA macro
7503 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7504 if (_res == NULL && PyErr_Occurred()) {
7505 p->error_indicator = 1;
7506 D(p->level--);
7507 return NULL;
7508 }
7509 goto done;
7510 }
7511 p->mark = _mark;
7512 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007514 }
7515 _res = NULL;
7516 done:
7517 D(p->level--);
7518 return _res;
7519}
7520
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007521// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007522static asdl_seq*
7523items_pattern_rule(Parser *p)
7524{
7525 D(p->level++);
7526 if (p->error_indicator) {
7527 D(p->level--);
7528 return NULL;
7529 }
7530 asdl_seq* _res = NULL;
7531 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007532 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007533 if (p->error_indicator) {
7534 D(p->level--);
7535 return NULL;
7536 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007537 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007538 asdl_seq * items;
7539 if (
7540 (items = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007541 )
7542 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007543 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007544 _res = items;
7545 if (_res == NULL && PyErr_Occurred()) {
7546 p->error_indicator = 1;
7547 D(p->level--);
7548 return NULL;
7549 }
7550 goto done;
7551 }
7552 p->mark = _mark;
7553 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007555 }
7556 _res = NULL;
7557 done:
7558 D(p->level--);
7559 return _res;
7560}
7561
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007562// key_value_pattern: (literal_expr | attr) ':' pattern
7563static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007564key_value_pattern_rule(Parser *p)
7565{
7566 D(p->level++);
7567 if (p->error_indicator) {
7568 D(p->level--);
7569 return NULL;
7570 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007571 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007572 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007573 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007574 if (p->error_indicator) {
7575 D(p->level--);
7576 return NULL;
7577 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007578 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007579 Token * _literal;
7580 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007581 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007582 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007583 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007584 &&
7585 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7586 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007587 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007588 )
7589 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007590 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7591 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007592 if (_res == NULL && PyErr_Occurred()) {
7593 p->error_indicator = 1;
7594 D(p->level--);
7595 return NULL;
7596 }
7597 goto done;
7598 }
7599 p->mark = _mark;
7600 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007602 }
7603 _res = NULL;
7604 done:
7605 D(p->level--);
7606 return _res;
7607}
7608
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007609// double_star_pattern: '**' pattern_capture_target
7610static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007611double_star_pattern_rule(Parser *p)
7612{
7613 D(p->level++);
7614 if (p->error_indicator) {
7615 D(p->level--);
7616 return NULL;
7617 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007618 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007619 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007620 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007621 if (p->error_indicator) {
7622 D(p->level--);
7623 return NULL;
7624 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007625 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007626 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007627 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007628 if (
7629 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7630 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007631 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007632 )
7633 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007634 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7635 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007636 if (_res == NULL && PyErr_Occurred()) {
7637 p->error_indicator = 1;
7638 D(p->level--);
7639 return NULL;
7640 }
7641 goto done;
7642 }
7643 p->mark = _mark;
7644 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007646 }
7647 _res = NULL;
7648 done:
7649 D(p->level--);
7650 return _res;
7651}
7652
7653// class_pattern:
7654// | name_or_attr '(' ')'
7655// | name_or_attr '(' positional_patterns ','? ')'
7656// | name_or_attr '(' keyword_patterns ','? ')'
7657// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007658static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007659class_pattern_rule(Parser *p)
7660{
7661 D(p->level++);
7662 if (p->error_indicator) {
7663 D(p->level--);
7664 return NULL;
7665 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007666 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007667 int _mark = p->mark;
7668 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7669 p->error_indicator = 1;
7670 D(p->level--);
7671 return NULL;
7672 }
7673 int _start_lineno = p->tokens[_mark]->lineno;
7674 UNUSED(_start_lineno); // Only used by EXTRA macro
7675 int _start_col_offset = p->tokens[_mark]->col_offset;
7676 UNUSED(_start_col_offset); // Only used by EXTRA macro
7677 { // name_or_attr '(' ')'
7678 if (p->error_indicator) {
7679 D(p->level--);
7680 return NULL;
7681 }
7682 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7683 Token * _literal;
7684 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007685 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007686 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007687 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007688 &&
7689 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7690 &&
7691 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7692 )
7693 {
7694 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7696 if (_token == NULL) {
7697 D(p->level--);
7698 return NULL;
7699 }
7700 int _end_lineno = _token->end_lineno;
7701 UNUSED(_end_lineno); // Only used by EXTRA macro
7702 int _end_col_offset = _token->end_col_offset;
7703 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007704 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007705 if (_res == NULL && PyErr_Occurred()) {
7706 p->error_indicator = 1;
7707 D(p->level--);
7708 return NULL;
7709 }
7710 goto done;
7711 }
7712 p->mark = _mark;
7713 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7715 }
7716 { // name_or_attr '(' positional_patterns ','? ')'
7717 if (p->error_indicator) {
7718 D(p->level--);
7719 return NULL;
7720 }
7721 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7722 Token * _literal;
7723 Token * _literal_1;
7724 void *_opt_var;
7725 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007726 expr_ty cls;
7727 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007728 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007729 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007730 &&
7731 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7732 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007733 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007734 &&
7735 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7736 &&
7737 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7738 )
7739 {
7740 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7741 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7742 if (_token == NULL) {
7743 D(p->level--);
7744 return NULL;
7745 }
7746 int _end_lineno = _token->end_lineno;
7747 UNUSED(_end_lineno); // Only used by EXTRA macro
7748 int _end_col_offset = _token->end_col_offset;
7749 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007750 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007751 if (_res == NULL && PyErr_Occurred()) {
7752 p->error_indicator = 1;
7753 D(p->level--);
7754 return NULL;
7755 }
7756 goto done;
7757 }
7758 p->mark = _mark;
7759 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7761 }
7762 { // name_or_attr '(' keyword_patterns ','? ')'
7763 if (p->error_indicator) {
7764 D(p->level--);
7765 return NULL;
7766 }
7767 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7768 Token * _literal;
7769 Token * _literal_1;
7770 void *_opt_var;
7771 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007772 expr_ty cls;
7773 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007774 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007775 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007776 &&
7777 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7778 &&
7779 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7780 &&
7781 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7782 &&
7783 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7784 )
7785 {
7786 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7788 if (_token == NULL) {
7789 D(p->level--);
7790 return NULL;
7791 }
7792 int _end_lineno = _token->end_lineno;
7793 UNUSED(_end_lineno); // Only used by EXTRA macro
7794 int _end_col_offset = _token->end_col_offset;
7795 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007796 _res = _PyAST_MatchClass ( cls , NULL , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007797 if (_res == NULL && PyErr_Occurred()) {
7798 p->error_indicator = 1;
7799 D(p->level--);
7800 return NULL;
7801 }
7802 goto done;
7803 }
7804 p->mark = _mark;
7805 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7807 }
7808 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7809 if (p->error_indicator) {
7810 D(p->level--);
7811 return NULL;
7812 }
7813 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7814 Token * _literal;
7815 Token * _literal_1;
7816 Token * _literal_2;
7817 void *_opt_var;
7818 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007819 expr_ty cls;
7820 asdl_seq* keywords;
7821 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007822 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007823 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007824 &&
7825 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7826 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007827 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007828 &&
7829 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7830 &&
7831 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7832 &&
7833 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7834 &&
7835 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7836 )
7837 {
7838 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7840 if (_token == NULL) {
7841 D(p->level--);
7842 return NULL;
7843 }
7844 int _end_lineno = _token->end_lineno;
7845 UNUSED(_end_lineno); // Only used by EXTRA macro
7846 int _end_col_offset = _token->end_col_offset;
7847 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007848 _res = _PyAST_MatchClass ( cls , patterns , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007849 if (_res == NULL && PyErr_Occurred()) {
7850 p->error_indicator = 1;
7851 D(p->level--);
7852 return NULL;
7853 }
7854 goto done;
7855 }
7856 p->mark = _mark;
7857 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7859 }
7860 _res = NULL;
7861 done:
7862 D(p->level--);
7863 return _res;
7864}
7865
7866// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007867static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08007868positional_patterns_rule(Parser *p)
7869{
7870 D(p->level++);
7871 if (p->error_indicator) {
7872 D(p->level--);
7873 return NULL;
7874 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007875 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007876 int _mark = p->mark;
7877 { // ','.pattern+
7878 if (p->error_indicator) {
7879 D(p->level--);
7880 return NULL;
7881 }
7882 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007883 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08007884 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007885 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007886 )
7887 {
7888 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7889 _res = args;
7890 if (_res == NULL && PyErr_Occurred()) {
7891 p->error_indicator = 1;
7892 D(p->level--);
7893 return NULL;
7894 }
7895 goto done;
7896 }
7897 p->mark = _mark;
7898 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7900 }
7901 _res = NULL;
7902 done:
7903 D(p->level--);
7904 return _res;
7905}
7906
7907// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007908static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08007909keyword_patterns_rule(Parser *p)
7910{
7911 D(p->level++);
7912 if (p->error_indicator) {
7913 D(p->level--);
7914 return NULL;
7915 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007916 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007917 int _mark = p->mark;
7918 { // ','.keyword_pattern+
7919 if (p->error_indicator) {
7920 D(p->level--);
7921 return NULL;
7922 }
7923 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007924 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007925 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007926 (keywords = (asdl_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007927 )
7928 {
7929 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7930 _res = keywords;
7931 if (_res == NULL && PyErr_Occurred()) {
7932 p->error_indicator = 1;
7933 D(p->level--);
7934 return NULL;
7935 }
7936 goto done;
7937 }
7938 p->mark = _mark;
7939 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7941 }
7942 _res = NULL;
7943 done:
7944 D(p->level--);
7945 return _res;
7946}
7947
7948// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007949static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007950keyword_pattern_rule(Parser *p)
7951{
7952 D(p->level++);
7953 if (p->error_indicator) {
7954 D(p->level--);
7955 return NULL;
7956 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007957 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007958 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08007959 { // NAME '=' pattern
7960 if (p->error_indicator) {
7961 D(p->level--);
7962 return NULL;
7963 }
7964 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7965 Token * _literal;
7966 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007967 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08007968 if (
7969 (arg = _PyPegen_name_token(p)) // NAME
7970 &&
7971 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7972 &&
7973 (value = pattern_rule(p)) // pattern
7974 )
7975 {
7976 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007977 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08007978 if (_res == NULL && PyErr_Occurred()) {
7979 p->error_indicator = 1;
7980 D(p->level--);
7981 return NULL;
7982 }
7983 goto done;
7984 }
7985 p->mark = _mark;
7986 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7988 }
7989 _res = NULL;
7990 done:
7991 D(p->level--);
7992 return _res;
7993}
7994
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007995// return_stmt: 'return' star_expressions?
7996static stmt_ty
7997return_stmt_rule(Parser *p)
7998{
7999 D(p->level++);
8000 if (p->error_indicator) {
8001 D(p->level--);
8002 return NULL;
8003 }
8004 stmt_ty _res = NULL;
8005 int _mark = p->mark;
8006 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8007 p->error_indicator = 1;
8008 D(p->level--);
8009 return NULL;
8010 }
8011 int _start_lineno = p->tokens[_mark]->lineno;
8012 UNUSED(_start_lineno); // Only used by EXTRA macro
8013 int _start_col_offset = p->tokens[_mark]->col_offset;
8014 UNUSED(_start_col_offset); // Only used by EXTRA macro
8015 { // 'return' star_expressions?
8016 if (p->error_indicator) {
8017 D(p->level--);
8018 return NULL;
8019 }
8020 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8021 Token * _keyword;
8022 void *a;
8023 if (
8024 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8025 &&
8026 (a = star_expressions_rule(p), 1) // star_expressions?
8027 )
8028 {
8029 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8031 if (_token == NULL) {
8032 D(p->level--);
8033 return NULL;
8034 }
8035 int _end_lineno = _token->end_lineno;
8036 UNUSED(_end_lineno); // Only used by EXTRA macro
8037 int _end_col_offset = _token->end_col_offset;
8038 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008039 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008040 if (_res == NULL && PyErr_Occurred()) {
8041 p->error_indicator = 1;
8042 D(p->level--);
8043 return NULL;
8044 }
8045 goto done;
8046 }
8047 p->mark = _mark;
8048 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8050 }
8051 _res = NULL;
8052 done:
8053 D(p->level--);
8054 return _res;
8055}
8056
8057// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8058static stmt_ty
8059raise_stmt_rule(Parser *p)
8060{
8061 D(p->level++);
8062 if (p->error_indicator) {
8063 D(p->level--);
8064 return NULL;
8065 }
8066 stmt_ty _res = NULL;
8067 int _mark = p->mark;
8068 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8069 p->error_indicator = 1;
8070 D(p->level--);
8071 return NULL;
8072 }
8073 int _start_lineno = p->tokens[_mark]->lineno;
8074 UNUSED(_start_lineno); // Only used by EXTRA macro
8075 int _start_col_offset = p->tokens[_mark]->col_offset;
8076 UNUSED(_start_col_offset); // Only used by EXTRA macro
8077 { // 'raise' expression ['from' expression]
8078 if (p->error_indicator) {
8079 D(p->level--);
8080 return NULL;
8081 }
8082 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8083 Token * _keyword;
8084 expr_ty a;
8085 void *b;
8086 if (
8087 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8088 &&
8089 (a = expression_rule(p)) // expression
8090 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008091 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008092 )
8093 {
8094 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8096 if (_token == NULL) {
8097 D(p->level--);
8098 return NULL;
8099 }
8100 int _end_lineno = _token->end_lineno;
8101 UNUSED(_end_lineno); // Only used by EXTRA macro
8102 int _end_col_offset = _token->end_col_offset;
8103 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008104 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008105 if (_res == NULL && PyErr_Occurred()) {
8106 p->error_indicator = 1;
8107 D(p->level--);
8108 return NULL;
8109 }
8110 goto done;
8111 }
8112 p->mark = _mark;
8113 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8115 }
8116 { // 'raise'
8117 if (p->error_indicator) {
8118 D(p->level--);
8119 return NULL;
8120 }
8121 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8122 Token * _keyword;
8123 if (
8124 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8125 )
8126 {
8127 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8128 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8129 if (_token == NULL) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 int _end_lineno = _token->end_lineno;
8134 UNUSED(_end_lineno); // Only used by EXTRA macro
8135 int _end_col_offset = _token->end_col_offset;
8136 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008137 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008138 if (_res == NULL && PyErr_Occurred()) {
8139 p->error_indicator = 1;
8140 D(p->level--);
8141 return NULL;
8142 }
8143 goto done;
8144 }
8145 p->mark = _mark;
8146 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8148 }
8149 _res = NULL;
8150 done:
8151 D(p->level--);
8152 return _res;
8153}
8154
8155// function_def: decorators function_def_raw | function_def_raw
8156static stmt_ty
8157function_def_rule(Parser *p)
8158{
8159 D(p->level++);
8160 if (p->error_indicator) {
8161 D(p->level--);
8162 return NULL;
8163 }
8164 stmt_ty _res = NULL;
8165 int _mark = p->mark;
8166 { // decorators function_def_raw
8167 if (p->error_indicator) {
8168 D(p->level--);
8169 return NULL;
8170 }
8171 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008172 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008173 stmt_ty f;
8174 if (
8175 (d = decorators_rule(p)) // decorators
8176 &&
8177 (f = function_def_raw_rule(p)) // function_def_raw
8178 )
8179 {
8180 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8181 _res = _PyPegen_function_def_decorators ( p , d , f );
8182 if (_res == NULL && PyErr_Occurred()) {
8183 p->error_indicator = 1;
8184 D(p->level--);
8185 return NULL;
8186 }
8187 goto done;
8188 }
8189 p->mark = _mark;
8190 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8192 }
8193 { // function_def_raw
8194 if (p->error_indicator) {
8195 D(p->level--);
8196 return NULL;
8197 }
8198 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8199 stmt_ty function_def_raw_var;
8200 if (
8201 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8202 )
8203 {
8204 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8205 _res = function_def_raw_var;
8206 goto done;
8207 }
8208 p->mark = _mark;
8209 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8211 }
8212 _res = NULL;
8213 done:
8214 D(p->level--);
8215 return _res;
8216}
8217
8218// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008219// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008220// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8221// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008222static stmt_ty
8223function_def_raw_rule(Parser *p)
8224{
8225 D(p->level++);
8226 if (p->error_indicator) {
8227 D(p->level--);
8228 return NULL;
8229 }
8230 stmt_ty _res = NULL;
8231 int _mark = p->mark;
8232 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8233 p->error_indicator = 1;
8234 D(p->level--);
8235 return NULL;
8236 }
8237 int _start_lineno = p->tokens[_mark]->lineno;
8238 UNUSED(_start_lineno); // Only used by EXTRA macro
8239 int _start_col_offset = p->tokens[_mark]->col_offset;
8240 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008241 if (p->call_invalid_rules) { // invalid_def_raw
8242 if (p->error_indicator) {
8243 D(p->level--);
8244 return NULL;
8245 }
8246 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8247 void *invalid_def_raw_var;
8248 if (
8249 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8250 )
8251 {
8252 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8253 _res = invalid_def_raw_var;
8254 goto done;
8255 }
8256 p->mark = _mark;
8257 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8259 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008260 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008261 if (p->error_indicator) {
8262 D(p->level--);
8263 return NULL;
8264 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008265 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008266 Token * _keyword;
8267 Token * _literal;
8268 Token * _literal_1;
8269 Token * _literal_2;
8270 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008271 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008272 expr_ty n;
8273 void *params;
8274 void *tc;
8275 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008276 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008277 &&
8278 (n = _PyPegen_name_token(p)) // NAME
8279 &&
8280 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8281 &&
8282 (params = params_rule(p), 1) // params?
8283 &&
8284 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8285 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008286 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008287 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008288 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008289 &&
8290 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8291 &&
8292 (b = block_rule(p)) // block
8293 )
8294 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008295 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008296 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8297 if (_token == NULL) {
8298 D(p->level--);
8299 return NULL;
8300 }
8301 int _end_lineno = _token->end_lineno;
8302 UNUSED(_end_lineno); // Only used by EXTRA macro
8303 int _end_col_offset = _token->end_col_offset;
8304 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008305 _res = _PyAST_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008306 if (_res == NULL && PyErr_Occurred()) {
8307 p->error_indicator = 1;
8308 D(p->level--);
8309 return NULL;
8310 }
8311 goto done;
8312 }
8313 p->mark = _mark;
8314 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008316 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008317 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008318 if (p->error_indicator) {
8319 D(p->level--);
8320 return NULL;
8321 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008322 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008323 Token * _keyword;
8324 Token * _literal;
8325 Token * _literal_1;
8326 Token * _literal_2;
8327 void *a;
8328 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008329 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008330 expr_ty n;
8331 void *params;
8332 void *tc;
8333 if (
8334 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8335 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008336 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008337 &&
8338 (n = _PyPegen_name_token(p)) // NAME
8339 &&
8340 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8341 &&
8342 (params = params_rule(p), 1) // params?
8343 &&
8344 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8345 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008346 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008347 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008348 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008349 &&
8350 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8351 &&
8352 (b = block_rule(p)) // block
8353 )
8354 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008355 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8357 if (_token == NULL) {
8358 D(p->level--);
8359 return NULL;
8360 }
8361 int _end_lineno = _token->end_lineno;
8362 UNUSED(_end_lineno); // Only used by EXTRA macro
8363 int _end_col_offset = _token->end_col_offset;
8364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008365 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _PyAST_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008366 if (_res == NULL && PyErr_Occurred()) {
8367 p->error_indicator = 1;
8368 D(p->level--);
8369 return NULL;
8370 }
8371 goto done;
8372 }
8373 p->mark = _mark;
8374 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008376 }
8377 _res = NULL;
8378 done:
8379 D(p->level--);
8380 return _res;
8381}
8382
8383// func_type_comment:
8384// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8385// | invalid_double_type_comments
8386// | TYPE_COMMENT
8387static Token*
8388func_type_comment_rule(Parser *p)
8389{
8390 D(p->level++);
8391 if (p->error_indicator) {
8392 D(p->level--);
8393 return NULL;
8394 }
8395 Token* _res = NULL;
8396 int _mark = p->mark;
8397 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8398 if (p->error_indicator) {
8399 D(p->level--);
8400 return NULL;
8401 }
8402 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8403 Token * newline_var;
8404 Token * t;
8405 if (
8406 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8407 &&
8408 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8409 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008410 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008411 )
8412 {
8413 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8414 _res = t;
8415 if (_res == NULL && PyErr_Occurred()) {
8416 p->error_indicator = 1;
8417 D(p->level--);
8418 return NULL;
8419 }
8420 goto done;
8421 }
8422 p->mark = _mark;
8423 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8425 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008426 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008427 if (p->error_indicator) {
8428 D(p->level--);
8429 return NULL;
8430 }
8431 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8432 void *invalid_double_type_comments_var;
8433 if (
8434 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8435 )
8436 {
8437 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8438 _res = invalid_double_type_comments_var;
8439 goto done;
8440 }
8441 p->mark = _mark;
8442 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8444 }
8445 { // TYPE_COMMENT
8446 if (p->error_indicator) {
8447 D(p->level--);
8448 return NULL;
8449 }
8450 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8451 Token * type_comment_var;
8452 if (
8453 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8454 )
8455 {
8456 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8457 _res = type_comment_var;
8458 goto done;
8459 }
8460 p->mark = _mark;
8461 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8463 }
8464 _res = NULL;
8465 done:
8466 D(p->level--);
8467 return _res;
8468}
8469
8470// params: invalid_parameters | parameters
8471static arguments_ty
8472params_rule(Parser *p)
8473{
8474 D(p->level++);
8475 if (p->error_indicator) {
8476 D(p->level--);
8477 return NULL;
8478 }
8479 arguments_ty _res = NULL;
8480 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008481 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008482 if (p->error_indicator) {
8483 D(p->level--);
8484 return NULL;
8485 }
8486 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8487 void *invalid_parameters_var;
8488 if (
8489 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8490 )
8491 {
8492 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8493 _res = invalid_parameters_var;
8494 goto done;
8495 }
8496 p->mark = _mark;
8497 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8499 }
8500 { // parameters
8501 if (p->error_indicator) {
8502 D(p->level--);
8503 return NULL;
8504 }
8505 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8506 arguments_ty parameters_var;
8507 if (
8508 (parameters_var = parameters_rule(p)) // parameters
8509 )
8510 {
8511 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8512 _res = parameters_var;
8513 goto done;
8514 }
8515 p->mark = _mark;
8516 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8518 }
8519 _res = NULL;
8520 done:
8521 D(p->level--);
8522 return _res;
8523}
8524
8525// parameters:
8526// | slash_no_default param_no_default* param_with_default* star_etc?
8527// | slash_with_default param_with_default* star_etc?
8528// | param_no_default+ param_with_default* star_etc?
8529// | param_with_default+ star_etc?
8530// | star_etc
8531static arguments_ty
8532parameters_rule(Parser *p)
8533{
8534 D(p->level++);
8535 if (p->error_indicator) {
8536 D(p->level--);
8537 return NULL;
8538 }
8539 arguments_ty _res = NULL;
8540 int _mark = p->mark;
8541 { // slash_no_default param_no_default* param_with_default* star_etc?
8542 if (p->error_indicator) {
8543 D(p->level--);
8544 return NULL;
8545 }
8546 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008547 asdl_arg_seq* a;
8548 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008549 asdl_seq * c;
8550 void *d;
8551 if (
8552 (a = slash_no_default_rule(p)) // slash_no_default
8553 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008554 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008555 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008556 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008557 &&
8558 (d = star_etc_rule(p), 1) // star_etc?
8559 )
8560 {
8561 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8562 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8563 if (_res == NULL && PyErr_Occurred()) {
8564 p->error_indicator = 1;
8565 D(p->level--);
8566 return NULL;
8567 }
8568 goto done;
8569 }
8570 p->mark = _mark;
8571 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8573 }
8574 { // slash_with_default param_with_default* star_etc?
8575 if (p->error_indicator) {
8576 D(p->level--);
8577 return NULL;
8578 }
8579 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8580 SlashWithDefault* a;
8581 asdl_seq * b;
8582 void *c;
8583 if (
8584 (a = slash_with_default_rule(p)) // slash_with_default
8585 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008586 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008587 &&
8588 (c = star_etc_rule(p), 1) // star_etc?
8589 )
8590 {
8591 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8592 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8593 if (_res == NULL && PyErr_Occurred()) {
8594 p->error_indicator = 1;
8595 D(p->level--);
8596 return NULL;
8597 }
8598 goto done;
8599 }
8600 p->mark = _mark;
8601 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8603 }
8604 { // param_no_default+ param_with_default* star_etc?
8605 if (p->error_indicator) {
8606 D(p->level--);
8607 return NULL;
8608 }
8609 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008610 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008611 asdl_seq * b;
8612 void *c;
8613 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008614 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008615 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008616 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008617 &&
8618 (c = star_etc_rule(p), 1) // star_etc?
8619 )
8620 {
8621 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8622 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8623 if (_res == NULL && PyErr_Occurred()) {
8624 p->error_indicator = 1;
8625 D(p->level--);
8626 return NULL;
8627 }
8628 goto done;
8629 }
8630 p->mark = _mark;
8631 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8633 }
8634 { // param_with_default+ star_etc?
8635 if (p->error_indicator) {
8636 D(p->level--);
8637 return NULL;
8638 }
8639 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8640 asdl_seq * a;
8641 void *b;
8642 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008643 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008644 &&
8645 (b = star_etc_rule(p), 1) // star_etc?
8646 )
8647 {
8648 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8649 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8650 if (_res == NULL && PyErr_Occurred()) {
8651 p->error_indicator = 1;
8652 D(p->level--);
8653 return NULL;
8654 }
8655 goto done;
8656 }
8657 p->mark = _mark;
8658 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8660 }
8661 { // star_etc
8662 if (p->error_indicator) {
8663 D(p->level--);
8664 return NULL;
8665 }
8666 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8667 StarEtc* a;
8668 if (
8669 (a = star_etc_rule(p)) // star_etc
8670 )
8671 {
8672 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8673 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8674 if (_res == NULL && PyErr_Occurred()) {
8675 p->error_indicator = 1;
8676 D(p->level--);
8677 return NULL;
8678 }
8679 goto done;
8680 }
8681 p->mark = _mark;
8682 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8684 }
8685 _res = NULL;
8686 done:
8687 D(p->level--);
8688 return _res;
8689}
8690
8691// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008692static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008693slash_no_default_rule(Parser *p)
8694{
8695 D(p->level++);
8696 if (p->error_indicator) {
8697 D(p->level--);
8698 return NULL;
8699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008700 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008701 int _mark = p->mark;
8702 { // param_no_default+ '/' ','
8703 if (p->error_indicator) {
8704 D(p->level--);
8705 return NULL;
8706 }
8707 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8708 Token * _literal;
8709 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008710 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008711 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008712 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008713 &&
8714 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8715 &&
8716 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8717 )
8718 {
8719 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8720 _res = a;
8721 if (_res == NULL && PyErr_Occurred()) {
8722 p->error_indicator = 1;
8723 D(p->level--);
8724 return NULL;
8725 }
8726 goto done;
8727 }
8728 p->mark = _mark;
8729 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8731 }
8732 { // param_no_default+ '/' &')'
8733 if (p->error_indicator) {
8734 D(p->level--);
8735 return NULL;
8736 }
8737 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8738 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008739 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008740 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008741 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008742 &&
8743 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8744 &&
8745 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8746 )
8747 {
8748 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8749 _res = a;
8750 if (_res == NULL && PyErr_Occurred()) {
8751 p->error_indicator = 1;
8752 D(p->level--);
8753 return NULL;
8754 }
8755 goto done;
8756 }
8757 p->mark = _mark;
8758 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8760 }
8761 _res = NULL;
8762 done:
8763 D(p->level--);
8764 return _res;
8765}
8766
8767// slash_with_default:
8768// | param_no_default* param_with_default+ '/' ','
8769// | param_no_default* param_with_default+ '/' &')'
8770static SlashWithDefault*
8771slash_with_default_rule(Parser *p)
8772{
8773 D(p->level++);
8774 if (p->error_indicator) {
8775 D(p->level--);
8776 return NULL;
8777 }
8778 SlashWithDefault* _res = NULL;
8779 int _mark = p->mark;
8780 { // param_no_default* param_with_default+ '/' ','
8781 if (p->error_indicator) {
8782 D(p->level--);
8783 return NULL;
8784 }
8785 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8786 Token * _literal;
8787 Token * _literal_1;
8788 asdl_seq * a;
8789 asdl_seq * b;
8790 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008791 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008792 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008793 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008794 &&
8795 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8796 &&
8797 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8798 )
8799 {
8800 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008801 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008802 if (_res == NULL && PyErr_Occurred()) {
8803 p->error_indicator = 1;
8804 D(p->level--);
8805 return NULL;
8806 }
8807 goto done;
8808 }
8809 p->mark = _mark;
8810 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8812 }
8813 { // param_no_default* param_with_default+ '/' &')'
8814 if (p->error_indicator) {
8815 D(p->level--);
8816 return NULL;
8817 }
8818 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8819 Token * _literal;
8820 asdl_seq * a;
8821 asdl_seq * b;
8822 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008823 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008824 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008825 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008826 &&
8827 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8828 &&
8829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8830 )
8831 {
8832 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008833 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008834 if (_res == NULL && PyErr_Occurred()) {
8835 p->error_indicator = 1;
8836 D(p->level--);
8837 return NULL;
8838 }
8839 goto done;
8840 }
8841 p->mark = _mark;
8842 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8844 }
8845 _res = NULL;
8846 done:
8847 D(p->level--);
8848 return _res;
8849}
8850
8851// star_etc:
8852// | '*' param_no_default param_maybe_default* kwds?
8853// | '*' ',' param_maybe_default+ kwds?
8854// | kwds
8855// | invalid_star_etc
8856static StarEtc*
8857star_etc_rule(Parser *p)
8858{
8859 D(p->level++);
8860 if (p->error_indicator) {
8861 D(p->level--);
8862 return NULL;
8863 }
8864 StarEtc* _res = NULL;
8865 int _mark = p->mark;
8866 { // '*' param_no_default param_maybe_default* kwds?
8867 if (p->error_indicator) {
8868 D(p->level--);
8869 return NULL;
8870 }
8871 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8872 Token * _literal;
8873 arg_ty a;
8874 asdl_seq * b;
8875 void *c;
8876 if (
8877 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8878 &&
8879 (a = param_no_default_rule(p)) // param_no_default
8880 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008881 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008882 &&
8883 (c = kwds_rule(p), 1) // kwds?
8884 )
8885 {
8886 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8887 _res = _PyPegen_star_etc ( p , a , b , c );
8888 if (_res == NULL && PyErr_Occurred()) {
8889 p->error_indicator = 1;
8890 D(p->level--);
8891 return NULL;
8892 }
8893 goto done;
8894 }
8895 p->mark = _mark;
8896 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8898 }
8899 { // '*' ',' param_maybe_default+ kwds?
8900 if (p->error_indicator) {
8901 D(p->level--);
8902 return NULL;
8903 }
8904 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8905 Token * _literal;
8906 Token * _literal_1;
8907 asdl_seq * b;
8908 void *c;
8909 if (
8910 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8911 &&
8912 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8913 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008914 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008915 &&
8916 (c = kwds_rule(p), 1) // kwds?
8917 )
8918 {
8919 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8920 _res = _PyPegen_star_etc ( p , NULL , b , c );
8921 if (_res == NULL && PyErr_Occurred()) {
8922 p->error_indicator = 1;
8923 D(p->level--);
8924 return NULL;
8925 }
8926 goto done;
8927 }
8928 p->mark = _mark;
8929 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8931 }
8932 { // kwds
8933 if (p->error_indicator) {
8934 D(p->level--);
8935 return NULL;
8936 }
8937 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8938 arg_ty a;
8939 if (
8940 (a = kwds_rule(p)) // kwds
8941 )
8942 {
8943 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8944 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8945 if (_res == NULL && PyErr_Occurred()) {
8946 p->error_indicator = 1;
8947 D(p->level--);
8948 return NULL;
8949 }
8950 goto done;
8951 }
8952 p->mark = _mark;
8953 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8955 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008956 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008957 if (p->error_indicator) {
8958 D(p->level--);
8959 return NULL;
8960 }
8961 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8962 void *invalid_star_etc_var;
8963 if (
8964 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8965 )
8966 {
8967 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8968 _res = invalid_star_etc_var;
8969 goto done;
8970 }
8971 p->mark = _mark;
8972 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8974 }
8975 _res = NULL;
8976 done:
8977 D(p->level--);
8978 return _res;
8979}
8980
8981// kwds: '**' param_no_default
8982static arg_ty
8983kwds_rule(Parser *p)
8984{
8985 D(p->level++);
8986 if (p->error_indicator) {
8987 D(p->level--);
8988 return NULL;
8989 }
8990 arg_ty _res = NULL;
8991 int _mark = p->mark;
8992 { // '**' param_no_default
8993 if (p->error_indicator) {
8994 D(p->level--);
8995 return NULL;
8996 }
8997 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8998 Token * _literal;
8999 arg_ty a;
9000 if (
9001 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9002 &&
9003 (a = param_no_default_rule(p)) // param_no_default
9004 )
9005 {
9006 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9007 _res = a;
9008 if (_res == NULL && PyErr_Occurred()) {
9009 p->error_indicator = 1;
9010 D(p->level--);
9011 return NULL;
9012 }
9013 goto done;
9014 }
9015 p->mark = _mark;
9016 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9018 }
9019 _res = NULL;
9020 done:
9021 D(p->level--);
9022 return _res;
9023}
9024
9025// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9026static arg_ty
9027param_no_default_rule(Parser *p)
9028{
9029 D(p->level++);
9030 if (p->error_indicator) {
9031 D(p->level--);
9032 return NULL;
9033 }
9034 arg_ty _res = NULL;
9035 int _mark = p->mark;
9036 { // param ',' TYPE_COMMENT?
9037 if (p->error_indicator) {
9038 D(p->level--);
9039 return NULL;
9040 }
9041 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9042 Token * _literal;
9043 arg_ty a;
9044 void *tc;
9045 if (
9046 (a = param_rule(p)) // param
9047 &&
9048 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9049 &&
9050 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9051 )
9052 {
9053 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9054 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9055 if (_res == NULL && PyErr_Occurred()) {
9056 p->error_indicator = 1;
9057 D(p->level--);
9058 return NULL;
9059 }
9060 goto done;
9061 }
9062 p->mark = _mark;
9063 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9065 }
9066 { // param TYPE_COMMENT? &')'
9067 if (p->error_indicator) {
9068 D(p->level--);
9069 return NULL;
9070 }
9071 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9072 arg_ty a;
9073 void *tc;
9074 if (
9075 (a = param_rule(p)) // param
9076 &&
9077 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9078 &&
9079 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9080 )
9081 {
9082 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9083 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9084 if (_res == NULL && PyErr_Occurred()) {
9085 p->error_indicator = 1;
9086 D(p->level--);
9087 return NULL;
9088 }
9089 goto done;
9090 }
9091 p->mark = _mark;
9092 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9094 }
9095 _res = NULL;
9096 done:
9097 D(p->level--);
9098 return _res;
9099}
9100
9101// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9102static NameDefaultPair*
9103param_with_default_rule(Parser *p)
9104{
9105 D(p->level++);
9106 if (p->error_indicator) {
9107 D(p->level--);
9108 return NULL;
9109 }
9110 NameDefaultPair* _res = NULL;
9111 int _mark = p->mark;
9112 { // param default ',' TYPE_COMMENT?
9113 if (p->error_indicator) {
9114 D(p->level--);
9115 return NULL;
9116 }
9117 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9118 Token * _literal;
9119 arg_ty a;
9120 expr_ty c;
9121 void *tc;
9122 if (
9123 (a = param_rule(p)) // param
9124 &&
9125 (c = default_rule(p)) // default
9126 &&
9127 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9128 &&
9129 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9130 )
9131 {
9132 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9133 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9134 if (_res == NULL && PyErr_Occurred()) {
9135 p->error_indicator = 1;
9136 D(p->level--);
9137 return NULL;
9138 }
9139 goto done;
9140 }
9141 p->mark = _mark;
9142 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9144 }
9145 { // param default TYPE_COMMENT? &')'
9146 if (p->error_indicator) {
9147 D(p->level--);
9148 return NULL;
9149 }
9150 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9151 arg_ty a;
9152 expr_ty c;
9153 void *tc;
9154 if (
9155 (a = param_rule(p)) // param
9156 &&
9157 (c = default_rule(p)) // default
9158 &&
9159 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9160 &&
9161 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9162 )
9163 {
9164 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9165 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9166 if (_res == NULL && PyErr_Occurred()) {
9167 p->error_indicator = 1;
9168 D(p->level--);
9169 return NULL;
9170 }
9171 goto done;
9172 }
9173 p->mark = _mark;
9174 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9176 }
9177 _res = NULL;
9178 done:
9179 D(p->level--);
9180 return _res;
9181}
9182
9183// param_maybe_default:
9184// | param default? ',' TYPE_COMMENT?
9185// | param default? TYPE_COMMENT? &')'
9186static NameDefaultPair*
9187param_maybe_default_rule(Parser *p)
9188{
9189 D(p->level++);
9190 if (p->error_indicator) {
9191 D(p->level--);
9192 return NULL;
9193 }
9194 NameDefaultPair* _res = NULL;
9195 int _mark = p->mark;
9196 { // param default? ',' TYPE_COMMENT?
9197 if (p->error_indicator) {
9198 D(p->level--);
9199 return NULL;
9200 }
9201 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9202 Token * _literal;
9203 arg_ty a;
9204 void *c;
9205 void *tc;
9206 if (
9207 (a = param_rule(p)) // param
9208 &&
9209 (c = default_rule(p), 1) // default?
9210 &&
9211 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9212 &&
9213 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9214 )
9215 {
9216 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9217 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9218 if (_res == NULL && PyErr_Occurred()) {
9219 p->error_indicator = 1;
9220 D(p->level--);
9221 return NULL;
9222 }
9223 goto done;
9224 }
9225 p->mark = _mark;
9226 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9228 }
9229 { // param default? TYPE_COMMENT? &')'
9230 if (p->error_indicator) {
9231 D(p->level--);
9232 return NULL;
9233 }
9234 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9235 arg_ty a;
9236 void *c;
9237 void *tc;
9238 if (
9239 (a = param_rule(p)) // param
9240 &&
9241 (c = default_rule(p), 1) // default?
9242 &&
9243 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9244 &&
9245 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9246 )
9247 {
9248 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9249 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9250 if (_res == NULL && PyErr_Occurred()) {
9251 p->error_indicator = 1;
9252 D(p->level--);
9253 return NULL;
9254 }
9255 goto done;
9256 }
9257 p->mark = _mark;
9258 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9260 }
9261 _res = NULL;
9262 done:
9263 D(p->level--);
9264 return _res;
9265}
9266
9267// param: NAME annotation?
9268static arg_ty
9269param_rule(Parser *p)
9270{
9271 D(p->level++);
9272 if (p->error_indicator) {
9273 D(p->level--);
9274 return NULL;
9275 }
9276 arg_ty _res = NULL;
9277 int _mark = p->mark;
9278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9279 p->error_indicator = 1;
9280 D(p->level--);
9281 return NULL;
9282 }
9283 int _start_lineno = p->tokens[_mark]->lineno;
9284 UNUSED(_start_lineno); // Only used by EXTRA macro
9285 int _start_col_offset = p->tokens[_mark]->col_offset;
9286 UNUSED(_start_col_offset); // Only used by EXTRA macro
9287 { // NAME annotation?
9288 if (p->error_indicator) {
9289 D(p->level--);
9290 return NULL;
9291 }
9292 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9293 expr_ty a;
9294 void *b;
9295 if (
9296 (a = _PyPegen_name_token(p)) // NAME
9297 &&
9298 (b = annotation_rule(p), 1) // annotation?
9299 )
9300 {
9301 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9302 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9303 if (_token == NULL) {
9304 D(p->level--);
9305 return NULL;
9306 }
9307 int _end_lineno = _token->end_lineno;
9308 UNUSED(_end_lineno); // Only used by EXTRA macro
9309 int _end_col_offset = _token->end_col_offset;
9310 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009311 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009312 if (_res == NULL && PyErr_Occurred()) {
9313 p->error_indicator = 1;
9314 D(p->level--);
9315 return NULL;
9316 }
9317 goto done;
9318 }
9319 p->mark = _mark;
9320 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9322 }
9323 _res = NULL;
9324 done:
9325 D(p->level--);
9326 return _res;
9327}
9328
9329// annotation: ':' expression
9330static expr_ty
9331annotation_rule(Parser *p)
9332{
9333 D(p->level++);
9334 if (p->error_indicator) {
9335 D(p->level--);
9336 return NULL;
9337 }
9338 expr_ty _res = NULL;
9339 int _mark = p->mark;
9340 { // ':' expression
9341 if (p->error_indicator) {
9342 D(p->level--);
9343 return NULL;
9344 }
9345 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9346 Token * _literal;
9347 expr_ty a;
9348 if (
9349 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9350 &&
9351 (a = expression_rule(p)) // expression
9352 )
9353 {
9354 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9355 _res = a;
9356 if (_res == NULL && PyErr_Occurred()) {
9357 p->error_indicator = 1;
9358 D(p->level--);
9359 return NULL;
9360 }
9361 goto done;
9362 }
9363 p->mark = _mark;
9364 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9366 }
9367 _res = NULL;
9368 done:
9369 D(p->level--);
9370 return _res;
9371}
9372
9373// default: '=' expression
9374static expr_ty
9375default_rule(Parser *p)
9376{
9377 D(p->level++);
9378 if (p->error_indicator) {
9379 D(p->level--);
9380 return NULL;
9381 }
9382 expr_ty _res = NULL;
9383 int _mark = p->mark;
9384 { // '=' expression
9385 if (p->error_indicator) {
9386 D(p->level--);
9387 return NULL;
9388 }
9389 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9390 Token * _literal;
9391 expr_ty a;
9392 if (
9393 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9394 &&
9395 (a = expression_rule(p)) // expression
9396 )
9397 {
9398 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9399 _res = a;
9400 if (_res == NULL && PyErr_Occurred()) {
9401 p->error_indicator = 1;
9402 D(p->level--);
9403 return NULL;
9404 }
9405 goto done;
9406 }
9407 p->mark = _mark;
9408 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9410 }
9411 _res = NULL;
9412 done:
9413 D(p->level--);
9414 return _res;
9415}
9416
9417// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009418static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009419decorators_rule(Parser *p)
9420{
9421 D(p->level++);
9422 if (p->error_indicator) {
9423 D(p->level--);
9424 return NULL;
9425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009426 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009427 int _mark = p->mark;
9428 { // (('@' named_expression NEWLINE))+
9429 if (p->error_indicator) {
9430 D(p->level--);
9431 return NULL;
9432 }
9433 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009434 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009435 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009436 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009437 )
9438 {
9439 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9440 _res = a;
9441 if (_res == NULL && PyErr_Occurred()) {
9442 p->error_indicator = 1;
9443 D(p->level--);
9444 return NULL;
9445 }
9446 goto done;
9447 }
9448 p->mark = _mark;
9449 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9451 }
9452 _res = NULL;
9453 done:
9454 D(p->level--);
9455 return _res;
9456}
9457
9458// class_def: decorators class_def_raw | class_def_raw
9459static stmt_ty
9460class_def_rule(Parser *p)
9461{
9462 D(p->level++);
9463 if (p->error_indicator) {
9464 D(p->level--);
9465 return NULL;
9466 }
9467 stmt_ty _res = NULL;
9468 int _mark = p->mark;
9469 { // decorators class_def_raw
9470 if (p->error_indicator) {
9471 D(p->level--);
9472 return NULL;
9473 }
9474 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009475 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009476 stmt_ty b;
9477 if (
9478 (a = decorators_rule(p)) // decorators
9479 &&
9480 (b = class_def_raw_rule(p)) // class_def_raw
9481 )
9482 {
9483 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9484 _res = _PyPegen_class_def_decorators ( p , a , b );
9485 if (_res == NULL && PyErr_Occurred()) {
9486 p->error_indicator = 1;
9487 D(p->level--);
9488 return NULL;
9489 }
9490 goto done;
9491 }
9492 p->mark = _mark;
9493 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9495 }
9496 { // class_def_raw
9497 if (p->error_indicator) {
9498 D(p->level--);
9499 return NULL;
9500 }
9501 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9502 stmt_ty class_def_raw_var;
9503 if (
9504 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9505 )
9506 {
9507 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9508 _res = class_def_raw_var;
9509 goto done;
9510 }
9511 p->mark = _mark;
9512 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9514 }
9515 _res = NULL;
9516 done:
9517 D(p->level--);
9518 return _res;
9519}
9520
Pablo Galindo56c95df2021-04-21 15:28:21 +01009521// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009522static stmt_ty
9523class_def_raw_rule(Parser *p)
9524{
9525 D(p->level++);
9526 if (p->error_indicator) {
9527 D(p->level--);
9528 return NULL;
9529 }
9530 stmt_ty _res = NULL;
9531 int _mark = p->mark;
9532 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9533 p->error_indicator = 1;
9534 D(p->level--);
9535 return NULL;
9536 }
9537 int _start_lineno = p->tokens[_mark]->lineno;
9538 UNUSED(_start_lineno); // Only used by EXTRA macro
9539 int _start_col_offset = p->tokens[_mark]->col_offset;
9540 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009541 if (p->call_invalid_rules) { // invalid_class_def_raw
9542 if (p->error_indicator) {
9543 D(p->level--);
9544 return NULL;
9545 }
9546 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9547 void *invalid_class_def_raw_var;
9548 if (
9549 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9550 )
9551 {
9552 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9553 _res = invalid_class_def_raw_var;
9554 goto done;
9555 }
9556 p->mark = _mark;
9557 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9559 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009560 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009561 if (p->error_indicator) {
9562 D(p->level--);
9563 return NULL;
9564 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009565 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009566 Token * _keyword;
9567 Token * _literal;
9568 expr_ty a;
9569 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009570 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009571 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009572 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009573 &&
9574 (a = _PyPegen_name_token(p)) // NAME
9575 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009576 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009577 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009578 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009579 &&
9580 (c = block_rule(p)) // block
9581 )
9582 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009583 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009584 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9585 if (_token == NULL) {
9586 D(p->level--);
9587 return NULL;
9588 }
9589 int _end_lineno = _token->end_lineno;
9590 UNUSED(_end_lineno); // Only used by EXTRA macro
9591 int _end_col_offset = _token->end_col_offset;
9592 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009593 _res = _PyAST_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009594 if (_res == NULL && PyErr_Occurred()) {
9595 p->error_indicator = 1;
9596 D(p->level--);
9597 return NULL;
9598 }
9599 goto done;
9600 }
9601 p->mark = _mark;
9602 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009604 }
9605 _res = NULL;
9606 done:
9607 D(p->level--);
9608 return _res;
9609}
9610
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009611// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009612static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009613block_rule(Parser *p)
9614{
9615 D(p->level++);
9616 if (p->error_indicator) {
9617 D(p->level--);
9618 return NULL;
9619 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009620 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009621 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9622 D(p->level--);
9623 return _res;
9624 }
9625 int _mark = p->mark;
9626 { // NEWLINE INDENT statements DEDENT
9627 if (p->error_indicator) {
9628 D(p->level--);
9629 return NULL;
9630 }
9631 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009632 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009633 Token * dedent_var;
9634 Token * indent_var;
9635 Token * newline_var;
9636 if (
9637 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9638 &&
9639 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9640 &&
9641 (a = statements_rule(p)) // statements
9642 &&
9643 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9644 )
9645 {
9646 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9647 _res = a;
9648 if (_res == NULL && PyErr_Occurred()) {
9649 p->error_indicator = 1;
9650 D(p->level--);
9651 return NULL;
9652 }
9653 goto done;
9654 }
9655 p->mark = _mark;
9656 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9658 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009659 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009660 if (p->error_indicator) {
9661 D(p->level--);
9662 return NULL;
9663 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009664 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9665 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009666 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009667 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009668 )
9669 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009670 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9671 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009672 goto done;
9673 }
9674 p->mark = _mark;
9675 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009677 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009678 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009679 if (p->error_indicator) {
9680 D(p->level--);
9681 return NULL;
9682 }
9683 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9684 void *invalid_block_var;
9685 if (
9686 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9687 )
9688 {
9689 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9690 _res = invalid_block_var;
9691 goto done;
9692 }
9693 p->mark = _mark;
9694 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9696 }
9697 _res = NULL;
9698 done:
9699 _PyPegen_insert_memo(p, _mark, block_type, _res);
9700 D(p->level--);
9701 return _res;
9702}
9703
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009704// star_expressions:
9705// | star_expression ((',' star_expression))+ ','?
9706// | star_expression ','
9707// | star_expression
9708static expr_ty
9709star_expressions_rule(Parser *p)
9710{
9711 D(p->level++);
9712 if (p->error_indicator) {
9713 D(p->level--);
9714 return NULL;
9715 }
9716 expr_ty _res = NULL;
9717 int _mark = p->mark;
9718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9719 p->error_indicator = 1;
9720 D(p->level--);
9721 return NULL;
9722 }
9723 int _start_lineno = p->tokens[_mark]->lineno;
9724 UNUSED(_start_lineno); // Only used by EXTRA macro
9725 int _start_col_offset = p->tokens[_mark]->col_offset;
9726 UNUSED(_start_col_offset); // Only used by EXTRA macro
9727 { // star_expression ((',' star_expression))+ ','?
9728 if (p->error_indicator) {
9729 D(p->level--);
9730 return NULL;
9731 }
9732 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9733 void *_opt_var;
9734 UNUSED(_opt_var); // Silence compiler warnings
9735 expr_ty a;
9736 asdl_seq * b;
9737 if (
9738 (a = star_expression_rule(p)) // star_expression
9739 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009740 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009741 &&
9742 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9743 )
9744 {
9745 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9747 if (_token == NULL) {
9748 D(p->level--);
9749 return NULL;
9750 }
9751 int _end_lineno = _token->end_lineno;
9752 UNUSED(_end_lineno); // Only used by EXTRA macro
9753 int _end_col_offset = _token->end_col_offset;
9754 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009755 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009756 if (_res == NULL && PyErr_Occurred()) {
9757 p->error_indicator = 1;
9758 D(p->level--);
9759 return NULL;
9760 }
9761 goto done;
9762 }
9763 p->mark = _mark;
9764 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9766 }
9767 { // star_expression ','
9768 if (p->error_indicator) {
9769 D(p->level--);
9770 return NULL;
9771 }
9772 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9773 Token * _literal;
9774 expr_ty a;
9775 if (
9776 (a = star_expression_rule(p)) // star_expression
9777 &&
9778 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9779 )
9780 {
9781 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9782 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9783 if (_token == NULL) {
9784 D(p->level--);
9785 return NULL;
9786 }
9787 int _end_lineno = _token->end_lineno;
9788 UNUSED(_end_lineno); // Only used by EXTRA macro
9789 int _end_col_offset = _token->end_col_offset;
9790 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009791 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009792 if (_res == NULL && PyErr_Occurred()) {
9793 p->error_indicator = 1;
9794 D(p->level--);
9795 return NULL;
9796 }
9797 goto done;
9798 }
9799 p->mark = _mark;
9800 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9802 }
9803 { // star_expression
9804 if (p->error_indicator) {
9805 D(p->level--);
9806 return NULL;
9807 }
9808 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9809 expr_ty star_expression_var;
9810 if (
9811 (star_expression_var = star_expression_rule(p)) // star_expression
9812 )
9813 {
9814 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9815 _res = star_expression_var;
9816 goto done;
9817 }
9818 p->mark = _mark;
9819 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9821 }
9822 _res = NULL;
9823 done:
9824 D(p->level--);
9825 return _res;
9826}
9827
9828// star_expression: '*' bitwise_or | expression
9829static expr_ty
9830star_expression_rule(Parser *p)
9831{
9832 D(p->level++);
9833 if (p->error_indicator) {
9834 D(p->level--);
9835 return NULL;
9836 }
9837 expr_ty _res = NULL;
9838 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9839 D(p->level--);
9840 return _res;
9841 }
9842 int _mark = p->mark;
9843 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9844 p->error_indicator = 1;
9845 D(p->level--);
9846 return NULL;
9847 }
9848 int _start_lineno = p->tokens[_mark]->lineno;
9849 UNUSED(_start_lineno); // Only used by EXTRA macro
9850 int _start_col_offset = p->tokens[_mark]->col_offset;
9851 UNUSED(_start_col_offset); // Only used by EXTRA macro
9852 { // '*' bitwise_or
9853 if (p->error_indicator) {
9854 D(p->level--);
9855 return NULL;
9856 }
9857 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9858 Token * _literal;
9859 expr_ty a;
9860 if (
9861 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9862 &&
9863 (a = bitwise_or_rule(p)) // bitwise_or
9864 )
9865 {
9866 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9868 if (_token == NULL) {
9869 D(p->level--);
9870 return NULL;
9871 }
9872 int _end_lineno = _token->end_lineno;
9873 UNUSED(_end_lineno); // Only used by EXTRA macro
9874 int _end_col_offset = _token->end_col_offset;
9875 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009876 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009877 if (_res == NULL && PyErr_Occurred()) {
9878 p->error_indicator = 1;
9879 D(p->level--);
9880 return NULL;
9881 }
9882 goto done;
9883 }
9884 p->mark = _mark;
9885 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9887 }
9888 { // expression
9889 if (p->error_indicator) {
9890 D(p->level--);
9891 return NULL;
9892 }
9893 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9894 expr_ty expression_var;
9895 if (
9896 (expression_var = expression_rule(p)) // expression
9897 )
9898 {
9899 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9900 _res = expression_var;
9901 goto done;
9902 }
9903 p->mark = _mark;
9904 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9906 }
9907 _res = NULL;
9908 done:
9909 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9910 D(p->level--);
9911 return _res;
9912}
9913
9914// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009915static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009916star_named_expressions_rule(Parser *p)
9917{
9918 D(p->level++);
9919 if (p->error_indicator) {
9920 D(p->level--);
9921 return NULL;
9922 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009923 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009924 int _mark = p->mark;
9925 { // ','.star_named_expression+ ','?
9926 if (p->error_indicator) {
9927 D(p->level--);
9928 return NULL;
9929 }
9930 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9931 void *_opt_var;
9932 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009933 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009934 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009935 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009936 &&
9937 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9938 )
9939 {
9940 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9941 _res = a;
9942 if (_res == NULL && PyErr_Occurred()) {
9943 p->error_indicator = 1;
9944 D(p->level--);
9945 return NULL;
9946 }
9947 goto done;
9948 }
9949 p->mark = _mark;
9950 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9952 }
9953 _res = NULL;
9954 done:
9955 D(p->level--);
9956 return _res;
9957}
9958
9959// star_named_expression: '*' bitwise_or | named_expression
9960static expr_ty
9961star_named_expression_rule(Parser *p)
9962{
9963 D(p->level++);
9964 if (p->error_indicator) {
9965 D(p->level--);
9966 return NULL;
9967 }
9968 expr_ty _res = NULL;
9969 int _mark = p->mark;
9970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9971 p->error_indicator = 1;
9972 D(p->level--);
9973 return NULL;
9974 }
9975 int _start_lineno = p->tokens[_mark]->lineno;
9976 UNUSED(_start_lineno); // Only used by EXTRA macro
9977 int _start_col_offset = p->tokens[_mark]->col_offset;
9978 UNUSED(_start_col_offset); // Only used by EXTRA macro
9979 { // '*' bitwise_or
9980 if (p->error_indicator) {
9981 D(p->level--);
9982 return NULL;
9983 }
9984 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9985 Token * _literal;
9986 expr_ty a;
9987 if (
9988 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9989 &&
9990 (a = bitwise_or_rule(p)) // bitwise_or
9991 )
9992 {
9993 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9995 if (_token == NULL) {
9996 D(p->level--);
9997 return NULL;
9998 }
9999 int _end_lineno = _token->end_lineno;
10000 UNUSED(_end_lineno); // Only used by EXTRA macro
10001 int _end_col_offset = _token->end_col_offset;
10002 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010003 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010004 if (_res == NULL && PyErr_Occurred()) {
10005 p->error_indicator = 1;
10006 D(p->level--);
10007 return NULL;
10008 }
10009 goto done;
10010 }
10011 p->mark = _mark;
10012 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10014 }
10015 { // named_expression
10016 if (p->error_indicator) {
10017 D(p->level--);
10018 return NULL;
10019 }
10020 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10021 expr_ty named_expression_var;
10022 if (
10023 (named_expression_var = named_expression_rule(p)) // named_expression
10024 )
10025 {
10026 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10027 _res = named_expression_var;
10028 goto done;
10029 }
10030 p->mark = _mark;
10031 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10033 }
10034 _res = NULL;
10035 done:
10036 D(p->level--);
10037 return _res;
10038}
10039
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010040// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010041static expr_ty
10042named_expression_rule(Parser *p)
10043{
10044 D(p->level++);
10045 if (p->error_indicator) {
10046 D(p->level--);
10047 return NULL;
10048 }
10049 expr_ty _res = NULL;
10050 int _mark = p->mark;
10051 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10052 p->error_indicator = 1;
10053 D(p->level--);
10054 return NULL;
10055 }
10056 int _start_lineno = p->tokens[_mark]->lineno;
10057 UNUSED(_start_lineno); // Only used by EXTRA macro
10058 int _start_col_offset = p->tokens[_mark]->col_offset;
10059 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010060 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010061 if (p->error_indicator) {
10062 D(p->level--);
10063 return NULL;
10064 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010065 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10066 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010067 Token * _literal;
10068 expr_ty a;
10069 expr_ty b;
10070 if (
10071 (a = _PyPegen_name_token(p)) // NAME
10072 &&
10073 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10074 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010075 (_cut_var = 1)
10076 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010077 (b = expression_rule(p)) // expression
10078 )
10079 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010080 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10082 if (_token == NULL) {
10083 D(p->level--);
10084 return NULL;
10085 }
10086 int _end_lineno = _token->end_lineno;
10087 UNUSED(_end_lineno); // Only used by EXTRA macro
10088 int _end_col_offset = _token->end_col_offset;
10089 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010090 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010091 if (_res == NULL && PyErr_Occurred()) {
10092 p->error_indicator = 1;
10093 D(p->level--);
10094 return NULL;
10095 }
10096 goto done;
10097 }
10098 p->mark = _mark;
10099 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10101 if (_cut_var) {
10102 D(p->level--);
10103 return NULL;
10104 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010105 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010106 if (p->call_invalid_rules) { // invalid_named_expression
10107 if (p->error_indicator) {
10108 D(p->level--);
10109 return NULL;
10110 }
10111 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10112 void *invalid_named_expression_var;
10113 if (
10114 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10115 )
10116 {
10117 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10118 _res = invalid_named_expression_var;
10119 goto done;
10120 }
10121 p->mark = _mark;
10122 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10124 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010125 { // expression !':='
10126 if (p->error_indicator) {
10127 D(p->level--);
10128 return NULL;
10129 }
10130 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10131 expr_ty expression_var;
10132 if (
10133 (expression_var = expression_rule(p)) // expression
10134 &&
10135 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10136 )
10137 {
10138 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10139 _res = expression_var;
10140 goto done;
10141 }
10142 p->mark = _mark;
10143 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10145 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010146 _res = NULL;
10147 done:
10148 D(p->level--);
10149 return _res;
10150}
10151
Pablo Galindod9151cb2021-04-13 02:32:33 +010010152// direct_named_expression: NAME ':=' ~ expression | expression !':='
10153static expr_ty
10154direct_named_expression_rule(Parser *p)
10155{
10156 D(p->level++);
10157 if (p->error_indicator) {
10158 D(p->level--);
10159 return NULL;
10160 }
10161 expr_ty _res = NULL;
10162 int _mark = p->mark;
10163 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10164 p->error_indicator = 1;
10165 D(p->level--);
10166 return NULL;
10167 }
10168 int _start_lineno = p->tokens[_mark]->lineno;
10169 UNUSED(_start_lineno); // Only used by EXTRA macro
10170 int _start_col_offset = p->tokens[_mark]->col_offset;
10171 UNUSED(_start_col_offset); // Only used by EXTRA macro
10172 { // NAME ':=' ~ expression
10173 if (p->error_indicator) {
10174 D(p->level--);
10175 return NULL;
10176 }
10177 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10178 int _cut_var = 0;
10179 Token * _literal;
10180 expr_ty a;
10181 expr_ty b;
10182 if (
10183 (a = _PyPegen_name_token(p)) // NAME
10184 &&
10185 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10186 &&
10187 (_cut_var = 1)
10188 &&
10189 (b = expression_rule(p)) // expression
10190 )
10191 {
10192 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10194 if (_token == NULL) {
10195 D(p->level--);
10196 return NULL;
10197 }
10198 int _end_lineno = _token->end_lineno;
10199 UNUSED(_end_lineno); // Only used by EXTRA macro
10200 int _end_col_offset = _token->end_col_offset;
10201 UNUSED(_end_col_offset); // Only used by EXTRA macro
10202 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
10203 if (_res == NULL && PyErr_Occurred()) {
10204 p->error_indicator = 1;
10205 D(p->level--);
10206 return NULL;
10207 }
10208 goto done;
10209 }
10210 p->mark = _mark;
10211 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10213 if (_cut_var) {
10214 D(p->level--);
10215 return NULL;
10216 }
10217 }
10218 { // expression !':='
10219 if (p->error_indicator) {
10220 D(p->level--);
10221 return NULL;
10222 }
10223 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10224 expr_ty expression_var;
10225 if (
10226 (expression_var = expression_rule(p)) // expression
10227 &&
10228 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10229 )
10230 {
10231 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10232 _res = expression_var;
10233 goto done;
10234 }
10235 p->mark = _mark;
10236 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10238 }
10239 _res = NULL;
10240 done:
10241 D(p->level--);
10242 return _res;
10243}
10244
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010245// annotated_rhs: yield_expr | star_expressions
10246static expr_ty
10247annotated_rhs_rule(Parser *p)
10248{
10249 D(p->level++);
10250 if (p->error_indicator) {
10251 D(p->level--);
10252 return NULL;
10253 }
10254 expr_ty _res = NULL;
10255 int _mark = p->mark;
10256 { // yield_expr
10257 if (p->error_indicator) {
10258 D(p->level--);
10259 return NULL;
10260 }
10261 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10262 expr_ty yield_expr_var;
10263 if (
10264 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10265 )
10266 {
10267 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10268 _res = yield_expr_var;
10269 goto done;
10270 }
10271 p->mark = _mark;
10272 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10274 }
10275 { // star_expressions
10276 if (p->error_indicator) {
10277 D(p->level--);
10278 return NULL;
10279 }
10280 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10281 expr_ty star_expressions_var;
10282 if (
10283 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10284 )
10285 {
10286 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10287 _res = star_expressions_var;
10288 goto done;
10289 }
10290 p->mark = _mark;
10291 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10293 }
10294 _res = NULL;
10295 done:
10296 D(p->level--);
10297 return _res;
10298}
10299
10300// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10301static expr_ty
10302expressions_rule(Parser *p)
10303{
10304 D(p->level++);
10305 if (p->error_indicator) {
10306 D(p->level--);
10307 return NULL;
10308 }
10309 expr_ty _res = NULL;
10310 int _mark = p->mark;
10311 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10312 p->error_indicator = 1;
10313 D(p->level--);
10314 return NULL;
10315 }
10316 int _start_lineno = p->tokens[_mark]->lineno;
10317 UNUSED(_start_lineno); // Only used by EXTRA macro
10318 int _start_col_offset = p->tokens[_mark]->col_offset;
10319 UNUSED(_start_col_offset); // Only used by EXTRA macro
10320 { // expression ((',' expression))+ ','?
10321 if (p->error_indicator) {
10322 D(p->level--);
10323 return NULL;
10324 }
10325 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10326 void *_opt_var;
10327 UNUSED(_opt_var); // Silence compiler warnings
10328 expr_ty a;
10329 asdl_seq * b;
10330 if (
10331 (a = expression_rule(p)) // expression
10332 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010333 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010334 &&
10335 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10336 )
10337 {
10338 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10340 if (_token == NULL) {
10341 D(p->level--);
10342 return NULL;
10343 }
10344 int _end_lineno = _token->end_lineno;
10345 UNUSED(_end_lineno); // Only used by EXTRA macro
10346 int _end_col_offset = _token->end_col_offset;
10347 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010348 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010349 if (_res == NULL && PyErr_Occurred()) {
10350 p->error_indicator = 1;
10351 D(p->level--);
10352 return NULL;
10353 }
10354 goto done;
10355 }
10356 p->mark = _mark;
10357 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10359 }
10360 { // expression ','
10361 if (p->error_indicator) {
10362 D(p->level--);
10363 return NULL;
10364 }
10365 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10366 Token * _literal;
10367 expr_ty a;
10368 if (
10369 (a = expression_rule(p)) // expression
10370 &&
10371 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10372 )
10373 {
10374 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10376 if (_token == NULL) {
10377 D(p->level--);
10378 return NULL;
10379 }
10380 int _end_lineno = _token->end_lineno;
10381 UNUSED(_end_lineno); // Only used by EXTRA macro
10382 int _end_col_offset = _token->end_col_offset;
10383 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010384 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010385 if (_res == NULL && PyErr_Occurred()) {
10386 p->error_indicator = 1;
10387 D(p->level--);
10388 return NULL;
10389 }
10390 goto done;
10391 }
10392 p->mark = _mark;
10393 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10395 }
10396 { // expression
10397 if (p->error_indicator) {
10398 D(p->level--);
10399 return NULL;
10400 }
10401 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10402 expr_ty expression_var;
10403 if (
10404 (expression_var = expression_rule(p)) // expression
10405 )
10406 {
10407 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10408 _res = expression_var;
10409 goto done;
10410 }
10411 p->mark = _mark;
10412 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10414 }
10415 _res = NULL;
10416 done:
10417 D(p->level--);
10418 return _res;
10419}
10420
Pablo Galindob2802482021-04-15 21:38:45 +010010421// expression:
10422// | invalid_expression
10423// | disjunction 'if' disjunction 'else' expression
10424// | disjunction
10425// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010426static expr_ty
10427expression_rule(Parser *p)
10428{
10429 D(p->level++);
10430 if (p->error_indicator) {
10431 D(p->level--);
10432 return NULL;
10433 }
10434 expr_ty _res = NULL;
10435 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10436 D(p->level--);
10437 return _res;
10438 }
10439 int _mark = p->mark;
10440 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10441 p->error_indicator = 1;
10442 D(p->level--);
10443 return NULL;
10444 }
10445 int _start_lineno = p->tokens[_mark]->lineno;
10446 UNUSED(_start_lineno); // Only used by EXTRA macro
10447 int _start_col_offset = p->tokens[_mark]->col_offset;
10448 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010449 if (p->call_invalid_rules) { // invalid_expression
10450 if (p->error_indicator) {
10451 D(p->level--);
10452 return NULL;
10453 }
10454 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10455 void *invalid_expression_var;
10456 if (
10457 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10458 )
10459 {
10460 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10461 _res = invalid_expression_var;
10462 goto done;
10463 }
10464 p->mark = _mark;
10465 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10467 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010468 { // disjunction 'if' disjunction 'else' expression
10469 if (p->error_indicator) {
10470 D(p->level--);
10471 return NULL;
10472 }
10473 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10474 Token * _keyword;
10475 Token * _keyword_1;
10476 expr_ty a;
10477 expr_ty b;
10478 expr_ty c;
10479 if (
10480 (a = disjunction_rule(p)) // disjunction
10481 &&
10482 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10483 &&
10484 (b = disjunction_rule(p)) // disjunction
10485 &&
10486 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10487 &&
10488 (c = expression_rule(p)) // expression
10489 )
10490 {
10491 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10492 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10493 if (_token == NULL) {
10494 D(p->level--);
10495 return NULL;
10496 }
10497 int _end_lineno = _token->end_lineno;
10498 UNUSED(_end_lineno); // Only used by EXTRA macro
10499 int _end_col_offset = _token->end_col_offset;
10500 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010501 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010502 if (_res == NULL && PyErr_Occurred()) {
10503 p->error_indicator = 1;
10504 D(p->level--);
10505 return NULL;
10506 }
10507 goto done;
10508 }
10509 p->mark = _mark;
10510 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10512 }
10513 { // disjunction
10514 if (p->error_indicator) {
10515 D(p->level--);
10516 return NULL;
10517 }
10518 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10519 expr_ty disjunction_var;
10520 if (
10521 (disjunction_var = disjunction_rule(p)) // disjunction
10522 )
10523 {
10524 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10525 _res = disjunction_var;
10526 goto done;
10527 }
10528 p->mark = _mark;
10529 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10531 }
10532 { // lambdef
10533 if (p->error_indicator) {
10534 D(p->level--);
10535 return NULL;
10536 }
10537 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10538 expr_ty lambdef_var;
10539 if (
10540 (lambdef_var = lambdef_rule(p)) // lambdef
10541 )
10542 {
10543 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10544 _res = lambdef_var;
10545 goto done;
10546 }
10547 p->mark = _mark;
10548 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10550 }
10551 _res = NULL;
10552 done:
10553 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10554 D(p->level--);
10555 return _res;
10556}
10557
10558// lambdef: 'lambda' lambda_params? ':' expression
10559static expr_ty
10560lambdef_rule(Parser *p)
10561{
10562 D(p->level++);
10563 if (p->error_indicator) {
10564 D(p->level--);
10565 return NULL;
10566 }
10567 expr_ty _res = NULL;
10568 int _mark = p->mark;
10569 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10570 p->error_indicator = 1;
10571 D(p->level--);
10572 return NULL;
10573 }
10574 int _start_lineno = p->tokens[_mark]->lineno;
10575 UNUSED(_start_lineno); // Only used by EXTRA macro
10576 int _start_col_offset = p->tokens[_mark]->col_offset;
10577 UNUSED(_start_col_offset); // Only used by EXTRA macro
10578 { // 'lambda' lambda_params? ':' expression
10579 if (p->error_indicator) {
10580 D(p->level--);
10581 return NULL;
10582 }
10583 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10584 Token * _keyword;
10585 Token * _literal;
10586 void *a;
10587 expr_ty b;
10588 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010589 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010590 &&
10591 (a = lambda_params_rule(p), 1) // lambda_params?
10592 &&
10593 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10594 &&
10595 (b = expression_rule(p)) // expression
10596 )
10597 {
10598 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10600 if (_token == NULL) {
10601 D(p->level--);
10602 return NULL;
10603 }
10604 int _end_lineno = _token->end_lineno;
10605 UNUSED(_end_lineno); // Only used by EXTRA macro
10606 int _end_col_offset = _token->end_col_offset;
10607 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010608 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010609 if (_res == NULL && PyErr_Occurred()) {
10610 p->error_indicator = 1;
10611 D(p->level--);
10612 return NULL;
10613 }
10614 goto done;
10615 }
10616 p->mark = _mark;
10617 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10619 }
10620 _res = NULL;
10621 done:
10622 D(p->level--);
10623 return _res;
10624}
10625
10626// lambda_params: invalid_lambda_parameters | lambda_parameters
10627static arguments_ty
10628lambda_params_rule(Parser *p)
10629{
10630 D(p->level++);
10631 if (p->error_indicator) {
10632 D(p->level--);
10633 return NULL;
10634 }
10635 arguments_ty _res = NULL;
10636 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010637 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010638 if (p->error_indicator) {
10639 D(p->level--);
10640 return NULL;
10641 }
10642 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10643 void *invalid_lambda_parameters_var;
10644 if (
10645 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10646 )
10647 {
10648 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10649 _res = invalid_lambda_parameters_var;
10650 goto done;
10651 }
10652 p->mark = _mark;
10653 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10655 }
10656 { // lambda_parameters
10657 if (p->error_indicator) {
10658 D(p->level--);
10659 return NULL;
10660 }
10661 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10662 arguments_ty lambda_parameters_var;
10663 if (
10664 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10665 )
10666 {
10667 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10668 _res = lambda_parameters_var;
10669 goto done;
10670 }
10671 p->mark = _mark;
10672 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10674 }
10675 _res = NULL;
10676 done:
10677 D(p->level--);
10678 return _res;
10679}
10680
10681// lambda_parameters:
10682// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10683// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10684// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10685// | lambda_param_with_default+ lambda_star_etc?
10686// | lambda_star_etc
10687static arguments_ty
10688lambda_parameters_rule(Parser *p)
10689{
10690 D(p->level++);
10691 if (p->error_indicator) {
10692 D(p->level--);
10693 return NULL;
10694 }
10695 arguments_ty _res = NULL;
10696 int _mark = p->mark;
10697 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10698 if (p->error_indicator) {
10699 D(p->level--);
10700 return NULL;
10701 }
10702 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010703 asdl_arg_seq* a;
10704 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010705 asdl_seq * c;
10706 void *d;
10707 if (
10708 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10709 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010710 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010711 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010712 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010713 &&
10714 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10715 )
10716 {
10717 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10718 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10719 if (_res == NULL && PyErr_Occurred()) {
10720 p->error_indicator = 1;
10721 D(p->level--);
10722 return NULL;
10723 }
10724 goto done;
10725 }
10726 p->mark = _mark;
10727 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10729 }
10730 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10731 if (p->error_indicator) {
10732 D(p->level--);
10733 return NULL;
10734 }
10735 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10736 SlashWithDefault* a;
10737 asdl_seq * b;
10738 void *c;
10739 if (
10740 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10741 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010742 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010743 &&
10744 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10745 )
10746 {
10747 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10748 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10749 if (_res == NULL && PyErr_Occurred()) {
10750 p->error_indicator = 1;
10751 D(p->level--);
10752 return NULL;
10753 }
10754 goto done;
10755 }
10756 p->mark = _mark;
10757 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10759 }
10760 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10761 if (p->error_indicator) {
10762 D(p->level--);
10763 return NULL;
10764 }
10765 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010766 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010767 asdl_seq * b;
10768 void *c;
10769 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010770 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010771 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010772 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010773 &&
10774 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10775 )
10776 {
10777 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10778 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10779 if (_res == NULL && PyErr_Occurred()) {
10780 p->error_indicator = 1;
10781 D(p->level--);
10782 return NULL;
10783 }
10784 goto done;
10785 }
10786 p->mark = _mark;
10787 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10789 }
10790 { // lambda_param_with_default+ lambda_star_etc?
10791 if (p->error_indicator) {
10792 D(p->level--);
10793 return NULL;
10794 }
10795 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10796 asdl_seq * a;
10797 void *b;
10798 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010799 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010800 &&
10801 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10802 )
10803 {
10804 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10805 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10806 if (_res == NULL && PyErr_Occurred()) {
10807 p->error_indicator = 1;
10808 D(p->level--);
10809 return NULL;
10810 }
10811 goto done;
10812 }
10813 p->mark = _mark;
10814 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10816 }
10817 { // lambda_star_etc
10818 if (p->error_indicator) {
10819 D(p->level--);
10820 return NULL;
10821 }
10822 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10823 StarEtc* a;
10824 if (
10825 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10826 )
10827 {
10828 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10829 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10830 if (_res == NULL && PyErr_Occurred()) {
10831 p->error_indicator = 1;
10832 D(p->level--);
10833 return NULL;
10834 }
10835 goto done;
10836 }
10837 p->mark = _mark;
10838 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10840 }
10841 _res = NULL;
10842 done:
10843 D(p->level--);
10844 return _res;
10845}
10846
10847// lambda_slash_no_default:
10848// | lambda_param_no_default+ '/' ','
10849// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010850static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010851lambda_slash_no_default_rule(Parser *p)
10852{
10853 D(p->level++);
10854 if (p->error_indicator) {
10855 D(p->level--);
10856 return NULL;
10857 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010858 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010859 int _mark = p->mark;
10860 { // lambda_param_no_default+ '/' ','
10861 if (p->error_indicator) {
10862 D(p->level--);
10863 return NULL;
10864 }
10865 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10866 Token * _literal;
10867 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010868 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010869 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010870 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010871 &&
10872 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10873 &&
10874 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10875 )
10876 {
10877 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10878 _res = a;
10879 if (_res == NULL && PyErr_Occurred()) {
10880 p->error_indicator = 1;
10881 D(p->level--);
10882 return NULL;
10883 }
10884 goto done;
10885 }
10886 p->mark = _mark;
10887 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10889 }
10890 { // lambda_param_no_default+ '/' &':'
10891 if (p->error_indicator) {
10892 D(p->level--);
10893 return NULL;
10894 }
10895 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10896 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010897 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010898 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010899 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010900 &&
10901 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10902 &&
10903 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10904 )
10905 {
10906 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10907 _res = a;
10908 if (_res == NULL && PyErr_Occurred()) {
10909 p->error_indicator = 1;
10910 D(p->level--);
10911 return NULL;
10912 }
10913 goto done;
10914 }
10915 p->mark = _mark;
10916 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10918 }
10919 _res = NULL;
10920 done:
10921 D(p->level--);
10922 return _res;
10923}
10924
10925// lambda_slash_with_default:
10926// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10927// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10928static SlashWithDefault*
10929lambda_slash_with_default_rule(Parser *p)
10930{
10931 D(p->level++);
10932 if (p->error_indicator) {
10933 D(p->level--);
10934 return NULL;
10935 }
10936 SlashWithDefault* _res = NULL;
10937 int _mark = p->mark;
10938 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10939 if (p->error_indicator) {
10940 D(p->level--);
10941 return NULL;
10942 }
10943 D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10944 Token * _literal;
10945 Token * _literal_1;
10946 asdl_seq * a;
10947 asdl_seq * b;
10948 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010949 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010950 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010951 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010952 &&
10953 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10954 &&
10955 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10956 )
10957 {
10958 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010959 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010960 if (_res == NULL && PyErr_Occurred()) {
10961 p->error_indicator = 1;
10962 D(p->level--);
10963 return NULL;
10964 }
10965 goto done;
10966 }
10967 p->mark = _mark;
10968 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10970 }
10971 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10972 if (p->error_indicator) {
10973 D(p->level--);
10974 return NULL;
10975 }
10976 D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10977 Token * _literal;
10978 asdl_seq * a;
10979 asdl_seq * b;
10980 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010981 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010982 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010983 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010984 &&
10985 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10986 &&
10987 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10988 )
10989 {
10990 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010991 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010992 if (_res == NULL && PyErr_Occurred()) {
10993 p->error_indicator = 1;
10994 D(p->level--);
10995 return NULL;
10996 }
10997 goto done;
10998 }
10999 p->mark = _mark;
11000 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11002 }
11003 _res = NULL;
11004 done:
11005 D(p->level--);
11006 return _res;
11007}
11008
11009// lambda_star_etc:
11010// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11011// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11012// | lambda_kwds
11013// | invalid_lambda_star_etc
11014static StarEtc*
11015lambda_star_etc_rule(Parser *p)
11016{
11017 D(p->level++);
11018 if (p->error_indicator) {
11019 D(p->level--);
11020 return NULL;
11021 }
11022 StarEtc* _res = NULL;
11023 int _mark = p->mark;
11024 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11025 if (p->error_indicator) {
11026 D(p->level--);
11027 return NULL;
11028 }
11029 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11030 Token * _literal;
11031 arg_ty a;
11032 asdl_seq * b;
11033 void *c;
11034 if (
11035 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11036 &&
11037 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11038 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011039 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011040 &&
11041 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11042 )
11043 {
11044 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11045 _res = _PyPegen_star_etc ( p , a , b , c );
11046 if (_res == NULL && PyErr_Occurred()) {
11047 p->error_indicator = 1;
11048 D(p->level--);
11049 return NULL;
11050 }
11051 goto done;
11052 }
11053 p->mark = _mark;
11054 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11056 }
11057 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11058 if (p->error_indicator) {
11059 D(p->level--);
11060 return NULL;
11061 }
11062 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11063 Token * _literal;
11064 Token * _literal_1;
11065 asdl_seq * b;
11066 void *c;
11067 if (
11068 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11069 &&
11070 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11071 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011072 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011073 &&
11074 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11075 )
11076 {
11077 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11078 _res = _PyPegen_star_etc ( p , NULL , b , c );
11079 if (_res == NULL && PyErr_Occurred()) {
11080 p->error_indicator = 1;
11081 D(p->level--);
11082 return NULL;
11083 }
11084 goto done;
11085 }
11086 p->mark = _mark;
11087 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11089 }
11090 { // lambda_kwds
11091 if (p->error_indicator) {
11092 D(p->level--);
11093 return NULL;
11094 }
11095 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11096 arg_ty a;
11097 if (
11098 (a = lambda_kwds_rule(p)) // lambda_kwds
11099 )
11100 {
11101 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11102 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11103 if (_res == NULL && PyErr_Occurred()) {
11104 p->error_indicator = 1;
11105 D(p->level--);
11106 return NULL;
11107 }
11108 goto done;
11109 }
11110 p->mark = _mark;
11111 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11113 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011114 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011115 if (p->error_indicator) {
11116 D(p->level--);
11117 return NULL;
11118 }
11119 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11120 void *invalid_lambda_star_etc_var;
11121 if (
11122 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11123 )
11124 {
11125 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11126 _res = invalid_lambda_star_etc_var;
11127 goto done;
11128 }
11129 p->mark = _mark;
11130 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11132 }
11133 _res = NULL;
11134 done:
11135 D(p->level--);
11136 return _res;
11137}
11138
11139// lambda_kwds: '**' lambda_param_no_default
11140static arg_ty
11141lambda_kwds_rule(Parser *p)
11142{
11143 D(p->level++);
11144 if (p->error_indicator) {
11145 D(p->level--);
11146 return NULL;
11147 }
11148 arg_ty _res = NULL;
11149 int _mark = p->mark;
11150 { // '**' lambda_param_no_default
11151 if (p->error_indicator) {
11152 D(p->level--);
11153 return NULL;
11154 }
11155 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11156 Token * _literal;
11157 arg_ty a;
11158 if (
11159 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11160 &&
11161 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11162 )
11163 {
11164 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11165 _res = a;
11166 if (_res == NULL && PyErr_Occurred()) {
11167 p->error_indicator = 1;
11168 D(p->level--);
11169 return NULL;
11170 }
11171 goto done;
11172 }
11173 p->mark = _mark;
11174 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11176 }
11177 _res = NULL;
11178 done:
11179 D(p->level--);
11180 return _res;
11181}
11182
11183// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11184static arg_ty
11185lambda_param_no_default_rule(Parser *p)
11186{
11187 D(p->level++);
11188 if (p->error_indicator) {
11189 D(p->level--);
11190 return NULL;
11191 }
11192 arg_ty _res = NULL;
11193 int _mark = p->mark;
11194 { // lambda_param ','
11195 if (p->error_indicator) {
11196 D(p->level--);
11197 return NULL;
11198 }
11199 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11200 Token * _literal;
11201 arg_ty a;
11202 if (
11203 (a = lambda_param_rule(p)) // lambda_param
11204 &&
11205 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11206 )
11207 {
11208 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11209 _res = a;
11210 if (_res == NULL && PyErr_Occurred()) {
11211 p->error_indicator = 1;
11212 D(p->level--);
11213 return NULL;
11214 }
11215 goto done;
11216 }
11217 p->mark = _mark;
11218 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11220 }
11221 { // lambda_param &':'
11222 if (p->error_indicator) {
11223 D(p->level--);
11224 return NULL;
11225 }
11226 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11227 arg_ty a;
11228 if (
11229 (a = lambda_param_rule(p)) // lambda_param
11230 &&
11231 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11232 )
11233 {
11234 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11235 _res = a;
11236 if (_res == NULL && PyErr_Occurred()) {
11237 p->error_indicator = 1;
11238 D(p->level--);
11239 return NULL;
11240 }
11241 goto done;
11242 }
11243 p->mark = _mark;
11244 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11246 }
11247 _res = NULL;
11248 done:
11249 D(p->level--);
11250 return _res;
11251}
11252
11253// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11254static NameDefaultPair*
11255lambda_param_with_default_rule(Parser *p)
11256{
11257 D(p->level++);
11258 if (p->error_indicator) {
11259 D(p->level--);
11260 return NULL;
11261 }
11262 NameDefaultPair* _res = NULL;
11263 int _mark = p->mark;
11264 { // lambda_param default ','
11265 if (p->error_indicator) {
11266 D(p->level--);
11267 return NULL;
11268 }
11269 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11270 Token * _literal;
11271 arg_ty a;
11272 expr_ty c;
11273 if (
11274 (a = lambda_param_rule(p)) // lambda_param
11275 &&
11276 (c = default_rule(p)) // default
11277 &&
11278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11279 )
11280 {
11281 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11282 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11283 if (_res == NULL && PyErr_Occurred()) {
11284 p->error_indicator = 1;
11285 D(p->level--);
11286 return NULL;
11287 }
11288 goto done;
11289 }
11290 p->mark = _mark;
11291 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11293 }
11294 { // lambda_param default &':'
11295 if (p->error_indicator) {
11296 D(p->level--);
11297 return NULL;
11298 }
11299 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11300 arg_ty a;
11301 expr_ty c;
11302 if (
11303 (a = lambda_param_rule(p)) // lambda_param
11304 &&
11305 (c = default_rule(p)) // default
11306 &&
11307 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11308 )
11309 {
11310 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11311 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11312 if (_res == NULL && PyErr_Occurred()) {
11313 p->error_indicator = 1;
11314 D(p->level--);
11315 return NULL;
11316 }
11317 goto done;
11318 }
11319 p->mark = _mark;
11320 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11322 }
11323 _res = NULL;
11324 done:
11325 D(p->level--);
11326 return _res;
11327}
11328
11329// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11330static NameDefaultPair*
11331lambda_param_maybe_default_rule(Parser *p)
11332{
11333 D(p->level++);
11334 if (p->error_indicator) {
11335 D(p->level--);
11336 return NULL;
11337 }
11338 NameDefaultPair* _res = NULL;
11339 int _mark = p->mark;
11340 { // lambda_param default? ','
11341 if (p->error_indicator) {
11342 D(p->level--);
11343 return NULL;
11344 }
11345 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11346 Token * _literal;
11347 arg_ty a;
11348 void *c;
11349 if (
11350 (a = lambda_param_rule(p)) // lambda_param
11351 &&
11352 (c = default_rule(p), 1) // default?
11353 &&
11354 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11355 )
11356 {
11357 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11358 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11359 if (_res == NULL && PyErr_Occurred()) {
11360 p->error_indicator = 1;
11361 D(p->level--);
11362 return NULL;
11363 }
11364 goto done;
11365 }
11366 p->mark = _mark;
11367 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11369 }
11370 { // lambda_param default? &':'
11371 if (p->error_indicator) {
11372 D(p->level--);
11373 return NULL;
11374 }
11375 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11376 arg_ty a;
11377 void *c;
11378 if (
11379 (a = lambda_param_rule(p)) // lambda_param
11380 &&
11381 (c = default_rule(p), 1) // default?
11382 &&
11383 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11384 )
11385 {
11386 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11387 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11388 if (_res == NULL && PyErr_Occurred()) {
11389 p->error_indicator = 1;
11390 D(p->level--);
11391 return NULL;
11392 }
11393 goto done;
11394 }
11395 p->mark = _mark;
11396 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11398 }
11399 _res = NULL;
11400 done:
11401 D(p->level--);
11402 return _res;
11403}
11404
11405// lambda_param: NAME
11406static arg_ty
11407lambda_param_rule(Parser *p)
11408{
11409 D(p->level++);
11410 if (p->error_indicator) {
11411 D(p->level--);
11412 return NULL;
11413 }
11414 arg_ty _res = NULL;
11415 int _mark = p->mark;
11416 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11417 p->error_indicator = 1;
11418 D(p->level--);
11419 return NULL;
11420 }
11421 int _start_lineno = p->tokens[_mark]->lineno;
11422 UNUSED(_start_lineno); // Only used by EXTRA macro
11423 int _start_col_offset = p->tokens[_mark]->col_offset;
11424 UNUSED(_start_col_offset); // Only used by EXTRA macro
11425 { // NAME
11426 if (p->error_indicator) {
11427 D(p->level--);
11428 return NULL;
11429 }
11430 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11431 expr_ty a;
11432 if (
11433 (a = _PyPegen_name_token(p)) // NAME
11434 )
11435 {
11436 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11438 if (_token == NULL) {
11439 D(p->level--);
11440 return NULL;
11441 }
11442 int _end_lineno = _token->end_lineno;
11443 UNUSED(_end_lineno); // Only used by EXTRA macro
11444 int _end_col_offset = _token->end_col_offset;
11445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011446 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011447 if (_res == NULL && PyErr_Occurred()) {
11448 p->error_indicator = 1;
11449 D(p->level--);
11450 return NULL;
11451 }
11452 goto done;
11453 }
11454 p->mark = _mark;
11455 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11457 }
11458 _res = NULL;
11459 done:
11460 D(p->level--);
11461 return _res;
11462}
11463
11464// disjunction: conjunction (('or' conjunction))+ | conjunction
11465static expr_ty
11466disjunction_rule(Parser *p)
11467{
11468 D(p->level++);
11469 if (p->error_indicator) {
11470 D(p->level--);
11471 return NULL;
11472 }
11473 expr_ty _res = NULL;
11474 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11475 D(p->level--);
11476 return _res;
11477 }
11478 int _mark = p->mark;
11479 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11480 p->error_indicator = 1;
11481 D(p->level--);
11482 return NULL;
11483 }
11484 int _start_lineno = p->tokens[_mark]->lineno;
11485 UNUSED(_start_lineno); // Only used by EXTRA macro
11486 int _start_col_offset = p->tokens[_mark]->col_offset;
11487 UNUSED(_start_col_offset); // Only used by EXTRA macro
11488 { // conjunction (('or' conjunction))+
11489 if (p->error_indicator) {
11490 D(p->level--);
11491 return NULL;
11492 }
11493 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11494 expr_ty a;
11495 asdl_seq * b;
11496 if (
11497 (a = conjunction_rule(p)) // conjunction
11498 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011499 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011500 )
11501 {
11502 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11504 if (_token == NULL) {
11505 D(p->level--);
11506 return NULL;
11507 }
11508 int _end_lineno = _token->end_lineno;
11509 UNUSED(_end_lineno); // Only used by EXTRA macro
11510 int _end_col_offset = _token->end_col_offset;
11511 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011512 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011513 if (_res == NULL && PyErr_Occurred()) {
11514 p->error_indicator = 1;
11515 D(p->level--);
11516 return NULL;
11517 }
11518 goto done;
11519 }
11520 p->mark = _mark;
11521 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11523 }
11524 { // conjunction
11525 if (p->error_indicator) {
11526 D(p->level--);
11527 return NULL;
11528 }
11529 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11530 expr_ty conjunction_var;
11531 if (
11532 (conjunction_var = conjunction_rule(p)) // conjunction
11533 )
11534 {
11535 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11536 _res = conjunction_var;
11537 goto done;
11538 }
11539 p->mark = _mark;
11540 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11542 }
11543 _res = NULL;
11544 done:
11545 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11546 D(p->level--);
11547 return _res;
11548}
11549
11550// conjunction: inversion (('and' inversion))+ | inversion
11551static expr_ty
11552conjunction_rule(Parser *p)
11553{
11554 D(p->level++);
11555 if (p->error_indicator) {
11556 D(p->level--);
11557 return NULL;
11558 }
11559 expr_ty _res = NULL;
11560 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11561 D(p->level--);
11562 return _res;
11563 }
11564 int _mark = p->mark;
11565 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11566 p->error_indicator = 1;
11567 D(p->level--);
11568 return NULL;
11569 }
11570 int _start_lineno = p->tokens[_mark]->lineno;
11571 UNUSED(_start_lineno); // Only used by EXTRA macro
11572 int _start_col_offset = p->tokens[_mark]->col_offset;
11573 UNUSED(_start_col_offset); // Only used by EXTRA macro
11574 { // inversion (('and' inversion))+
11575 if (p->error_indicator) {
11576 D(p->level--);
11577 return NULL;
11578 }
11579 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11580 expr_ty a;
11581 asdl_seq * b;
11582 if (
11583 (a = inversion_rule(p)) // inversion
11584 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011585 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011586 )
11587 {
11588 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11590 if (_token == NULL) {
11591 D(p->level--);
11592 return NULL;
11593 }
11594 int _end_lineno = _token->end_lineno;
11595 UNUSED(_end_lineno); // Only used by EXTRA macro
11596 int _end_col_offset = _token->end_col_offset;
11597 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011598 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011599 if (_res == NULL && PyErr_Occurred()) {
11600 p->error_indicator = 1;
11601 D(p->level--);
11602 return NULL;
11603 }
11604 goto done;
11605 }
11606 p->mark = _mark;
11607 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11609 }
11610 { // inversion
11611 if (p->error_indicator) {
11612 D(p->level--);
11613 return NULL;
11614 }
11615 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11616 expr_ty inversion_var;
11617 if (
11618 (inversion_var = inversion_rule(p)) // inversion
11619 )
11620 {
11621 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11622 _res = inversion_var;
11623 goto done;
11624 }
11625 p->mark = _mark;
11626 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11628 }
11629 _res = NULL;
11630 done:
11631 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11632 D(p->level--);
11633 return _res;
11634}
11635
11636// inversion: 'not' inversion | comparison
11637static expr_ty
11638inversion_rule(Parser *p)
11639{
11640 D(p->level++);
11641 if (p->error_indicator) {
11642 D(p->level--);
11643 return NULL;
11644 }
11645 expr_ty _res = NULL;
11646 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11647 D(p->level--);
11648 return _res;
11649 }
11650 int _mark = p->mark;
11651 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11652 p->error_indicator = 1;
11653 D(p->level--);
11654 return NULL;
11655 }
11656 int _start_lineno = p->tokens[_mark]->lineno;
11657 UNUSED(_start_lineno); // Only used by EXTRA macro
11658 int _start_col_offset = p->tokens[_mark]->col_offset;
11659 UNUSED(_start_col_offset); // Only used by EXTRA macro
11660 { // 'not' inversion
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11666 Token * _keyword;
11667 expr_ty a;
11668 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011669 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011670 &&
11671 (a = inversion_rule(p)) // inversion
11672 )
11673 {
11674 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11675 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11676 if (_token == NULL) {
11677 D(p->level--);
11678 return NULL;
11679 }
11680 int _end_lineno = _token->end_lineno;
11681 UNUSED(_end_lineno); // Only used by EXTRA macro
11682 int _end_col_offset = _token->end_col_offset;
11683 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011684 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011685 if (_res == NULL && PyErr_Occurred()) {
11686 p->error_indicator = 1;
11687 D(p->level--);
11688 return NULL;
11689 }
11690 goto done;
11691 }
11692 p->mark = _mark;
11693 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11695 }
11696 { // comparison
11697 if (p->error_indicator) {
11698 D(p->level--);
11699 return NULL;
11700 }
11701 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11702 expr_ty comparison_var;
11703 if (
11704 (comparison_var = comparison_rule(p)) // comparison
11705 )
11706 {
11707 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11708 _res = comparison_var;
11709 goto done;
11710 }
11711 p->mark = _mark;
11712 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11714 }
11715 _res = NULL;
11716 done:
11717 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11718 D(p->level--);
11719 return _res;
11720}
11721
11722// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11723static expr_ty
11724comparison_rule(Parser *p)
11725{
11726 D(p->level++);
11727 if (p->error_indicator) {
11728 D(p->level--);
11729 return NULL;
11730 }
11731 expr_ty _res = NULL;
11732 int _mark = p->mark;
11733 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11734 p->error_indicator = 1;
11735 D(p->level--);
11736 return NULL;
11737 }
11738 int _start_lineno = p->tokens[_mark]->lineno;
11739 UNUSED(_start_lineno); // Only used by EXTRA macro
11740 int _start_col_offset = p->tokens[_mark]->col_offset;
11741 UNUSED(_start_col_offset); // Only used by EXTRA macro
11742 { // bitwise_or compare_op_bitwise_or_pair+
11743 if (p->error_indicator) {
11744 D(p->level--);
11745 return NULL;
11746 }
11747 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11748 expr_ty a;
11749 asdl_seq * b;
11750 if (
11751 (a = bitwise_or_rule(p)) // bitwise_or
11752 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011753 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011754 )
11755 {
11756 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11757 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11758 if (_token == NULL) {
11759 D(p->level--);
11760 return NULL;
11761 }
11762 int _end_lineno = _token->end_lineno;
11763 UNUSED(_end_lineno); // Only used by EXTRA macro
11764 int _end_col_offset = _token->end_col_offset;
11765 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011766 _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq * , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011767 if (_res == NULL && PyErr_Occurred()) {
11768 p->error_indicator = 1;
11769 D(p->level--);
11770 return NULL;
11771 }
11772 goto done;
11773 }
11774 p->mark = _mark;
11775 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11777 }
11778 { // bitwise_or
11779 if (p->error_indicator) {
11780 D(p->level--);
11781 return NULL;
11782 }
11783 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11784 expr_ty bitwise_or_var;
11785 if (
11786 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11787 )
11788 {
11789 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11790 _res = bitwise_or_var;
11791 goto done;
11792 }
11793 p->mark = _mark;
11794 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11796 }
11797 _res = NULL;
11798 done:
11799 D(p->level--);
11800 return _res;
11801}
11802
11803// compare_op_bitwise_or_pair:
11804// | eq_bitwise_or
11805// | noteq_bitwise_or
11806// | lte_bitwise_or
11807// | lt_bitwise_or
11808// | gte_bitwise_or
11809// | gt_bitwise_or
11810// | notin_bitwise_or
11811// | in_bitwise_or
11812// | isnot_bitwise_or
11813// | is_bitwise_or
11814static CmpopExprPair*
11815compare_op_bitwise_or_pair_rule(Parser *p)
11816{
11817 D(p->level++);
11818 if (p->error_indicator) {
11819 D(p->level--);
11820 return NULL;
11821 }
11822 CmpopExprPair* _res = NULL;
11823 int _mark = p->mark;
11824 { // eq_bitwise_or
11825 if (p->error_indicator) {
11826 D(p->level--);
11827 return NULL;
11828 }
11829 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11830 CmpopExprPair* eq_bitwise_or_var;
11831 if (
11832 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11833 )
11834 {
11835 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11836 _res = eq_bitwise_or_var;
11837 goto done;
11838 }
11839 p->mark = _mark;
11840 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11842 }
11843 { // noteq_bitwise_or
11844 if (p->error_indicator) {
11845 D(p->level--);
11846 return NULL;
11847 }
11848 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11849 CmpopExprPair* noteq_bitwise_or_var;
11850 if (
11851 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11852 )
11853 {
11854 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11855 _res = noteq_bitwise_or_var;
11856 goto done;
11857 }
11858 p->mark = _mark;
11859 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11861 }
11862 { // lte_bitwise_or
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
11867 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11868 CmpopExprPair* lte_bitwise_or_var;
11869 if (
11870 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11871 )
11872 {
11873 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11874 _res = lte_bitwise_or_var;
11875 goto done;
11876 }
11877 p->mark = _mark;
11878 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11880 }
11881 { // lt_bitwise_or
11882 if (p->error_indicator) {
11883 D(p->level--);
11884 return NULL;
11885 }
11886 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11887 CmpopExprPair* lt_bitwise_or_var;
11888 if (
11889 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11890 )
11891 {
11892 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11893 _res = lt_bitwise_or_var;
11894 goto done;
11895 }
11896 p->mark = _mark;
11897 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11899 }
11900 { // gte_bitwise_or
11901 if (p->error_indicator) {
11902 D(p->level--);
11903 return NULL;
11904 }
11905 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11906 CmpopExprPair* gte_bitwise_or_var;
11907 if (
11908 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11909 )
11910 {
11911 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11912 _res = gte_bitwise_or_var;
11913 goto done;
11914 }
11915 p->mark = _mark;
11916 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11918 }
11919 { // gt_bitwise_or
11920 if (p->error_indicator) {
11921 D(p->level--);
11922 return NULL;
11923 }
11924 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11925 CmpopExprPair* gt_bitwise_or_var;
11926 if (
11927 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11928 )
11929 {
11930 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11931 _res = gt_bitwise_or_var;
11932 goto done;
11933 }
11934 p->mark = _mark;
11935 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11937 }
11938 { // notin_bitwise_or
11939 if (p->error_indicator) {
11940 D(p->level--);
11941 return NULL;
11942 }
11943 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11944 CmpopExprPair* notin_bitwise_or_var;
11945 if (
11946 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11947 )
11948 {
11949 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11950 _res = notin_bitwise_or_var;
11951 goto done;
11952 }
11953 p->mark = _mark;
11954 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11956 }
11957 { // in_bitwise_or
11958 if (p->error_indicator) {
11959 D(p->level--);
11960 return NULL;
11961 }
11962 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11963 CmpopExprPair* in_bitwise_or_var;
11964 if (
11965 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11966 )
11967 {
11968 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11969 _res = in_bitwise_or_var;
11970 goto done;
11971 }
11972 p->mark = _mark;
11973 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11975 }
11976 { // isnot_bitwise_or
11977 if (p->error_indicator) {
11978 D(p->level--);
11979 return NULL;
11980 }
11981 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11982 CmpopExprPair* isnot_bitwise_or_var;
11983 if (
11984 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11985 )
11986 {
11987 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11988 _res = isnot_bitwise_or_var;
11989 goto done;
11990 }
11991 p->mark = _mark;
11992 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11994 }
11995 { // is_bitwise_or
11996 if (p->error_indicator) {
11997 D(p->level--);
11998 return NULL;
11999 }
12000 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12001 CmpopExprPair* is_bitwise_or_var;
12002 if (
12003 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12004 )
12005 {
12006 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12007 _res = is_bitwise_or_var;
12008 goto done;
12009 }
12010 p->mark = _mark;
12011 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12013 }
12014 _res = NULL;
12015 done:
12016 D(p->level--);
12017 return _res;
12018}
12019
12020// eq_bitwise_or: '==' bitwise_or
12021static CmpopExprPair*
12022eq_bitwise_or_rule(Parser *p)
12023{
12024 D(p->level++);
12025 if (p->error_indicator) {
12026 D(p->level--);
12027 return NULL;
12028 }
12029 CmpopExprPair* _res = NULL;
12030 int _mark = p->mark;
12031 { // '==' bitwise_or
12032 if (p->error_indicator) {
12033 D(p->level--);
12034 return NULL;
12035 }
12036 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12037 Token * _literal;
12038 expr_ty a;
12039 if (
12040 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12041 &&
12042 (a = bitwise_or_rule(p)) // bitwise_or
12043 )
12044 {
12045 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12046 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12047 if (_res == NULL && PyErr_Occurred()) {
12048 p->error_indicator = 1;
12049 D(p->level--);
12050 return NULL;
12051 }
12052 goto done;
12053 }
12054 p->mark = _mark;
12055 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12057 }
12058 _res = NULL;
12059 done:
12060 D(p->level--);
12061 return _res;
12062}
12063
12064// noteq_bitwise_or: ('!=') bitwise_or
12065static CmpopExprPair*
12066noteq_bitwise_or_rule(Parser *p)
12067{
12068 D(p->level++);
12069 if (p->error_indicator) {
12070 D(p->level--);
12071 return NULL;
12072 }
12073 CmpopExprPair* _res = NULL;
12074 int _mark = p->mark;
12075 { // ('!=') bitwise_or
12076 if (p->error_indicator) {
12077 D(p->level--);
12078 return NULL;
12079 }
12080 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Brandt Bucher145bf262021-02-26 14:51:55 -080012081 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012082 expr_ty a;
12083 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012084 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012085 &&
12086 (a = bitwise_or_rule(p)) // bitwise_or
12087 )
12088 {
12089 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12090 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12091 if (_res == NULL && PyErr_Occurred()) {
12092 p->error_indicator = 1;
12093 D(p->level--);
12094 return NULL;
12095 }
12096 goto done;
12097 }
12098 p->mark = _mark;
12099 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12101 }
12102 _res = NULL;
12103 done:
12104 D(p->level--);
12105 return _res;
12106}
12107
12108// lte_bitwise_or: '<=' bitwise_or
12109static CmpopExprPair*
12110lte_bitwise_or_rule(Parser *p)
12111{
12112 D(p->level++);
12113 if (p->error_indicator) {
12114 D(p->level--);
12115 return NULL;
12116 }
12117 CmpopExprPair* _res = NULL;
12118 int _mark = p->mark;
12119 { // '<=' bitwise_or
12120 if (p->error_indicator) {
12121 D(p->level--);
12122 return NULL;
12123 }
12124 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12125 Token * _literal;
12126 expr_ty a;
12127 if (
12128 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12129 &&
12130 (a = bitwise_or_rule(p)) // bitwise_or
12131 )
12132 {
12133 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12134 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12135 if (_res == NULL && PyErr_Occurred()) {
12136 p->error_indicator = 1;
12137 D(p->level--);
12138 return NULL;
12139 }
12140 goto done;
12141 }
12142 p->mark = _mark;
12143 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12145 }
12146 _res = NULL;
12147 done:
12148 D(p->level--);
12149 return _res;
12150}
12151
12152// lt_bitwise_or: '<' bitwise_or
12153static CmpopExprPair*
12154lt_bitwise_or_rule(Parser *p)
12155{
12156 D(p->level++);
12157 if (p->error_indicator) {
12158 D(p->level--);
12159 return NULL;
12160 }
12161 CmpopExprPair* _res = NULL;
12162 int _mark = p->mark;
12163 { // '<' bitwise_or
12164 if (p->error_indicator) {
12165 D(p->level--);
12166 return NULL;
12167 }
12168 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12169 Token * _literal;
12170 expr_ty a;
12171 if (
12172 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12173 &&
12174 (a = bitwise_or_rule(p)) // bitwise_or
12175 )
12176 {
12177 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12178 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12179 if (_res == NULL && PyErr_Occurred()) {
12180 p->error_indicator = 1;
12181 D(p->level--);
12182 return NULL;
12183 }
12184 goto done;
12185 }
12186 p->mark = _mark;
12187 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12189 }
12190 _res = NULL;
12191 done:
12192 D(p->level--);
12193 return _res;
12194}
12195
12196// gte_bitwise_or: '>=' bitwise_or
12197static CmpopExprPair*
12198gte_bitwise_or_rule(Parser *p)
12199{
12200 D(p->level++);
12201 if (p->error_indicator) {
12202 D(p->level--);
12203 return NULL;
12204 }
12205 CmpopExprPair* _res = NULL;
12206 int _mark = p->mark;
12207 { // '>=' bitwise_or
12208 if (p->error_indicator) {
12209 D(p->level--);
12210 return NULL;
12211 }
12212 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12213 Token * _literal;
12214 expr_ty a;
12215 if (
12216 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12217 &&
12218 (a = bitwise_or_rule(p)) // bitwise_or
12219 )
12220 {
12221 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12222 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12223 if (_res == NULL && PyErr_Occurred()) {
12224 p->error_indicator = 1;
12225 D(p->level--);
12226 return NULL;
12227 }
12228 goto done;
12229 }
12230 p->mark = _mark;
12231 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12233 }
12234 _res = NULL;
12235 done:
12236 D(p->level--);
12237 return _res;
12238}
12239
12240// gt_bitwise_or: '>' bitwise_or
12241static CmpopExprPair*
12242gt_bitwise_or_rule(Parser *p)
12243{
12244 D(p->level++);
12245 if (p->error_indicator) {
12246 D(p->level--);
12247 return NULL;
12248 }
12249 CmpopExprPair* _res = NULL;
12250 int _mark = p->mark;
12251 { // '>' bitwise_or
12252 if (p->error_indicator) {
12253 D(p->level--);
12254 return NULL;
12255 }
12256 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12257 Token * _literal;
12258 expr_ty a;
12259 if (
12260 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12261 &&
12262 (a = bitwise_or_rule(p)) // bitwise_or
12263 )
12264 {
12265 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12266 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12267 if (_res == NULL && PyErr_Occurred()) {
12268 p->error_indicator = 1;
12269 D(p->level--);
12270 return NULL;
12271 }
12272 goto done;
12273 }
12274 p->mark = _mark;
12275 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12277 }
12278 _res = NULL;
12279 done:
12280 D(p->level--);
12281 return _res;
12282}
12283
12284// notin_bitwise_or: 'not' 'in' bitwise_or
12285static CmpopExprPair*
12286notin_bitwise_or_rule(Parser *p)
12287{
12288 D(p->level++);
12289 if (p->error_indicator) {
12290 D(p->level--);
12291 return NULL;
12292 }
12293 CmpopExprPair* _res = NULL;
12294 int _mark = p->mark;
12295 { // 'not' 'in' bitwise_or
12296 if (p->error_indicator) {
12297 D(p->level--);
12298 return NULL;
12299 }
12300 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12301 Token * _keyword;
12302 Token * _keyword_1;
12303 expr_ty a;
12304 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012305 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012306 &&
12307 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12308 &&
12309 (a = bitwise_or_rule(p)) // bitwise_or
12310 )
12311 {
12312 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12313 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12314 if (_res == NULL && PyErr_Occurred()) {
12315 p->error_indicator = 1;
12316 D(p->level--);
12317 return NULL;
12318 }
12319 goto done;
12320 }
12321 p->mark = _mark;
12322 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12324 }
12325 _res = NULL;
12326 done:
12327 D(p->level--);
12328 return _res;
12329}
12330
12331// in_bitwise_or: 'in' bitwise_or
12332static CmpopExprPair*
12333in_bitwise_or_rule(Parser *p)
12334{
12335 D(p->level++);
12336 if (p->error_indicator) {
12337 D(p->level--);
12338 return NULL;
12339 }
12340 CmpopExprPair* _res = NULL;
12341 int _mark = p->mark;
12342 { // 'in' bitwise_or
12343 if (p->error_indicator) {
12344 D(p->level--);
12345 return NULL;
12346 }
12347 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12348 Token * _keyword;
12349 expr_ty a;
12350 if (
12351 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12352 &&
12353 (a = bitwise_or_rule(p)) // bitwise_or
12354 )
12355 {
12356 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12357 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12358 if (_res == NULL && PyErr_Occurred()) {
12359 p->error_indicator = 1;
12360 D(p->level--);
12361 return NULL;
12362 }
12363 goto done;
12364 }
12365 p->mark = _mark;
12366 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12368 }
12369 _res = NULL;
12370 done:
12371 D(p->level--);
12372 return _res;
12373}
12374
12375// isnot_bitwise_or: 'is' 'not' bitwise_or
12376static CmpopExprPair*
12377isnot_bitwise_or_rule(Parser *p)
12378{
12379 D(p->level++);
12380 if (p->error_indicator) {
12381 D(p->level--);
12382 return NULL;
12383 }
12384 CmpopExprPair* _res = NULL;
12385 int _mark = p->mark;
12386 { // 'is' 'not' bitwise_or
12387 if (p->error_indicator) {
12388 D(p->level--);
12389 return NULL;
12390 }
12391 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12392 Token * _keyword;
12393 Token * _keyword_1;
12394 expr_ty a;
12395 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012396 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012397 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012398 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012399 &&
12400 (a = bitwise_or_rule(p)) // bitwise_or
12401 )
12402 {
12403 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12404 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12405 if (_res == NULL && PyErr_Occurred()) {
12406 p->error_indicator = 1;
12407 D(p->level--);
12408 return NULL;
12409 }
12410 goto done;
12411 }
12412 p->mark = _mark;
12413 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12415 }
12416 _res = NULL;
12417 done:
12418 D(p->level--);
12419 return _res;
12420}
12421
12422// is_bitwise_or: 'is' bitwise_or
12423static CmpopExprPair*
12424is_bitwise_or_rule(Parser *p)
12425{
12426 D(p->level++);
12427 if (p->error_indicator) {
12428 D(p->level--);
12429 return NULL;
12430 }
12431 CmpopExprPair* _res = NULL;
12432 int _mark = p->mark;
12433 { // 'is' bitwise_or
12434 if (p->error_indicator) {
12435 D(p->level--);
12436 return NULL;
12437 }
12438 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12439 Token * _keyword;
12440 expr_ty a;
12441 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012442 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012443 &&
12444 (a = bitwise_or_rule(p)) // bitwise_or
12445 )
12446 {
12447 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12448 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12449 if (_res == NULL && PyErr_Occurred()) {
12450 p->error_indicator = 1;
12451 D(p->level--);
12452 return NULL;
12453 }
12454 goto done;
12455 }
12456 p->mark = _mark;
12457 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12459 }
12460 _res = NULL;
12461 done:
12462 D(p->level--);
12463 return _res;
12464}
12465
12466// Left-recursive
12467// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12468static expr_ty bitwise_or_raw(Parser *);
12469static expr_ty
12470bitwise_or_rule(Parser *p)
12471{
12472 D(p->level++);
12473 expr_ty _res = NULL;
12474 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12475 D(p->level--);
12476 return _res;
12477 }
12478 int _mark = p->mark;
12479 int _resmark = p->mark;
12480 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012481 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12482 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012483 D(p->level--);
12484 return _res;
12485 }
12486 p->mark = _mark;
12487 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012488 if (p->error_indicator)
12489 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012490 if (_raw == NULL || p->mark <= _resmark)
12491 break;
12492 _resmark = p->mark;
12493 _res = _raw;
12494 }
12495 p->mark = _resmark;
12496 D(p->level--);
12497 return _res;
12498}
12499static expr_ty
12500bitwise_or_raw(Parser *p)
12501{
12502 D(p->level++);
12503 if (p->error_indicator) {
12504 D(p->level--);
12505 return NULL;
12506 }
12507 expr_ty _res = NULL;
12508 int _mark = p->mark;
12509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12510 p->error_indicator = 1;
12511 D(p->level--);
12512 return NULL;
12513 }
12514 int _start_lineno = p->tokens[_mark]->lineno;
12515 UNUSED(_start_lineno); // Only used by EXTRA macro
12516 int _start_col_offset = p->tokens[_mark]->col_offset;
12517 UNUSED(_start_col_offset); // Only used by EXTRA macro
12518 { // bitwise_or '|' bitwise_xor
12519 if (p->error_indicator) {
12520 D(p->level--);
12521 return NULL;
12522 }
12523 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12524 Token * _literal;
12525 expr_ty a;
12526 expr_ty b;
12527 if (
12528 (a = bitwise_or_rule(p)) // bitwise_or
12529 &&
12530 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12531 &&
12532 (b = bitwise_xor_rule(p)) // bitwise_xor
12533 )
12534 {
12535 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12537 if (_token == NULL) {
12538 D(p->level--);
12539 return NULL;
12540 }
12541 int _end_lineno = _token->end_lineno;
12542 UNUSED(_end_lineno); // Only used by EXTRA macro
12543 int _end_col_offset = _token->end_col_offset;
12544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012545 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012546 if (_res == NULL && PyErr_Occurred()) {
12547 p->error_indicator = 1;
12548 D(p->level--);
12549 return NULL;
12550 }
12551 goto done;
12552 }
12553 p->mark = _mark;
12554 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12556 }
12557 { // bitwise_xor
12558 if (p->error_indicator) {
12559 D(p->level--);
12560 return NULL;
12561 }
12562 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12563 expr_ty bitwise_xor_var;
12564 if (
12565 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12566 )
12567 {
12568 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12569 _res = bitwise_xor_var;
12570 goto done;
12571 }
12572 p->mark = _mark;
12573 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12575 }
12576 _res = NULL;
12577 done:
12578 D(p->level--);
12579 return _res;
12580}
12581
12582// Left-recursive
12583// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12584static expr_ty bitwise_xor_raw(Parser *);
12585static expr_ty
12586bitwise_xor_rule(Parser *p)
12587{
12588 D(p->level++);
12589 expr_ty _res = NULL;
12590 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12591 D(p->level--);
12592 return _res;
12593 }
12594 int _mark = p->mark;
12595 int _resmark = p->mark;
12596 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012597 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12598 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012599 D(p->level--);
12600 return _res;
12601 }
12602 p->mark = _mark;
12603 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012604 if (p->error_indicator)
12605 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012606 if (_raw == NULL || p->mark <= _resmark)
12607 break;
12608 _resmark = p->mark;
12609 _res = _raw;
12610 }
12611 p->mark = _resmark;
12612 D(p->level--);
12613 return _res;
12614}
12615static expr_ty
12616bitwise_xor_raw(Parser *p)
12617{
12618 D(p->level++);
12619 if (p->error_indicator) {
12620 D(p->level--);
12621 return NULL;
12622 }
12623 expr_ty _res = NULL;
12624 int _mark = p->mark;
12625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12626 p->error_indicator = 1;
12627 D(p->level--);
12628 return NULL;
12629 }
12630 int _start_lineno = p->tokens[_mark]->lineno;
12631 UNUSED(_start_lineno); // Only used by EXTRA macro
12632 int _start_col_offset = p->tokens[_mark]->col_offset;
12633 UNUSED(_start_col_offset); // Only used by EXTRA macro
12634 { // bitwise_xor '^' bitwise_and
12635 if (p->error_indicator) {
12636 D(p->level--);
12637 return NULL;
12638 }
12639 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12640 Token * _literal;
12641 expr_ty a;
12642 expr_ty b;
12643 if (
12644 (a = bitwise_xor_rule(p)) // bitwise_xor
12645 &&
12646 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12647 &&
12648 (b = bitwise_and_rule(p)) // bitwise_and
12649 )
12650 {
12651 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12652 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12653 if (_token == NULL) {
12654 D(p->level--);
12655 return NULL;
12656 }
12657 int _end_lineno = _token->end_lineno;
12658 UNUSED(_end_lineno); // Only used by EXTRA macro
12659 int _end_col_offset = _token->end_col_offset;
12660 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012661 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012662 if (_res == NULL && PyErr_Occurred()) {
12663 p->error_indicator = 1;
12664 D(p->level--);
12665 return NULL;
12666 }
12667 goto done;
12668 }
12669 p->mark = _mark;
12670 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12672 }
12673 { // bitwise_and
12674 if (p->error_indicator) {
12675 D(p->level--);
12676 return NULL;
12677 }
12678 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12679 expr_ty bitwise_and_var;
12680 if (
12681 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12682 )
12683 {
12684 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12685 _res = bitwise_and_var;
12686 goto done;
12687 }
12688 p->mark = _mark;
12689 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12691 }
12692 _res = NULL;
12693 done:
12694 D(p->level--);
12695 return _res;
12696}
12697
12698// Left-recursive
12699// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12700static expr_ty bitwise_and_raw(Parser *);
12701static expr_ty
12702bitwise_and_rule(Parser *p)
12703{
12704 D(p->level++);
12705 expr_ty _res = NULL;
12706 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12707 D(p->level--);
12708 return _res;
12709 }
12710 int _mark = p->mark;
12711 int _resmark = p->mark;
12712 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012713 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12714 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012715 D(p->level--);
12716 return _res;
12717 }
12718 p->mark = _mark;
12719 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012720 if (p->error_indicator)
12721 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012722 if (_raw == NULL || p->mark <= _resmark)
12723 break;
12724 _resmark = p->mark;
12725 _res = _raw;
12726 }
12727 p->mark = _resmark;
12728 D(p->level--);
12729 return _res;
12730}
12731static expr_ty
12732bitwise_and_raw(Parser *p)
12733{
12734 D(p->level++);
12735 if (p->error_indicator) {
12736 D(p->level--);
12737 return NULL;
12738 }
12739 expr_ty _res = NULL;
12740 int _mark = p->mark;
12741 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12742 p->error_indicator = 1;
12743 D(p->level--);
12744 return NULL;
12745 }
12746 int _start_lineno = p->tokens[_mark]->lineno;
12747 UNUSED(_start_lineno); // Only used by EXTRA macro
12748 int _start_col_offset = p->tokens[_mark]->col_offset;
12749 UNUSED(_start_col_offset); // Only used by EXTRA macro
12750 { // bitwise_and '&' shift_expr
12751 if (p->error_indicator) {
12752 D(p->level--);
12753 return NULL;
12754 }
12755 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12756 Token * _literal;
12757 expr_ty a;
12758 expr_ty b;
12759 if (
12760 (a = bitwise_and_rule(p)) // bitwise_and
12761 &&
12762 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12763 &&
12764 (b = shift_expr_rule(p)) // shift_expr
12765 )
12766 {
12767 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12768 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12769 if (_token == NULL) {
12770 D(p->level--);
12771 return NULL;
12772 }
12773 int _end_lineno = _token->end_lineno;
12774 UNUSED(_end_lineno); // Only used by EXTRA macro
12775 int _end_col_offset = _token->end_col_offset;
12776 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012777 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012778 if (_res == NULL && PyErr_Occurred()) {
12779 p->error_indicator = 1;
12780 D(p->level--);
12781 return NULL;
12782 }
12783 goto done;
12784 }
12785 p->mark = _mark;
12786 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12788 }
12789 { // shift_expr
12790 if (p->error_indicator) {
12791 D(p->level--);
12792 return NULL;
12793 }
12794 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12795 expr_ty shift_expr_var;
12796 if (
12797 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12798 )
12799 {
12800 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12801 _res = shift_expr_var;
12802 goto done;
12803 }
12804 p->mark = _mark;
12805 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12807 }
12808 _res = NULL;
12809 done:
12810 D(p->level--);
12811 return _res;
12812}
12813
12814// Left-recursive
12815// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12816static expr_ty shift_expr_raw(Parser *);
12817static expr_ty
12818shift_expr_rule(Parser *p)
12819{
12820 D(p->level++);
12821 expr_ty _res = NULL;
12822 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12823 D(p->level--);
12824 return _res;
12825 }
12826 int _mark = p->mark;
12827 int _resmark = p->mark;
12828 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012829 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12830 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012831 D(p->level--);
12832 return _res;
12833 }
12834 p->mark = _mark;
12835 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012836 if (p->error_indicator)
12837 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012838 if (_raw == NULL || p->mark <= _resmark)
12839 break;
12840 _resmark = p->mark;
12841 _res = _raw;
12842 }
12843 p->mark = _resmark;
12844 D(p->level--);
12845 return _res;
12846}
12847static expr_ty
12848shift_expr_raw(Parser *p)
12849{
12850 D(p->level++);
12851 if (p->error_indicator) {
12852 D(p->level--);
12853 return NULL;
12854 }
12855 expr_ty _res = NULL;
12856 int _mark = p->mark;
12857 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12858 p->error_indicator = 1;
12859 D(p->level--);
12860 return NULL;
12861 }
12862 int _start_lineno = p->tokens[_mark]->lineno;
12863 UNUSED(_start_lineno); // Only used by EXTRA macro
12864 int _start_col_offset = p->tokens[_mark]->col_offset;
12865 UNUSED(_start_col_offset); // Only used by EXTRA macro
12866 { // shift_expr '<<' sum
12867 if (p->error_indicator) {
12868 D(p->level--);
12869 return NULL;
12870 }
12871 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12872 Token * _literal;
12873 expr_ty a;
12874 expr_ty b;
12875 if (
12876 (a = shift_expr_rule(p)) // shift_expr
12877 &&
12878 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12879 &&
12880 (b = sum_rule(p)) // sum
12881 )
12882 {
12883 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12884 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12885 if (_token == NULL) {
12886 D(p->level--);
12887 return NULL;
12888 }
12889 int _end_lineno = _token->end_lineno;
12890 UNUSED(_end_lineno); // Only used by EXTRA macro
12891 int _end_col_offset = _token->end_col_offset;
12892 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012893 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012894 if (_res == NULL && PyErr_Occurred()) {
12895 p->error_indicator = 1;
12896 D(p->level--);
12897 return NULL;
12898 }
12899 goto done;
12900 }
12901 p->mark = _mark;
12902 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12904 }
12905 { // shift_expr '>>' sum
12906 if (p->error_indicator) {
12907 D(p->level--);
12908 return NULL;
12909 }
12910 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12911 Token * _literal;
12912 expr_ty a;
12913 expr_ty b;
12914 if (
12915 (a = shift_expr_rule(p)) // shift_expr
12916 &&
12917 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12918 &&
12919 (b = sum_rule(p)) // sum
12920 )
12921 {
12922 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12924 if (_token == NULL) {
12925 D(p->level--);
12926 return NULL;
12927 }
12928 int _end_lineno = _token->end_lineno;
12929 UNUSED(_end_lineno); // Only used by EXTRA macro
12930 int _end_col_offset = _token->end_col_offset;
12931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012932 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012933 if (_res == NULL && PyErr_Occurred()) {
12934 p->error_indicator = 1;
12935 D(p->level--);
12936 return NULL;
12937 }
12938 goto done;
12939 }
12940 p->mark = _mark;
12941 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12943 }
12944 { // sum
12945 if (p->error_indicator) {
12946 D(p->level--);
12947 return NULL;
12948 }
12949 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12950 expr_ty sum_var;
12951 if (
12952 (sum_var = sum_rule(p)) // sum
12953 )
12954 {
12955 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12956 _res = sum_var;
12957 goto done;
12958 }
12959 p->mark = _mark;
12960 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12962 }
12963 _res = NULL;
12964 done:
12965 D(p->level--);
12966 return _res;
12967}
12968
12969// Left-recursive
12970// sum: sum '+' term | sum '-' term | term
12971static expr_ty sum_raw(Parser *);
12972static expr_ty
12973sum_rule(Parser *p)
12974{
12975 D(p->level++);
12976 expr_ty _res = NULL;
12977 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12978 D(p->level--);
12979 return _res;
12980 }
12981 int _mark = p->mark;
12982 int _resmark = p->mark;
12983 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012984 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12985 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012986 D(p->level--);
12987 return _res;
12988 }
12989 p->mark = _mark;
12990 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012991 if (p->error_indicator)
12992 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012993 if (_raw == NULL || p->mark <= _resmark)
12994 break;
12995 _resmark = p->mark;
12996 _res = _raw;
12997 }
12998 p->mark = _resmark;
12999 D(p->level--);
13000 return _res;
13001}
13002static expr_ty
13003sum_raw(Parser *p)
13004{
13005 D(p->level++);
13006 if (p->error_indicator) {
13007 D(p->level--);
13008 return NULL;
13009 }
13010 expr_ty _res = NULL;
13011 int _mark = p->mark;
13012 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13013 p->error_indicator = 1;
13014 D(p->level--);
13015 return NULL;
13016 }
13017 int _start_lineno = p->tokens[_mark]->lineno;
13018 UNUSED(_start_lineno); // Only used by EXTRA macro
13019 int _start_col_offset = p->tokens[_mark]->col_offset;
13020 UNUSED(_start_col_offset); // Only used by EXTRA macro
13021 { // sum '+' term
13022 if (p->error_indicator) {
13023 D(p->level--);
13024 return NULL;
13025 }
13026 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13027 Token * _literal;
13028 expr_ty a;
13029 expr_ty b;
13030 if (
13031 (a = sum_rule(p)) // sum
13032 &&
13033 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13034 &&
13035 (b = term_rule(p)) // term
13036 )
13037 {
13038 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13039 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13040 if (_token == NULL) {
13041 D(p->level--);
13042 return NULL;
13043 }
13044 int _end_lineno = _token->end_lineno;
13045 UNUSED(_end_lineno); // Only used by EXTRA macro
13046 int _end_col_offset = _token->end_col_offset;
13047 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013048 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013049 if (_res == NULL && PyErr_Occurred()) {
13050 p->error_indicator = 1;
13051 D(p->level--);
13052 return NULL;
13053 }
13054 goto done;
13055 }
13056 p->mark = _mark;
13057 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13059 }
13060 { // sum '-' term
13061 if (p->error_indicator) {
13062 D(p->level--);
13063 return NULL;
13064 }
13065 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13066 Token * _literal;
13067 expr_ty a;
13068 expr_ty b;
13069 if (
13070 (a = sum_rule(p)) // sum
13071 &&
13072 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13073 &&
13074 (b = term_rule(p)) // term
13075 )
13076 {
13077 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13078 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13079 if (_token == NULL) {
13080 D(p->level--);
13081 return NULL;
13082 }
13083 int _end_lineno = _token->end_lineno;
13084 UNUSED(_end_lineno); // Only used by EXTRA macro
13085 int _end_col_offset = _token->end_col_offset;
13086 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013087 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013088 if (_res == NULL && PyErr_Occurred()) {
13089 p->error_indicator = 1;
13090 D(p->level--);
13091 return NULL;
13092 }
13093 goto done;
13094 }
13095 p->mark = _mark;
13096 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13098 }
13099 { // term
13100 if (p->error_indicator) {
13101 D(p->level--);
13102 return NULL;
13103 }
13104 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13105 expr_ty term_var;
13106 if (
13107 (term_var = term_rule(p)) // term
13108 )
13109 {
13110 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13111 _res = term_var;
13112 goto done;
13113 }
13114 p->mark = _mark;
13115 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13117 }
13118 _res = NULL;
13119 done:
13120 D(p->level--);
13121 return _res;
13122}
13123
13124// Left-recursive
13125// term:
13126// | term '*' factor
13127// | term '/' factor
13128// | term '//' factor
13129// | term '%' factor
13130// | term '@' factor
13131// | factor
13132static expr_ty term_raw(Parser *);
13133static expr_ty
13134term_rule(Parser *p)
13135{
13136 D(p->level++);
13137 expr_ty _res = NULL;
13138 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13139 D(p->level--);
13140 return _res;
13141 }
13142 int _mark = p->mark;
13143 int _resmark = p->mark;
13144 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013145 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13146 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013147 D(p->level--);
13148 return _res;
13149 }
13150 p->mark = _mark;
13151 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013152 if (p->error_indicator)
13153 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013154 if (_raw == NULL || p->mark <= _resmark)
13155 break;
13156 _resmark = p->mark;
13157 _res = _raw;
13158 }
13159 p->mark = _resmark;
13160 D(p->level--);
13161 return _res;
13162}
13163static expr_ty
13164term_raw(Parser *p)
13165{
13166 D(p->level++);
13167 if (p->error_indicator) {
13168 D(p->level--);
13169 return NULL;
13170 }
13171 expr_ty _res = NULL;
13172 int _mark = p->mark;
13173 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13174 p->error_indicator = 1;
13175 D(p->level--);
13176 return NULL;
13177 }
13178 int _start_lineno = p->tokens[_mark]->lineno;
13179 UNUSED(_start_lineno); // Only used by EXTRA macro
13180 int _start_col_offset = p->tokens[_mark]->col_offset;
13181 UNUSED(_start_col_offset); // Only used by EXTRA macro
13182 { // term '*' factor
13183 if (p->error_indicator) {
13184 D(p->level--);
13185 return NULL;
13186 }
13187 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13188 Token * _literal;
13189 expr_ty a;
13190 expr_ty b;
13191 if (
13192 (a = term_rule(p)) // term
13193 &&
13194 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13195 &&
13196 (b = factor_rule(p)) // factor
13197 )
13198 {
13199 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13201 if (_token == NULL) {
13202 D(p->level--);
13203 return NULL;
13204 }
13205 int _end_lineno = _token->end_lineno;
13206 UNUSED(_end_lineno); // Only used by EXTRA macro
13207 int _end_col_offset = _token->end_col_offset;
13208 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013209 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013210 if (_res == NULL && PyErr_Occurred()) {
13211 p->error_indicator = 1;
13212 D(p->level--);
13213 return NULL;
13214 }
13215 goto done;
13216 }
13217 p->mark = _mark;
13218 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13220 }
13221 { // term '/' factor
13222 if (p->error_indicator) {
13223 D(p->level--);
13224 return NULL;
13225 }
13226 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13227 Token * _literal;
13228 expr_ty a;
13229 expr_ty b;
13230 if (
13231 (a = term_rule(p)) // term
13232 &&
13233 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13234 &&
13235 (b = factor_rule(p)) // factor
13236 )
13237 {
13238 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13239 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13240 if (_token == NULL) {
13241 D(p->level--);
13242 return NULL;
13243 }
13244 int _end_lineno = _token->end_lineno;
13245 UNUSED(_end_lineno); // Only used by EXTRA macro
13246 int _end_col_offset = _token->end_col_offset;
13247 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013248 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013249 if (_res == NULL && PyErr_Occurred()) {
13250 p->error_indicator = 1;
13251 D(p->level--);
13252 return NULL;
13253 }
13254 goto done;
13255 }
13256 p->mark = _mark;
13257 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13259 }
13260 { // term '//' factor
13261 if (p->error_indicator) {
13262 D(p->level--);
13263 return NULL;
13264 }
13265 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13266 Token * _literal;
13267 expr_ty a;
13268 expr_ty b;
13269 if (
13270 (a = term_rule(p)) // term
13271 &&
13272 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13273 &&
13274 (b = factor_rule(p)) // factor
13275 )
13276 {
13277 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13278 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13279 if (_token == NULL) {
13280 D(p->level--);
13281 return NULL;
13282 }
13283 int _end_lineno = _token->end_lineno;
13284 UNUSED(_end_lineno); // Only used by EXTRA macro
13285 int _end_col_offset = _token->end_col_offset;
13286 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013287 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013288 if (_res == NULL && PyErr_Occurred()) {
13289 p->error_indicator = 1;
13290 D(p->level--);
13291 return NULL;
13292 }
13293 goto done;
13294 }
13295 p->mark = _mark;
13296 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13298 }
13299 { // term '%' factor
13300 if (p->error_indicator) {
13301 D(p->level--);
13302 return NULL;
13303 }
13304 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13305 Token * _literal;
13306 expr_ty a;
13307 expr_ty b;
13308 if (
13309 (a = term_rule(p)) // term
13310 &&
13311 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13312 &&
13313 (b = factor_rule(p)) // factor
13314 )
13315 {
13316 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13317 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13318 if (_token == NULL) {
13319 D(p->level--);
13320 return NULL;
13321 }
13322 int _end_lineno = _token->end_lineno;
13323 UNUSED(_end_lineno); // Only used by EXTRA macro
13324 int _end_col_offset = _token->end_col_offset;
13325 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013326 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013327 if (_res == NULL && PyErr_Occurred()) {
13328 p->error_indicator = 1;
13329 D(p->level--);
13330 return NULL;
13331 }
13332 goto done;
13333 }
13334 p->mark = _mark;
13335 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13337 }
13338 { // term '@' factor
13339 if (p->error_indicator) {
13340 D(p->level--);
13341 return NULL;
13342 }
13343 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13344 Token * _literal;
13345 expr_ty a;
13346 expr_ty b;
13347 if (
13348 (a = term_rule(p)) // term
13349 &&
13350 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13351 &&
13352 (b = factor_rule(p)) // factor
13353 )
13354 {
13355 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13357 if (_token == NULL) {
13358 D(p->level--);
13359 return NULL;
13360 }
13361 int _end_lineno = _token->end_lineno;
13362 UNUSED(_end_lineno); // Only used by EXTRA macro
13363 int _end_col_offset = _token->end_col_offset;
13364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013365 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013366 if (_res == NULL && PyErr_Occurred()) {
13367 p->error_indicator = 1;
13368 D(p->level--);
13369 return NULL;
13370 }
13371 goto done;
13372 }
13373 p->mark = _mark;
13374 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13376 }
13377 { // factor
13378 if (p->error_indicator) {
13379 D(p->level--);
13380 return NULL;
13381 }
13382 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13383 expr_ty factor_var;
13384 if (
13385 (factor_var = factor_rule(p)) // factor
13386 )
13387 {
13388 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13389 _res = factor_var;
13390 goto done;
13391 }
13392 p->mark = _mark;
13393 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13395 }
13396 _res = NULL;
13397 done:
13398 D(p->level--);
13399 return _res;
13400}
13401
13402// factor: '+' factor | '-' factor | '~' factor | power
13403static expr_ty
13404factor_rule(Parser *p)
13405{
13406 D(p->level++);
13407 if (p->error_indicator) {
13408 D(p->level--);
13409 return NULL;
13410 }
13411 expr_ty _res = NULL;
13412 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13413 D(p->level--);
13414 return _res;
13415 }
13416 int _mark = p->mark;
13417 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13418 p->error_indicator = 1;
13419 D(p->level--);
13420 return NULL;
13421 }
13422 int _start_lineno = p->tokens[_mark]->lineno;
13423 UNUSED(_start_lineno); // Only used by EXTRA macro
13424 int _start_col_offset = p->tokens[_mark]->col_offset;
13425 UNUSED(_start_col_offset); // Only used by EXTRA macro
13426 { // '+' factor
13427 if (p->error_indicator) {
13428 D(p->level--);
13429 return NULL;
13430 }
13431 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13432 Token * _literal;
13433 expr_ty a;
13434 if (
13435 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13436 &&
13437 (a = factor_rule(p)) // factor
13438 )
13439 {
13440 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13442 if (_token == NULL) {
13443 D(p->level--);
13444 return NULL;
13445 }
13446 int _end_lineno = _token->end_lineno;
13447 UNUSED(_end_lineno); // Only used by EXTRA macro
13448 int _end_col_offset = _token->end_col_offset;
13449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013450 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013451 if (_res == NULL && PyErr_Occurred()) {
13452 p->error_indicator = 1;
13453 D(p->level--);
13454 return NULL;
13455 }
13456 goto done;
13457 }
13458 p->mark = _mark;
13459 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13461 }
13462 { // '-' factor
13463 if (p->error_indicator) {
13464 D(p->level--);
13465 return NULL;
13466 }
13467 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13468 Token * _literal;
13469 expr_ty a;
13470 if (
13471 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13472 &&
13473 (a = factor_rule(p)) // factor
13474 )
13475 {
13476 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13478 if (_token == NULL) {
13479 D(p->level--);
13480 return NULL;
13481 }
13482 int _end_lineno = _token->end_lineno;
13483 UNUSED(_end_lineno); // Only used by EXTRA macro
13484 int _end_col_offset = _token->end_col_offset;
13485 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013486 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013487 if (_res == NULL && PyErr_Occurred()) {
13488 p->error_indicator = 1;
13489 D(p->level--);
13490 return NULL;
13491 }
13492 goto done;
13493 }
13494 p->mark = _mark;
13495 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13497 }
13498 { // '~' factor
13499 if (p->error_indicator) {
13500 D(p->level--);
13501 return NULL;
13502 }
13503 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13504 Token * _literal;
13505 expr_ty a;
13506 if (
13507 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13508 &&
13509 (a = factor_rule(p)) // factor
13510 )
13511 {
13512 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13513 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13514 if (_token == NULL) {
13515 D(p->level--);
13516 return NULL;
13517 }
13518 int _end_lineno = _token->end_lineno;
13519 UNUSED(_end_lineno); // Only used by EXTRA macro
13520 int _end_col_offset = _token->end_col_offset;
13521 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013522 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013523 if (_res == NULL && PyErr_Occurred()) {
13524 p->error_indicator = 1;
13525 D(p->level--);
13526 return NULL;
13527 }
13528 goto done;
13529 }
13530 p->mark = _mark;
13531 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13533 }
13534 { // power
13535 if (p->error_indicator) {
13536 D(p->level--);
13537 return NULL;
13538 }
13539 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13540 expr_ty power_var;
13541 if (
13542 (power_var = power_rule(p)) // power
13543 )
13544 {
13545 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13546 _res = power_var;
13547 goto done;
13548 }
13549 p->mark = _mark;
13550 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13552 }
13553 _res = NULL;
13554 done:
13555 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13556 D(p->level--);
13557 return _res;
13558}
13559
13560// power: await_primary '**' factor | await_primary
13561static expr_ty
13562power_rule(Parser *p)
13563{
13564 D(p->level++);
13565 if (p->error_indicator) {
13566 D(p->level--);
13567 return NULL;
13568 }
13569 expr_ty _res = NULL;
13570 int _mark = p->mark;
13571 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13572 p->error_indicator = 1;
13573 D(p->level--);
13574 return NULL;
13575 }
13576 int _start_lineno = p->tokens[_mark]->lineno;
13577 UNUSED(_start_lineno); // Only used by EXTRA macro
13578 int _start_col_offset = p->tokens[_mark]->col_offset;
13579 UNUSED(_start_col_offset); // Only used by EXTRA macro
13580 { // await_primary '**' factor
13581 if (p->error_indicator) {
13582 D(p->level--);
13583 return NULL;
13584 }
13585 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13586 Token * _literal;
13587 expr_ty a;
13588 expr_ty b;
13589 if (
13590 (a = await_primary_rule(p)) // await_primary
13591 &&
13592 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13593 &&
13594 (b = factor_rule(p)) // factor
13595 )
13596 {
13597 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13598 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13599 if (_token == NULL) {
13600 D(p->level--);
13601 return NULL;
13602 }
13603 int _end_lineno = _token->end_lineno;
13604 UNUSED(_end_lineno); // Only used by EXTRA macro
13605 int _end_col_offset = _token->end_col_offset;
13606 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013607 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013608 if (_res == NULL && PyErr_Occurred()) {
13609 p->error_indicator = 1;
13610 D(p->level--);
13611 return NULL;
13612 }
13613 goto done;
13614 }
13615 p->mark = _mark;
13616 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13618 }
13619 { // await_primary
13620 if (p->error_indicator) {
13621 D(p->level--);
13622 return NULL;
13623 }
13624 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13625 expr_ty await_primary_var;
13626 if (
13627 (await_primary_var = await_primary_rule(p)) // await_primary
13628 )
13629 {
13630 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13631 _res = await_primary_var;
13632 goto done;
13633 }
13634 p->mark = _mark;
13635 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13637 }
13638 _res = NULL;
13639 done:
13640 D(p->level--);
13641 return _res;
13642}
13643
13644// await_primary: AWAIT primary | primary
13645static expr_ty
13646await_primary_rule(Parser *p)
13647{
13648 D(p->level++);
13649 if (p->error_indicator) {
13650 D(p->level--);
13651 return NULL;
13652 }
13653 expr_ty _res = NULL;
13654 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13655 D(p->level--);
13656 return _res;
13657 }
13658 int _mark = p->mark;
13659 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13660 p->error_indicator = 1;
13661 D(p->level--);
13662 return NULL;
13663 }
13664 int _start_lineno = p->tokens[_mark]->lineno;
13665 UNUSED(_start_lineno); // Only used by EXTRA macro
13666 int _start_col_offset = p->tokens[_mark]->col_offset;
13667 UNUSED(_start_col_offset); // Only used by EXTRA macro
13668 { // AWAIT primary
13669 if (p->error_indicator) {
13670 D(p->level--);
13671 return NULL;
13672 }
13673 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13674 expr_ty a;
13675 Token * await_var;
13676 if (
13677 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13678 &&
13679 (a = primary_rule(p)) // primary
13680 )
13681 {
13682 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13683 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13684 if (_token == NULL) {
13685 D(p->level--);
13686 return NULL;
13687 }
13688 int _end_lineno = _token->end_lineno;
13689 UNUSED(_end_lineno); // Only used by EXTRA macro
13690 int _end_col_offset = _token->end_col_offset;
13691 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013692 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013693 if (_res == NULL && PyErr_Occurred()) {
13694 p->error_indicator = 1;
13695 D(p->level--);
13696 return NULL;
13697 }
13698 goto done;
13699 }
13700 p->mark = _mark;
13701 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13703 }
13704 { // primary
13705 if (p->error_indicator) {
13706 D(p->level--);
13707 return NULL;
13708 }
13709 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13710 expr_ty primary_var;
13711 if (
13712 (primary_var = primary_rule(p)) // primary
13713 )
13714 {
13715 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13716 _res = primary_var;
13717 goto done;
13718 }
13719 p->mark = _mark;
13720 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13722 }
13723 _res = NULL;
13724 done:
13725 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13726 D(p->level--);
13727 return _res;
13728}
13729
13730// Left-recursive
13731// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013732// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013733// | primary '.' NAME
13734// | primary genexp
13735// | primary '(' arguments? ')'
13736// | primary '[' slices ']'
13737// | atom
13738static expr_ty primary_raw(Parser *);
13739static expr_ty
13740primary_rule(Parser *p)
13741{
13742 D(p->level++);
13743 expr_ty _res = NULL;
13744 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13745 D(p->level--);
13746 return _res;
13747 }
13748 int _mark = p->mark;
13749 int _resmark = p->mark;
13750 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013751 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13752 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013753 D(p->level--);
13754 return _res;
13755 }
13756 p->mark = _mark;
13757 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013758 if (p->error_indicator)
13759 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013760 if (_raw == NULL || p->mark <= _resmark)
13761 break;
13762 _resmark = p->mark;
13763 _res = _raw;
13764 }
13765 p->mark = _resmark;
13766 D(p->level--);
13767 return _res;
13768}
13769static expr_ty
13770primary_raw(Parser *p)
13771{
13772 D(p->level++);
13773 if (p->error_indicator) {
13774 D(p->level--);
13775 return NULL;
13776 }
13777 expr_ty _res = NULL;
13778 int _mark = p->mark;
13779 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13780 p->error_indicator = 1;
13781 D(p->level--);
13782 return NULL;
13783 }
13784 int _start_lineno = p->tokens[_mark]->lineno;
13785 UNUSED(_start_lineno); // Only used by EXTRA macro
13786 int _start_col_offset = p->tokens[_mark]->col_offset;
13787 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013788 if (p->call_invalid_rules) { // invalid_primary
13789 if (p->error_indicator) {
13790 D(p->level--);
13791 return NULL;
13792 }
13793 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13794 void *invalid_primary_var;
13795 if (
13796 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13797 )
13798 {
13799 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13800 _res = invalid_primary_var;
13801 goto done;
13802 }
13803 p->mark = _mark;
13804 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13806 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013807 { // primary '.' NAME
13808 if (p->error_indicator) {
13809 D(p->level--);
13810 return NULL;
13811 }
13812 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13813 Token * _literal;
13814 expr_ty a;
13815 expr_ty b;
13816 if (
13817 (a = primary_rule(p)) // primary
13818 &&
13819 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13820 &&
13821 (b = _PyPegen_name_token(p)) // NAME
13822 )
13823 {
13824 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13825 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13826 if (_token == NULL) {
13827 D(p->level--);
13828 return NULL;
13829 }
13830 int _end_lineno = _token->end_lineno;
13831 UNUSED(_end_lineno); // Only used by EXTRA macro
13832 int _end_col_offset = _token->end_col_offset;
13833 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013834 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013835 if (_res == NULL && PyErr_Occurred()) {
13836 p->error_indicator = 1;
13837 D(p->level--);
13838 return NULL;
13839 }
13840 goto done;
13841 }
13842 p->mark = _mark;
13843 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13845 }
13846 { // primary genexp
13847 if (p->error_indicator) {
13848 D(p->level--);
13849 return NULL;
13850 }
13851 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13852 expr_ty a;
13853 expr_ty b;
13854 if (
13855 (a = primary_rule(p)) // primary
13856 &&
13857 (b = genexp_rule(p)) // genexp
13858 )
13859 {
13860 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13861 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13862 if (_token == NULL) {
13863 D(p->level--);
13864 return NULL;
13865 }
13866 int _end_lineno = _token->end_lineno;
13867 UNUSED(_end_lineno); // Only used by EXTRA macro
13868 int _end_col_offset = _token->end_col_offset;
13869 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013870 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013871 if (_res == NULL && PyErr_Occurred()) {
13872 p->error_indicator = 1;
13873 D(p->level--);
13874 return NULL;
13875 }
13876 goto done;
13877 }
13878 p->mark = _mark;
13879 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13881 }
13882 { // primary '(' arguments? ')'
13883 if (p->error_indicator) {
13884 D(p->level--);
13885 return NULL;
13886 }
13887 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13888 Token * _literal;
13889 Token * _literal_1;
13890 expr_ty a;
13891 void *b;
13892 if (
13893 (a = primary_rule(p)) // primary
13894 &&
13895 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13896 &&
13897 (b = arguments_rule(p), 1) // arguments?
13898 &&
13899 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13900 )
13901 {
13902 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13904 if (_token == NULL) {
13905 D(p->level--);
13906 return NULL;
13907 }
13908 int _end_lineno = _token->end_lineno;
13909 UNUSED(_end_lineno); // Only used by EXTRA macro
13910 int _end_col_offset = _token->end_col_offset;
13911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013912 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013913 if (_res == NULL && PyErr_Occurred()) {
13914 p->error_indicator = 1;
13915 D(p->level--);
13916 return NULL;
13917 }
13918 goto done;
13919 }
13920 p->mark = _mark;
13921 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13923 }
13924 { // primary '[' slices ']'
13925 if (p->error_indicator) {
13926 D(p->level--);
13927 return NULL;
13928 }
13929 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13930 Token * _literal;
13931 Token * _literal_1;
13932 expr_ty a;
13933 expr_ty b;
13934 if (
13935 (a = primary_rule(p)) // primary
13936 &&
13937 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13938 &&
13939 (b = slices_rule(p)) // slices
13940 &&
13941 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13942 )
13943 {
13944 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13946 if (_token == NULL) {
13947 D(p->level--);
13948 return NULL;
13949 }
13950 int _end_lineno = _token->end_lineno;
13951 UNUSED(_end_lineno); // Only used by EXTRA macro
13952 int _end_col_offset = _token->end_col_offset;
13953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013954 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013955 if (_res == NULL && PyErr_Occurred()) {
13956 p->error_indicator = 1;
13957 D(p->level--);
13958 return NULL;
13959 }
13960 goto done;
13961 }
13962 p->mark = _mark;
13963 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13965 }
13966 { // atom
13967 if (p->error_indicator) {
13968 D(p->level--);
13969 return NULL;
13970 }
13971 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13972 expr_ty atom_var;
13973 if (
13974 (atom_var = atom_rule(p)) // atom
13975 )
13976 {
13977 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13978 _res = atom_var;
13979 goto done;
13980 }
13981 p->mark = _mark;
13982 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13984 }
13985 _res = NULL;
13986 done:
13987 D(p->level--);
13988 return _res;
13989}
13990
13991// slices: slice !',' | ','.slice+ ','?
13992static expr_ty
13993slices_rule(Parser *p)
13994{
13995 D(p->level++);
13996 if (p->error_indicator) {
13997 D(p->level--);
13998 return NULL;
13999 }
14000 expr_ty _res = NULL;
14001 int _mark = p->mark;
14002 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14003 p->error_indicator = 1;
14004 D(p->level--);
14005 return NULL;
14006 }
14007 int _start_lineno = p->tokens[_mark]->lineno;
14008 UNUSED(_start_lineno); // Only used by EXTRA macro
14009 int _start_col_offset = p->tokens[_mark]->col_offset;
14010 UNUSED(_start_col_offset); // Only used by EXTRA macro
14011 { // slice !','
14012 if (p->error_indicator) {
14013 D(p->level--);
14014 return NULL;
14015 }
14016 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14017 expr_ty a;
14018 if (
14019 (a = slice_rule(p)) // slice
14020 &&
14021 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14022 )
14023 {
14024 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14025 _res = a;
14026 if (_res == NULL && PyErr_Occurred()) {
14027 p->error_indicator = 1;
14028 D(p->level--);
14029 return NULL;
14030 }
14031 goto done;
14032 }
14033 p->mark = _mark;
14034 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14036 }
14037 { // ','.slice+ ','?
14038 if (p->error_indicator) {
14039 D(p->level--);
14040 return NULL;
14041 }
14042 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14043 void *_opt_var;
14044 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014045 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014046 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014047 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014048 &&
14049 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14050 )
14051 {
14052 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14054 if (_token == NULL) {
14055 D(p->level--);
14056 return NULL;
14057 }
14058 int _end_lineno = _token->end_lineno;
14059 UNUSED(_end_lineno); // Only used by EXTRA macro
14060 int _end_col_offset = _token->end_col_offset;
14061 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014062 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014063 if (_res == NULL && PyErr_Occurred()) {
14064 p->error_indicator = 1;
14065 D(p->level--);
14066 return NULL;
14067 }
14068 goto done;
14069 }
14070 p->mark = _mark;
14071 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14073 }
14074 _res = NULL;
14075 done:
14076 D(p->level--);
14077 return _res;
14078}
14079
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014080// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014081static expr_ty
14082slice_rule(Parser *p)
14083{
14084 D(p->level++);
14085 if (p->error_indicator) {
14086 D(p->level--);
14087 return NULL;
14088 }
14089 expr_ty _res = NULL;
14090 int _mark = p->mark;
14091 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14092 p->error_indicator = 1;
14093 D(p->level--);
14094 return NULL;
14095 }
14096 int _start_lineno = p->tokens[_mark]->lineno;
14097 UNUSED(_start_lineno); // Only used by EXTRA macro
14098 int _start_col_offset = p->tokens[_mark]->col_offset;
14099 UNUSED(_start_col_offset); // Only used by EXTRA macro
14100 { // expression? ':' expression? [':' expression?]
14101 if (p->error_indicator) {
14102 D(p->level--);
14103 return NULL;
14104 }
14105 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14106 Token * _literal;
14107 void *a;
14108 void *b;
14109 void *c;
14110 if (
14111 (a = expression_rule(p), 1) // expression?
14112 &&
14113 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14114 &&
14115 (b = expression_rule(p), 1) // expression?
14116 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014117 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014118 )
14119 {
14120 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14121 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14122 if (_token == NULL) {
14123 D(p->level--);
14124 return NULL;
14125 }
14126 int _end_lineno = _token->end_lineno;
14127 UNUSED(_end_lineno); // Only used by EXTRA macro
14128 int _end_col_offset = _token->end_col_offset;
14129 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014130 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014131 if (_res == NULL && PyErr_Occurred()) {
14132 p->error_indicator = 1;
14133 D(p->level--);
14134 return NULL;
14135 }
14136 goto done;
14137 }
14138 p->mark = _mark;
14139 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14141 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014142 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014143 if (p->error_indicator) {
14144 D(p->level--);
14145 return NULL;
14146 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014147 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014148 expr_ty a;
14149 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014150 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014151 )
14152 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014153 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014154 _res = a;
14155 if (_res == NULL && PyErr_Occurred()) {
14156 p->error_indicator = 1;
14157 D(p->level--);
14158 return NULL;
14159 }
14160 goto done;
14161 }
14162 p->mark = _mark;
14163 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014165 }
14166 _res = NULL;
14167 done:
14168 D(p->level--);
14169 return _res;
14170}
14171
14172// atom:
14173// | NAME
14174// | 'True'
14175// | 'False'
14176// | 'None'
14177// | &STRING strings
14178// | NUMBER
14179// | &'(' (tuple | group | genexp)
14180// | &'[' (list | listcomp)
14181// | &'{' (dict | set | dictcomp | setcomp)
14182// | '...'
14183static expr_ty
14184atom_rule(Parser *p)
14185{
14186 D(p->level++);
14187 if (p->error_indicator) {
14188 D(p->level--);
14189 return NULL;
14190 }
14191 expr_ty _res = NULL;
14192 int _mark = p->mark;
14193 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14194 p->error_indicator = 1;
14195 D(p->level--);
14196 return NULL;
14197 }
14198 int _start_lineno = p->tokens[_mark]->lineno;
14199 UNUSED(_start_lineno); // Only used by EXTRA macro
14200 int _start_col_offset = p->tokens[_mark]->col_offset;
14201 UNUSED(_start_col_offset); // Only used by EXTRA macro
14202 { // NAME
14203 if (p->error_indicator) {
14204 D(p->level--);
14205 return NULL;
14206 }
14207 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14208 expr_ty name_var;
14209 if (
14210 (name_var = _PyPegen_name_token(p)) // NAME
14211 )
14212 {
14213 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14214 _res = name_var;
14215 goto done;
14216 }
14217 p->mark = _mark;
14218 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14220 }
14221 { // 'True'
14222 if (p->error_indicator) {
14223 D(p->level--);
14224 return NULL;
14225 }
14226 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14227 Token * _keyword;
14228 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014229 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014230 )
14231 {
14232 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14234 if (_token == NULL) {
14235 D(p->level--);
14236 return NULL;
14237 }
14238 int _end_lineno = _token->end_lineno;
14239 UNUSED(_end_lineno); // Only used by EXTRA macro
14240 int _end_col_offset = _token->end_col_offset;
14241 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014242 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014243 if (_res == NULL && PyErr_Occurred()) {
14244 p->error_indicator = 1;
14245 D(p->level--);
14246 return NULL;
14247 }
14248 goto done;
14249 }
14250 p->mark = _mark;
14251 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14253 }
14254 { // 'False'
14255 if (p->error_indicator) {
14256 D(p->level--);
14257 return NULL;
14258 }
14259 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14260 Token * _keyword;
14261 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014262 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014263 )
14264 {
14265 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14266 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14267 if (_token == NULL) {
14268 D(p->level--);
14269 return NULL;
14270 }
14271 int _end_lineno = _token->end_lineno;
14272 UNUSED(_end_lineno); // Only used by EXTRA macro
14273 int _end_col_offset = _token->end_col_offset;
14274 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014275 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014276 if (_res == NULL && PyErr_Occurred()) {
14277 p->error_indicator = 1;
14278 D(p->level--);
14279 return NULL;
14280 }
14281 goto done;
14282 }
14283 p->mark = _mark;
14284 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14286 }
14287 { // 'None'
14288 if (p->error_indicator) {
14289 D(p->level--);
14290 return NULL;
14291 }
14292 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14293 Token * _keyword;
14294 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014295 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014296 )
14297 {
14298 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14300 if (_token == NULL) {
14301 D(p->level--);
14302 return NULL;
14303 }
14304 int _end_lineno = _token->end_lineno;
14305 UNUSED(_end_lineno); // Only used by EXTRA macro
14306 int _end_col_offset = _token->end_col_offset;
14307 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014308 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014309 if (_res == NULL && PyErr_Occurred()) {
14310 p->error_indicator = 1;
14311 D(p->level--);
14312 return NULL;
14313 }
14314 goto done;
14315 }
14316 p->mark = _mark;
14317 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14319 }
14320 { // &STRING strings
14321 if (p->error_indicator) {
14322 D(p->level--);
14323 return NULL;
14324 }
14325 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14326 expr_ty strings_var;
14327 if (
14328 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14329 &&
14330 (strings_var = strings_rule(p)) // strings
14331 )
14332 {
14333 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14334 _res = strings_var;
14335 goto done;
14336 }
14337 p->mark = _mark;
14338 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14340 }
14341 { // NUMBER
14342 if (p->error_indicator) {
14343 D(p->level--);
14344 return NULL;
14345 }
14346 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14347 expr_ty number_var;
14348 if (
14349 (number_var = _PyPegen_number_token(p)) // NUMBER
14350 )
14351 {
14352 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14353 _res = number_var;
14354 goto done;
14355 }
14356 p->mark = _mark;
14357 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14359 }
14360 { // &'(' (tuple | group | genexp)
14361 if (p->error_indicator) {
14362 D(p->level--);
14363 return NULL;
14364 }
14365 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014366 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014367 if (
14368 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14369 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014370 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014371 )
14372 {
14373 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014374 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014375 goto done;
14376 }
14377 p->mark = _mark;
14378 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14380 }
14381 { // &'[' (list | listcomp)
14382 if (p->error_indicator) {
14383 D(p->level--);
14384 return NULL;
14385 }
14386 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014387 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014388 if (
14389 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14390 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014391 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014392 )
14393 {
14394 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014395 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014396 goto done;
14397 }
14398 p->mark = _mark;
14399 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14401 }
14402 { // &'{' (dict | set | dictcomp | setcomp)
14403 if (p->error_indicator) {
14404 D(p->level--);
14405 return NULL;
14406 }
14407 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014408 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014409 if (
14410 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14411 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014412 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014413 )
14414 {
14415 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014416 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014417 goto done;
14418 }
14419 p->mark = _mark;
14420 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14422 }
14423 { // '...'
14424 if (p->error_indicator) {
14425 D(p->level--);
14426 return NULL;
14427 }
14428 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14429 Token * _literal;
14430 if (
14431 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14432 )
14433 {
14434 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14436 if (_token == NULL) {
14437 D(p->level--);
14438 return NULL;
14439 }
14440 int _end_lineno = _token->end_lineno;
14441 UNUSED(_end_lineno); // Only used by EXTRA macro
14442 int _end_col_offset = _token->end_col_offset;
14443 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014444 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014445 if (_res == NULL && PyErr_Occurred()) {
14446 p->error_indicator = 1;
14447 D(p->level--);
14448 return NULL;
14449 }
14450 goto done;
14451 }
14452 p->mark = _mark;
14453 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14455 }
14456 _res = NULL;
14457 done:
14458 D(p->level--);
14459 return _res;
14460}
14461
14462// strings: STRING+
14463static expr_ty
14464strings_rule(Parser *p)
14465{
14466 D(p->level++);
14467 if (p->error_indicator) {
14468 D(p->level--);
14469 return NULL;
14470 }
14471 expr_ty _res = NULL;
14472 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14473 D(p->level--);
14474 return _res;
14475 }
14476 int _mark = p->mark;
14477 { // STRING+
14478 if (p->error_indicator) {
14479 D(p->level--);
14480 return NULL;
14481 }
14482 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14483 asdl_seq * a;
14484 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014485 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014486 )
14487 {
14488 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14489 _res = _PyPegen_concatenate_strings ( p , a );
14490 if (_res == NULL && PyErr_Occurred()) {
14491 p->error_indicator = 1;
14492 D(p->level--);
14493 return NULL;
14494 }
14495 goto done;
14496 }
14497 p->mark = _mark;
14498 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14500 }
14501 _res = NULL;
14502 done:
14503 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14504 D(p->level--);
14505 return _res;
14506}
14507
14508// list: '[' star_named_expressions? ']'
14509static expr_ty
14510list_rule(Parser *p)
14511{
14512 D(p->level++);
14513 if (p->error_indicator) {
14514 D(p->level--);
14515 return NULL;
14516 }
14517 expr_ty _res = NULL;
14518 int _mark = p->mark;
14519 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14520 p->error_indicator = 1;
14521 D(p->level--);
14522 return NULL;
14523 }
14524 int _start_lineno = p->tokens[_mark]->lineno;
14525 UNUSED(_start_lineno); // Only used by EXTRA macro
14526 int _start_col_offset = p->tokens[_mark]->col_offset;
14527 UNUSED(_start_col_offset); // Only used by EXTRA macro
14528 { // '[' star_named_expressions? ']'
14529 if (p->error_indicator) {
14530 D(p->level--);
14531 return NULL;
14532 }
14533 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14534 Token * _literal;
14535 Token * _literal_1;
14536 void *a;
14537 if (
14538 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14539 &&
14540 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14541 &&
14542 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14543 )
14544 {
14545 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14546 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14547 if (_token == NULL) {
14548 D(p->level--);
14549 return NULL;
14550 }
14551 int _end_lineno = _token->end_lineno;
14552 UNUSED(_end_lineno); // Only used by EXTRA macro
14553 int _end_col_offset = _token->end_col_offset;
14554 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014555 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014556 if (_res == NULL && PyErr_Occurred()) {
14557 p->error_indicator = 1;
14558 D(p->level--);
14559 return NULL;
14560 }
14561 goto done;
14562 }
14563 p->mark = _mark;
14564 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14566 }
14567 _res = NULL;
14568 done:
14569 D(p->level--);
14570 return _res;
14571}
14572
Pablo Galindo835f14f2021-01-31 22:52:56 +000014573// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014574static expr_ty
14575listcomp_rule(Parser *p)
14576{
14577 D(p->level++);
14578 if (p->error_indicator) {
14579 D(p->level--);
14580 return NULL;
14581 }
14582 expr_ty _res = NULL;
14583 int _mark = p->mark;
14584 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14585 p->error_indicator = 1;
14586 D(p->level--);
14587 return NULL;
14588 }
14589 int _start_lineno = p->tokens[_mark]->lineno;
14590 UNUSED(_start_lineno); // Only used by EXTRA macro
14591 int _start_col_offset = p->tokens[_mark]->col_offset;
14592 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014593 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014594 if (p->error_indicator) {
14595 D(p->level--);
14596 return NULL;
14597 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014598 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014599 Token * _literal;
14600 Token * _literal_1;
14601 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014602 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014603 if (
14604 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14605 &&
14606 (a = named_expression_rule(p)) // named_expression
14607 &&
14608 (b = for_if_clauses_rule(p)) // for_if_clauses
14609 &&
14610 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14611 )
14612 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014613 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14615 if (_token == NULL) {
14616 D(p->level--);
14617 return NULL;
14618 }
14619 int _end_lineno = _token->end_lineno;
14620 UNUSED(_end_lineno); // Only used by EXTRA macro
14621 int _end_col_offset = _token->end_col_offset;
14622 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014623 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014624 if (_res == NULL && PyErr_Occurred()) {
14625 p->error_indicator = 1;
14626 D(p->level--);
14627 return NULL;
14628 }
14629 goto done;
14630 }
14631 p->mark = _mark;
14632 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014634 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014635 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014636 if (p->error_indicator) {
14637 D(p->level--);
14638 return NULL;
14639 }
14640 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14641 void *invalid_comprehension_var;
14642 if (
14643 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14644 )
14645 {
14646 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14647 _res = invalid_comprehension_var;
14648 goto done;
14649 }
14650 p->mark = _mark;
14651 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14653 }
14654 _res = NULL;
14655 done:
14656 D(p->level--);
14657 return _res;
14658}
14659
14660// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14661static expr_ty
14662tuple_rule(Parser *p)
14663{
14664 D(p->level++);
14665 if (p->error_indicator) {
14666 D(p->level--);
14667 return NULL;
14668 }
14669 expr_ty _res = NULL;
14670 int _mark = p->mark;
14671 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14672 p->error_indicator = 1;
14673 D(p->level--);
14674 return NULL;
14675 }
14676 int _start_lineno = p->tokens[_mark]->lineno;
14677 UNUSED(_start_lineno); // Only used by EXTRA macro
14678 int _start_col_offset = p->tokens[_mark]->col_offset;
14679 UNUSED(_start_col_offset); // Only used by EXTRA macro
14680 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14681 if (p->error_indicator) {
14682 D(p->level--);
14683 return NULL;
14684 }
14685 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14686 Token * _literal;
14687 Token * _literal_1;
14688 void *a;
14689 if (
14690 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14691 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014692 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014693 &&
14694 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14695 )
14696 {
14697 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14699 if (_token == NULL) {
14700 D(p->level--);
14701 return NULL;
14702 }
14703 int _end_lineno = _token->end_lineno;
14704 UNUSED(_end_lineno); // Only used by EXTRA macro
14705 int _end_col_offset = _token->end_col_offset;
14706 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014707 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014708 if (_res == NULL && PyErr_Occurred()) {
14709 p->error_indicator = 1;
14710 D(p->level--);
14711 return NULL;
14712 }
14713 goto done;
14714 }
14715 p->mark = _mark;
14716 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14718 }
14719 _res = NULL;
14720 done:
14721 D(p->level--);
14722 return _res;
14723}
14724
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014725// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014726static expr_ty
14727group_rule(Parser *p)
14728{
14729 D(p->level++);
14730 if (p->error_indicator) {
14731 D(p->level--);
14732 return NULL;
14733 }
14734 expr_ty _res = NULL;
14735 int _mark = p->mark;
14736 { // '(' (yield_expr | named_expression) ')'
14737 if (p->error_indicator) {
14738 D(p->level--);
14739 return NULL;
14740 }
14741 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14742 Token * _literal;
14743 Token * _literal_1;
14744 void *a;
14745 if (
14746 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14747 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014748 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014749 &&
14750 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14751 )
14752 {
14753 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14754 _res = a;
14755 if (_res == NULL && PyErr_Occurred()) {
14756 p->error_indicator = 1;
14757 D(p->level--);
14758 return NULL;
14759 }
14760 goto done;
14761 }
14762 p->mark = _mark;
14763 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14765 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014766 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014767 if (p->error_indicator) {
14768 D(p->level--);
14769 return NULL;
14770 }
14771 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14772 void *invalid_group_var;
14773 if (
14774 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14775 )
14776 {
14777 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14778 _res = invalid_group_var;
14779 goto done;
14780 }
14781 p->mark = _mark;
14782 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14784 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014785 _res = NULL;
14786 done:
14787 D(p->level--);
14788 return _res;
14789}
14790
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014791// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014792static expr_ty
14793genexp_rule(Parser *p)
14794{
14795 D(p->level++);
14796 if (p->error_indicator) {
14797 D(p->level--);
14798 return NULL;
14799 }
14800 expr_ty _res = NULL;
14801 int _mark = p->mark;
14802 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14803 p->error_indicator = 1;
14804 D(p->level--);
14805 return NULL;
14806 }
14807 int _start_lineno = p->tokens[_mark]->lineno;
14808 UNUSED(_start_lineno); // Only used by EXTRA macro
14809 int _start_col_offset = p->tokens[_mark]->col_offset;
14810 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014811 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014812 if (p->error_indicator) {
14813 D(p->level--);
14814 return NULL;
14815 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014816 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014817 Token * _literal;
14818 Token * _literal_1;
14819 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014820 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014821 if (
14822 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14823 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014824 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014825 &&
14826 (b = for_if_clauses_rule(p)) // for_if_clauses
14827 &&
14828 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14829 )
14830 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014831 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014832 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14833 if (_token == NULL) {
14834 D(p->level--);
14835 return NULL;
14836 }
14837 int _end_lineno = _token->end_lineno;
14838 UNUSED(_end_lineno); // Only used by EXTRA macro
14839 int _end_col_offset = _token->end_col_offset;
14840 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014841 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014842 if (_res == NULL && PyErr_Occurred()) {
14843 p->error_indicator = 1;
14844 D(p->level--);
14845 return NULL;
14846 }
14847 goto done;
14848 }
14849 p->mark = _mark;
14850 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014853 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014854 if (p->error_indicator) {
14855 D(p->level--);
14856 return NULL;
14857 }
14858 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14859 void *invalid_comprehension_var;
14860 if (
14861 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14862 )
14863 {
14864 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14865 _res = invalid_comprehension_var;
14866 goto done;
14867 }
14868 p->mark = _mark;
14869 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14871 }
14872 _res = NULL;
14873 done:
14874 D(p->level--);
14875 return _res;
14876}
14877
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014878// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014879static expr_ty
14880set_rule(Parser *p)
14881{
14882 D(p->level++);
14883 if (p->error_indicator) {
14884 D(p->level--);
14885 return NULL;
14886 }
14887 expr_ty _res = NULL;
14888 int _mark = p->mark;
14889 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14890 p->error_indicator = 1;
14891 D(p->level--);
14892 return NULL;
14893 }
14894 int _start_lineno = p->tokens[_mark]->lineno;
14895 UNUSED(_start_lineno); // Only used by EXTRA macro
14896 int _start_col_offset = p->tokens[_mark]->col_offset;
14897 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014898 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014899 if (p->error_indicator) {
14900 D(p->level--);
14901 return NULL;
14902 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014903 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014904 Token * _literal;
14905 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014906 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014907 if (
14908 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14909 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014910 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014911 &&
14912 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14913 )
14914 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014915 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014916 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14917 if (_token == NULL) {
14918 D(p->level--);
14919 return NULL;
14920 }
14921 int _end_lineno = _token->end_lineno;
14922 UNUSED(_end_lineno); // Only used by EXTRA macro
14923 int _end_col_offset = _token->end_col_offset;
14924 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014925 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014926 if (_res == NULL && PyErr_Occurred()) {
14927 p->error_indicator = 1;
14928 D(p->level--);
14929 return NULL;
14930 }
14931 goto done;
14932 }
14933 p->mark = _mark;
14934 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014936 }
14937 _res = NULL;
14938 done:
14939 D(p->level--);
14940 return _res;
14941}
14942
Pablo Galindo835f14f2021-01-31 22:52:56 +000014943// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014944static expr_ty
14945setcomp_rule(Parser *p)
14946{
14947 D(p->level++);
14948 if (p->error_indicator) {
14949 D(p->level--);
14950 return NULL;
14951 }
14952 expr_ty _res = NULL;
14953 int _mark = p->mark;
14954 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14955 p->error_indicator = 1;
14956 D(p->level--);
14957 return NULL;
14958 }
14959 int _start_lineno = p->tokens[_mark]->lineno;
14960 UNUSED(_start_lineno); // Only used by EXTRA macro
14961 int _start_col_offset = p->tokens[_mark]->col_offset;
14962 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014963 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014964 if (p->error_indicator) {
14965 D(p->level--);
14966 return NULL;
14967 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014968 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014969 Token * _literal;
14970 Token * _literal_1;
14971 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014972 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014973 if (
14974 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14975 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014976 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014977 &&
14978 (b = for_if_clauses_rule(p)) // for_if_clauses
14979 &&
14980 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14981 )
14982 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014983 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014984 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14985 if (_token == NULL) {
14986 D(p->level--);
14987 return NULL;
14988 }
14989 int _end_lineno = _token->end_lineno;
14990 UNUSED(_end_lineno); // Only used by EXTRA macro
14991 int _end_col_offset = _token->end_col_offset;
14992 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014993 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014994 if (_res == NULL && PyErr_Occurred()) {
14995 p->error_indicator = 1;
14996 D(p->level--);
14997 return NULL;
14998 }
14999 goto done;
15000 }
15001 p->mark = _mark;
15002 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015004 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015005 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015006 if (p->error_indicator) {
15007 D(p->level--);
15008 return NULL;
15009 }
15010 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15011 void *invalid_comprehension_var;
15012 if (
15013 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15014 )
15015 {
15016 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15017 _res = invalid_comprehension_var;
15018 goto done;
15019 }
15020 p->mark = _mark;
15021 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15023 }
15024 _res = NULL;
15025 done:
15026 D(p->level--);
15027 return _res;
15028}
15029
Pablo Galindoda743502021-04-15 14:06:39 +010015030// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015031static expr_ty
15032dict_rule(Parser *p)
15033{
15034 D(p->level++);
15035 if (p->error_indicator) {
15036 D(p->level--);
15037 return NULL;
15038 }
15039 expr_ty _res = NULL;
15040 int _mark = p->mark;
15041 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15042 p->error_indicator = 1;
15043 D(p->level--);
15044 return NULL;
15045 }
15046 int _start_lineno = p->tokens[_mark]->lineno;
15047 UNUSED(_start_lineno); // Only used by EXTRA macro
15048 int _start_col_offset = p->tokens[_mark]->col_offset;
15049 UNUSED(_start_col_offset); // Only used by EXTRA macro
15050 { // '{' double_starred_kvpairs? '}'
15051 if (p->error_indicator) {
15052 D(p->level--);
15053 return NULL;
15054 }
15055 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15056 Token * _literal;
15057 Token * _literal_1;
15058 void *a;
15059 if (
15060 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15061 &&
15062 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15063 &&
15064 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15065 )
15066 {
15067 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15068 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15069 if (_token == NULL) {
15070 D(p->level--);
15071 return NULL;
15072 }
15073 int _end_lineno = _token->end_lineno;
15074 UNUSED(_end_lineno); // Only used by EXTRA macro
15075 int _end_col_offset = _token->end_col_offset;
15076 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015077 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015078 if (_res == NULL && PyErr_Occurred()) {
15079 p->error_indicator = 1;
15080 D(p->level--);
15081 return NULL;
15082 }
15083 goto done;
15084 }
15085 p->mark = _mark;
15086 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15088 }
Pablo Galindoda743502021-04-15 14:06:39 +010015089 { // '{' invalid_double_starred_kvpairs '}'
15090 if (p->error_indicator) {
15091 D(p->level--);
15092 return NULL;
15093 }
15094 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15095 Token * _literal;
15096 Token * _literal_1;
15097 void *invalid_double_starred_kvpairs_var;
15098 if (
15099 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15100 &&
15101 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15102 &&
15103 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15104 )
15105 {
15106 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15107 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15108 goto done;
15109 }
15110 p->mark = _mark;
15111 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15113 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015114 _res = NULL;
15115 done:
15116 D(p->level--);
15117 return _res;
15118}
15119
15120// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15121static expr_ty
15122dictcomp_rule(Parser *p)
15123{
15124 D(p->level++);
15125 if (p->error_indicator) {
15126 D(p->level--);
15127 return NULL;
15128 }
15129 expr_ty _res = NULL;
15130 int _mark = p->mark;
15131 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15132 p->error_indicator = 1;
15133 D(p->level--);
15134 return NULL;
15135 }
15136 int _start_lineno = p->tokens[_mark]->lineno;
15137 UNUSED(_start_lineno); // Only used by EXTRA macro
15138 int _start_col_offset = p->tokens[_mark]->col_offset;
15139 UNUSED(_start_col_offset); // Only used by EXTRA macro
15140 { // '{' kvpair for_if_clauses '}'
15141 if (p->error_indicator) {
15142 D(p->level--);
15143 return NULL;
15144 }
15145 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15146 Token * _literal;
15147 Token * _literal_1;
15148 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015149 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015150 if (
15151 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15152 &&
15153 (a = kvpair_rule(p)) // kvpair
15154 &&
15155 (b = for_if_clauses_rule(p)) // for_if_clauses
15156 &&
15157 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15158 )
15159 {
15160 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15162 if (_token == NULL) {
15163 D(p->level--);
15164 return NULL;
15165 }
15166 int _end_lineno = _token->end_lineno;
15167 UNUSED(_end_lineno); // Only used by EXTRA macro
15168 int _end_col_offset = _token->end_col_offset;
15169 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015170 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015171 if (_res == NULL && PyErr_Occurred()) {
15172 p->error_indicator = 1;
15173 D(p->level--);
15174 return NULL;
15175 }
15176 goto done;
15177 }
15178 p->mark = _mark;
15179 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15181 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015182 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015183 if (p->error_indicator) {
15184 D(p->level--);
15185 return NULL;
15186 }
15187 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15188 void *invalid_dict_comprehension_var;
15189 if (
15190 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15191 )
15192 {
15193 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15194 _res = invalid_dict_comprehension_var;
15195 goto done;
15196 }
15197 p->mark = _mark;
15198 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15200 }
15201 _res = NULL;
15202 done:
15203 D(p->level--);
15204 return _res;
15205}
15206
15207// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15208static asdl_seq*
15209double_starred_kvpairs_rule(Parser *p)
15210{
15211 D(p->level++);
15212 if (p->error_indicator) {
15213 D(p->level--);
15214 return NULL;
15215 }
15216 asdl_seq* _res = NULL;
15217 int _mark = p->mark;
15218 { // ','.double_starred_kvpair+ ','?
15219 if (p->error_indicator) {
15220 D(p->level--);
15221 return NULL;
15222 }
15223 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15224 void *_opt_var;
15225 UNUSED(_opt_var); // Silence compiler warnings
15226 asdl_seq * a;
15227 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015228 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015229 &&
15230 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15231 )
15232 {
15233 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15234 _res = a;
15235 if (_res == NULL && PyErr_Occurred()) {
15236 p->error_indicator = 1;
15237 D(p->level--);
15238 return NULL;
15239 }
15240 goto done;
15241 }
15242 p->mark = _mark;
15243 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15245 }
15246 _res = NULL;
15247 done:
15248 D(p->level--);
15249 return _res;
15250}
15251
15252// double_starred_kvpair: '**' bitwise_or | kvpair
15253static KeyValuePair*
15254double_starred_kvpair_rule(Parser *p)
15255{
15256 D(p->level++);
15257 if (p->error_indicator) {
15258 D(p->level--);
15259 return NULL;
15260 }
15261 KeyValuePair* _res = NULL;
15262 int _mark = p->mark;
15263 { // '**' bitwise_or
15264 if (p->error_indicator) {
15265 D(p->level--);
15266 return NULL;
15267 }
15268 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15269 Token * _literal;
15270 expr_ty a;
15271 if (
15272 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15273 &&
15274 (a = bitwise_or_rule(p)) // bitwise_or
15275 )
15276 {
15277 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15278 _res = _PyPegen_key_value_pair ( p , NULL , a );
15279 if (_res == NULL && PyErr_Occurred()) {
15280 p->error_indicator = 1;
15281 D(p->level--);
15282 return NULL;
15283 }
15284 goto done;
15285 }
15286 p->mark = _mark;
15287 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15289 }
15290 { // kvpair
15291 if (p->error_indicator) {
15292 D(p->level--);
15293 return NULL;
15294 }
15295 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15296 KeyValuePair* kvpair_var;
15297 if (
15298 (kvpair_var = kvpair_rule(p)) // kvpair
15299 )
15300 {
15301 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15302 _res = kvpair_var;
15303 goto done;
15304 }
15305 p->mark = _mark;
15306 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15308 }
15309 _res = NULL;
15310 done:
15311 D(p->level--);
15312 return _res;
15313}
15314
15315// kvpair: expression ':' expression
15316static KeyValuePair*
15317kvpair_rule(Parser *p)
15318{
15319 D(p->level++);
15320 if (p->error_indicator) {
15321 D(p->level--);
15322 return NULL;
15323 }
15324 KeyValuePair* _res = NULL;
15325 int _mark = p->mark;
15326 { // expression ':' expression
15327 if (p->error_indicator) {
15328 D(p->level--);
15329 return NULL;
15330 }
15331 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15332 Token * _literal;
15333 expr_ty a;
15334 expr_ty b;
15335 if (
15336 (a = expression_rule(p)) // expression
15337 &&
15338 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15339 &&
15340 (b = expression_rule(p)) // expression
15341 )
15342 {
15343 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15344 _res = _PyPegen_key_value_pair ( p , a , b );
15345 if (_res == NULL && PyErr_Occurred()) {
15346 p->error_indicator = 1;
15347 D(p->level--);
15348 return NULL;
15349 }
15350 goto done;
15351 }
15352 p->mark = _mark;
15353 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15355 }
15356 _res = NULL;
15357 done:
15358 D(p->level--);
15359 return _res;
15360}
15361
15362// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015363static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015364for_if_clauses_rule(Parser *p)
15365{
15366 D(p->level++);
15367 if (p->error_indicator) {
15368 D(p->level--);
15369 return NULL;
15370 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015371 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015372 int _mark = p->mark;
15373 { // for_if_clause+
15374 if (p->error_indicator) {
15375 D(p->level--);
15376 return NULL;
15377 }
15378 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015379 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015380 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015381 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015382 )
15383 {
15384 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015385 _res = a;
15386 if (_res == NULL && PyErr_Occurred()) {
15387 p->error_indicator = 1;
15388 D(p->level--);
15389 return NULL;
15390 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015391 goto done;
15392 }
15393 p->mark = _mark;
15394 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15396 }
15397 _res = NULL;
15398 done:
15399 D(p->level--);
15400 return _res;
15401}
15402
15403// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015404// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15405// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15406// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015407static comprehension_ty
15408for_if_clause_rule(Parser *p)
15409{
15410 D(p->level++);
15411 if (p->error_indicator) {
15412 D(p->level--);
15413 return NULL;
15414 }
15415 comprehension_ty _res = NULL;
15416 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015417 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015418 if (p->error_indicator) {
15419 D(p->level--);
15420 return NULL;
15421 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015422 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15423 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015424 Token * _keyword;
15425 Token * _keyword_1;
15426 expr_ty a;
15427 Token * async_var;
15428 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015429 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015430 if (
15431 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15432 &&
15433 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15434 &&
15435 (a = star_targets_rule(p)) // star_targets
15436 &&
15437 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15438 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015439 (_cut_var = 1)
15440 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015441 (b = disjunction_rule(p)) // disjunction
15442 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015443 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015444 )
15445 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015446 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015447 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015448 if (_res == NULL && PyErr_Occurred()) {
15449 p->error_indicator = 1;
15450 D(p->level--);
15451 return NULL;
15452 }
15453 goto done;
15454 }
15455 p->mark = _mark;
15456 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15458 if (_cut_var) {
15459 D(p->level--);
15460 return NULL;
15461 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015462 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015463 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015464 if (p->error_indicator) {
15465 D(p->level--);
15466 return NULL;
15467 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015468 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15469 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015470 Token * _keyword;
15471 Token * _keyword_1;
15472 expr_ty a;
15473 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015474 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015475 if (
15476 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15477 &&
15478 (a = star_targets_rule(p)) // star_targets
15479 &&
15480 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15481 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015482 (_cut_var = 1)
15483 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015484 (b = disjunction_rule(p)) // disjunction
15485 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015486 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015487 )
15488 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015489 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015490 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015491 if (_res == NULL && PyErr_Occurred()) {
15492 p->error_indicator = 1;
15493 D(p->level--);
15494 return NULL;
15495 }
15496 goto done;
15497 }
15498 p->mark = _mark;
15499 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15501 if (_cut_var) {
15502 D(p->level--);
15503 return NULL;
15504 }
15505 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015506 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015507 if (p->error_indicator) {
15508 D(p->level--);
15509 return NULL;
15510 }
15511 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15512 void *invalid_for_target_var;
15513 if (
15514 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15515 )
15516 {
15517 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15518 _res = invalid_for_target_var;
15519 goto done;
15520 }
15521 p->mark = _mark;
15522 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015524 }
15525 _res = NULL;
15526 done:
15527 D(p->level--);
15528 return _res;
15529}
15530
15531// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15532static expr_ty
15533yield_expr_rule(Parser *p)
15534{
15535 D(p->level++);
15536 if (p->error_indicator) {
15537 D(p->level--);
15538 return NULL;
15539 }
15540 expr_ty _res = NULL;
15541 int _mark = p->mark;
15542 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15543 p->error_indicator = 1;
15544 D(p->level--);
15545 return NULL;
15546 }
15547 int _start_lineno = p->tokens[_mark]->lineno;
15548 UNUSED(_start_lineno); // Only used by EXTRA macro
15549 int _start_col_offset = p->tokens[_mark]->col_offset;
15550 UNUSED(_start_col_offset); // Only used by EXTRA macro
15551 { // 'yield' 'from' expression
15552 if (p->error_indicator) {
15553 D(p->level--);
15554 return NULL;
15555 }
15556 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15557 Token * _keyword;
15558 Token * _keyword_1;
15559 expr_ty a;
15560 if (
15561 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15562 &&
15563 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15564 &&
15565 (a = expression_rule(p)) // expression
15566 )
15567 {
15568 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15569 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15570 if (_token == NULL) {
15571 D(p->level--);
15572 return NULL;
15573 }
15574 int _end_lineno = _token->end_lineno;
15575 UNUSED(_end_lineno); // Only used by EXTRA macro
15576 int _end_col_offset = _token->end_col_offset;
15577 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015578 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015579 if (_res == NULL && PyErr_Occurred()) {
15580 p->error_indicator = 1;
15581 D(p->level--);
15582 return NULL;
15583 }
15584 goto done;
15585 }
15586 p->mark = _mark;
15587 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15589 }
15590 { // 'yield' star_expressions?
15591 if (p->error_indicator) {
15592 D(p->level--);
15593 return NULL;
15594 }
15595 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15596 Token * _keyword;
15597 void *a;
15598 if (
15599 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15600 &&
15601 (a = star_expressions_rule(p), 1) // star_expressions?
15602 )
15603 {
15604 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15606 if (_token == NULL) {
15607 D(p->level--);
15608 return NULL;
15609 }
15610 int _end_lineno = _token->end_lineno;
15611 UNUSED(_end_lineno); // Only used by EXTRA macro
15612 int _end_col_offset = _token->end_col_offset;
15613 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015614 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015615 if (_res == NULL && PyErr_Occurred()) {
15616 p->error_indicator = 1;
15617 D(p->level--);
15618 return NULL;
15619 }
15620 goto done;
15621 }
15622 p->mark = _mark;
15623 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15625 }
15626 _res = NULL;
15627 done:
15628 D(p->level--);
15629 return _res;
15630}
15631
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015632// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015633static expr_ty
15634arguments_rule(Parser *p)
15635{
15636 D(p->level++);
15637 if (p->error_indicator) {
15638 D(p->level--);
15639 return NULL;
15640 }
15641 expr_ty _res = NULL;
15642 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15643 D(p->level--);
15644 return _res;
15645 }
15646 int _mark = p->mark;
15647 { // args ','? &')'
15648 if (p->error_indicator) {
15649 D(p->level--);
15650 return NULL;
15651 }
15652 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15653 void *_opt_var;
15654 UNUSED(_opt_var); // Silence compiler warnings
15655 expr_ty a;
15656 if (
15657 (a = args_rule(p)) // args
15658 &&
15659 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15660 &&
15661 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15662 )
15663 {
15664 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15665 _res = a;
15666 if (_res == NULL && PyErr_Occurred()) {
15667 p->error_indicator = 1;
15668 D(p->level--);
15669 return NULL;
15670 }
15671 goto done;
15672 }
15673 p->mark = _mark;
15674 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15676 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015677 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015678 if (p->error_indicator) {
15679 D(p->level--);
15680 return NULL;
15681 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015682 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15683 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015684 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015685 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015686 )
15687 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015688 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15689 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015690 goto done;
15691 }
15692 p->mark = _mark;
15693 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015695 }
15696 _res = NULL;
15697 done:
15698 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15699 D(p->level--);
15700 return _res;
15701}
15702
Pablo Galindod9151cb2021-04-13 02:32:33 +010015703// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015704static expr_ty
15705args_rule(Parser *p)
15706{
15707 D(p->level++);
15708 if (p->error_indicator) {
15709 D(p->level--);
15710 return NULL;
15711 }
15712 expr_ty _res = NULL;
15713 int _mark = p->mark;
15714 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15715 p->error_indicator = 1;
15716 D(p->level--);
15717 return NULL;
15718 }
15719 int _start_lineno = p->tokens[_mark]->lineno;
15720 UNUSED(_start_lineno); // Only used by EXTRA macro
15721 int _start_col_offset = p->tokens[_mark]->col_offset;
15722 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010015723 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015724 if (p->error_indicator) {
15725 D(p->level--);
15726 return NULL;
15727 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010015728 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015729 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015730 void *b;
15731 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015732 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015733 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015734 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015735 )
15736 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015737 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015738 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15739 if (_token == NULL) {
15740 D(p->level--);
15741 return NULL;
15742 }
15743 int _end_lineno = _token->end_lineno;
15744 UNUSED(_end_lineno); // Only used by EXTRA macro
15745 int _end_col_offset = _token->end_col_offset;
15746 UNUSED(_end_col_offset); // Only used by EXTRA macro
15747 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015748 if (_res == NULL && PyErr_Occurred()) {
15749 p->error_indicator = 1;
15750 D(p->level--);
15751 return NULL;
15752 }
15753 goto done;
15754 }
15755 p->mark = _mark;
15756 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015758 }
15759 { // kwargs
15760 if (p->error_indicator) {
15761 D(p->level--);
15762 return NULL;
15763 }
15764 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15765 asdl_seq* a;
15766 if (
15767 (a = kwargs_rule(p)) // kwargs
15768 )
15769 {
15770 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15771 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15772 if (_token == NULL) {
15773 D(p->level--);
15774 return NULL;
15775 }
15776 int _end_lineno = _token->end_lineno;
15777 UNUSED(_end_lineno); // Only used by EXTRA macro
15778 int _end_col_offset = _token->end_col_offset;
15779 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015780 _res = _PyAST_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( asdl_expr_seq * , _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( asdl_keyword_seq * , _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015781 if (_res == NULL && PyErr_Occurred()) {
15782 p->error_indicator = 1;
15783 D(p->level--);
15784 return NULL;
15785 }
15786 goto done;
15787 }
15788 p->mark = _mark;
15789 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15791 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015792 _res = NULL;
15793 done:
15794 D(p->level--);
15795 return _res;
15796}
15797
15798// kwargs:
15799// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15800// | ','.kwarg_or_starred+
15801// | ','.kwarg_or_double_starred+
15802static asdl_seq*
15803kwargs_rule(Parser *p)
15804{
15805 D(p->level++);
15806 if (p->error_indicator) {
15807 D(p->level--);
15808 return NULL;
15809 }
15810 asdl_seq* _res = NULL;
15811 int _mark = p->mark;
15812 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15813 if (p->error_indicator) {
15814 D(p->level--);
15815 return NULL;
15816 }
15817 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15818 Token * _literal;
15819 asdl_seq * a;
15820 asdl_seq * b;
15821 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015822 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015823 &&
15824 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15825 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015826 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015827 )
15828 {
15829 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15830 _res = _PyPegen_join_sequences ( p , a , b );
15831 if (_res == NULL && PyErr_Occurred()) {
15832 p->error_indicator = 1;
15833 D(p->level--);
15834 return NULL;
15835 }
15836 goto done;
15837 }
15838 p->mark = _mark;
15839 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15841 }
15842 { // ','.kwarg_or_starred+
15843 if (p->error_indicator) {
15844 D(p->level--);
15845 return NULL;
15846 }
15847 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015848 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015849 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015850 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015851 )
15852 {
15853 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015854 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015855 goto done;
15856 }
15857 p->mark = _mark;
15858 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15860 }
15861 { // ','.kwarg_or_double_starred+
15862 if (p->error_indicator) {
15863 D(p->level--);
15864 return NULL;
15865 }
15866 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015867 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015868 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015869 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015870 )
15871 {
15872 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015873 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015874 goto done;
15875 }
15876 p->mark = _mark;
15877 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15879 }
15880 _res = NULL;
15881 done:
15882 D(p->level--);
15883 return _res;
15884}
15885
15886// starred_expression: '*' expression
15887static expr_ty
15888starred_expression_rule(Parser *p)
15889{
15890 D(p->level++);
15891 if (p->error_indicator) {
15892 D(p->level--);
15893 return NULL;
15894 }
15895 expr_ty _res = NULL;
15896 int _mark = p->mark;
15897 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15898 p->error_indicator = 1;
15899 D(p->level--);
15900 return NULL;
15901 }
15902 int _start_lineno = p->tokens[_mark]->lineno;
15903 UNUSED(_start_lineno); // Only used by EXTRA macro
15904 int _start_col_offset = p->tokens[_mark]->col_offset;
15905 UNUSED(_start_col_offset); // Only used by EXTRA macro
15906 { // '*' expression
15907 if (p->error_indicator) {
15908 D(p->level--);
15909 return NULL;
15910 }
15911 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15912 Token * _literal;
15913 expr_ty a;
15914 if (
15915 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15916 &&
15917 (a = expression_rule(p)) // expression
15918 )
15919 {
15920 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15922 if (_token == NULL) {
15923 D(p->level--);
15924 return NULL;
15925 }
15926 int _end_lineno = _token->end_lineno;
15927 UNUSED(_end_lineno); // Only used by EXTRA macro
15928 int _end_col_offset = _token->end_col_offset;
15929 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015930 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015931 if (_res == NULL && PyErr_Occurred()) {
15932 p->error_indicator = 1;
15933 D(p->level--);
15934 return NULL;
15935 }
15936 goto done;
15937 }
15938 p->mark = _mark;
15939 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15941 }
15942 _res = NULL;
15943 done:
15944 D(p->level--);
15945 return _res;
15946}
15947
15948// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15949static KeywordOrStarred*
15950kwarg_or_starred_rule(Parser *p)
15951{
15952 D(p->level++);
15953 if (p->error_indicator) {
15954 D(p->level--);
15955 return NULL;
15956 }
15957 KeywordOrStarred* _res = NULL;
15958 int _mark = p->mark;
15959 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15960 p->error_indicator = 1;
15961 D(p->level--);
15962 return NULL;
15963 }
15964 int _start_lineno = p->tokens[_mark]->lineno;
15965 UNUSED(_start_lineno); // Only used by EXTRA macro
15966 int _start_col_offset = p->tokens[_mark]->col_offset;
15967 UNUSED(_start_col_offset); // Only used by EXTRA macro
15968 { // NAME '=' expression
15969 if (p->error_indicator) {
15970 D(p->level--);
15971 return NULL;
15972 }
15973 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15974 Token * _literal;
15975 expr_ty a;
15976 expr_ty b;
15977 if (
15978 (a = _PyPegen_name_token(p)) // NAME
15979 &&
15980 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15981 &&
15982 (b = expression_rule(p)) // expression
15983 )
15984 {
15985 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15986 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15987 if (_token == NULL) {
15988 D(p->level--);
15989 return NULL;
15990 }
15991 int _end_lineno = _token->end_lineno;
15992 UNUSED(_end_lineno); // Only used by EXTRA macro
15993 int _end_col_offset = _token->end_col_offset;
15994 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015995 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015996 if (_res == NULL && PyErr_Occurred()) {
15997 p->error_indicator = 1;
15998 D(p->level--);
15999 return NULL;
16000 }
16001 goto done;
16002 }
16003 p->mark = _mark;
16004 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16006 }
16007 { // starred_expression
16008 if (p->error_indicator) {
16009 D(p->level--);
16010 return NULL;
16011 }
16012 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16013 expr_ty a;
16014 if (
16015 (a = starred_expression_rule(p)) // starred_expression
16016 )
16017 {
16018 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16019 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16020 if (_res == NULL && PyErr_Occurred()) {
16021 p->error_indicator = 1;
16022 D(p->level--);
16023 return NULL;
16024 }
16025 goto done;
16026 }
16027 p->mark = _mark;
16028 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16030 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016031 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016032 if (p->error_indicator) {
16033 D(p->level--);
16034 return NULL;
16035 }
16036 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16037 void *invalid_kwarg_var;
16038 if (
16039 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16040 )
16041 {
16042 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16043 _res = invalid_kwarg_var;
16044 goto done;
16045 }
16046 p->mark = _mark;
16047 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16049 }
16050 _res = NULL;
16051 done:
16052 D(p->level--);
16053 return _res;
16054}
16055
16056// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
16057static KeywordOrStarred*
16058kwarg_or_double_starred_rule(Parser *p)
16059{
16060 D(p->level++);
16061 if (p->error_indicator) {
16062 D(p->level--);
16063 return NULL;
16064 }
16065 KeywordOrStarred* _res = NULL;
16066 int _mark = p->mark;
16067 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16068 p->error_indicator = 1;
16069 D(p->level--);
16070 return NULL;
16071 }
16072 int _start_lineno = p->tokens[_mark]->lineno;
16073 UNUSED(_start_lineno); // Only used by EXTRA macro
16074 int _start_col_offset = p->tokens[_mark]->col_offset;
16075 UNUSED(_start_col_offset); // Only used by EXTRA macro
16076 { // NAME '=' expression
16077 if (p->error_indicator) {
16078 D(p->level--);
16079 return NULL;
16080 }
16081 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16082 Token * _literal;
16083 expr_ty a;
16084 expr_ty b;
16085 if (
16086 (a = _PyPegen_name_token(p)) // NAME
16087 &&
16088 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16089 &&
16090 (b = expression_rule(p)) // expression
16091 )
16092 {
16093 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16094 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16095 if (_token == NULL) {
16096 D(p->level--);
16097 return NULL;
16098 }
16099 int _end_lineno = _token->end_lineno;
16100 UNUSED(_end_lineno); // Only used by EXTRA macro
16101 int _end_col_offset = _token->end_col_offset;
16102 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016103 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016104 if (_res == NULL && PyErr_Occurred()) {
16105 p->error_indicator = 1;
16106 D(p->level--);
16107 return NULL;
16108 }
16109 goto done;
16110 }
16111 p->mark = _mark;
16112 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16114 }
16115 { // '**' expression
16116 if (p->error_indicator) {
16117 D(p->level--);
16118 return NULL;
16119 }
16120 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16121 Token * _literal;
16122 expr_ty a;
16123 if (
16124 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16125 &&
16126 (a = expression_rule(p)) // expression
16127 )
16128 {
16129 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16131 if (_token == NULL) {
16132 D(p->level--);
16133 return NULL;
16134 }
16135 int _end_lineno = _token->end_lineno;
16136 UNUSED(_end_lineno); // Only used by EXTRA macro
16137 int _end_col_offset = _token->end_col_offset;
16138 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016139 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016140 if (_res == NULL && PyErr_Occurred()) {
16141 p->error_indicator = 1;
16142 D(p->level--);
16143 return NULL;
16144 }
16145 goto done;
16146 }
16147 p->mark = _mark;
16148 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16150 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016151 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016152 if (p->error_indicator) {
16153 D(p->level--);
16154 return NULL;
16155 }
16156 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16157 void *invalid_kwarg_var;
16158 if (
16159 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16160 )
16161 {
16162 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16163 _res = invalid_kwarg_var;
16164 goto done;
16165 }
16166 p->mark = _mark;
16167 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16169 }
16170 _res = NULL;
16171 done:
16172 D(p->level--);
16173 return _res;
16174}
16175
16176// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16177static expr_ty
16178star_targets_rule(Parser *p)
16179{
16180 D(p->level++);
16181 if (p->error_indicator) {
16182 D(p->level--);
16183 return NULL;
16184 }
16185 expr_ty _res = NULL;
16186 int _mark = p->mark;
16187 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16188 p->error_indicator = 1;
16189 D(p->level--);
16190 return NULL;
16191 }
16192 int _start_lineno = p->tokens[_mark]->lineno;
16193 UNUSED(_start_lineno); // Only used by EXTRA macro
16194 int _start_col_offset = p->tokens[_mark]->col_offset;
16195 UNUSED(_start_col_offset); // Only used by EXTRA macro
16196 { // star_target !','
16197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
16200 }
16201 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16202 expr_ty a;
16203 if (
16204 (a = star_target_rule(p)) // star_target
16205 &&
16206 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16207 )
16208 {
16209 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16210 _res = a;
16211 if (_res == NULL && PyErr_Occurred()) {
16212 p->error_indicator = 1;
16213 D(p->level--);
16214 return NULL;
16215 }
16216 goto done;
16217 }
16218 p->mark = _mark;
16219 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16221 }
16222 { // star_target ((',' star_target))* ','?
16223 if (p->error_indicator) {
16224 D(p->level--);
16225 return NULL;
16226 }
16227 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16228 void *_opt_var;
16229 UNUSED(_opt_var); // Silence compiler warnings
16230 expr_ty a;
16231 asdl_seq * b;
16232 if (
16233 (a = star_target_rule(p)) // star_target
16234 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016235 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016236 &&
16237 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16238 )
16239 {
16240 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16241 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16242 if (_token == NULL) {
16243 D(p->level--);
16244 return NULL;
16245 }
16246 int _end_lineno = _token->end_lineno;
16247 UNUSED(_end_lineno); // Only used by EXTRA macro
16248 int _end_col_offset = _token->end_col_offset;
16249 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016250 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016251 if (_res == NULL && PyErr_Occurred()) {
16252 p->error_indicator = 1;
16253 D(p->level--);
16254 return NULL;
16255 }
16256 goto done;
16257 }
16258 p->mark = _mark;
16259 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16261 }
16262 _res = NULL;
16263 done:
16264 D(p->level--);
16265 return _res;
16266}
16267
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016268// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016269static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016270star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016271{
16272 D(p->level++);
16273 if (p->error_indicator) {
16274 D(p->level--);
16275 return NULL;
16276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016277 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016278 int _mark = p->mark;
16279 { // ','.star_target+ ','?
16280 if (p->error_indicator) {
16281 D(p->level--);
16282 return NULL;
16283 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016284 D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016285 void *_opt_var;
16286 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016287 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016288 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016289 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016290 &&
16291 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16292 )
16293 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016294 D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016295 _res = a;
16296 if (_res == NULL && PyErr_Occurred()) {
16297 p->error_indicator = 1;
16298 D(p->level--);
16299 return NULL;
16300 }
16301 goto done;
16302 }
16303 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016304 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16306 }
16307 _res = NULL;
16308 done:
16309 D(p->level--);
16310 return _res;
16311}
16312
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016313// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16314static asdl_expr_seq*
16315star_targets_tuple_seq_rule(Parser *p)
16316{
16317 D(p->level++);
16318 if (p->error_indicator) {
16319 D(p->level--);
16320 return NULL;
16321 }
16322 asdl_expr_seq* _res = NULL;
16323 int _mark = p->mark;
16324 { // star_target ((',' star_target))+ ','?
16325 if (p->error_indicator) {
16326 D(p->level--);
16327 return NULL;
16328 }
16329 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16330 void *_opt_var;
16331 UNUSED(_opt_var); // Silence compiler warnings
16332 expr_ty a;
16333 asdl_seq * b;
16334 if (
16335 (a = star_target_rule(p)) // star_target
16336 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016337 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016338 &&
16339 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16340 )
16341 {
16342 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16343 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16344 if (_res == NULL && PyErr_Occurred()) {
16345 p->error_indicator = 1;
16346 D(p->level--);
16347 return NULL;
16348 }
16349 goto done;
16350 }
16351 p->mark = _mark;
16352 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16354 }
16355 { // star_target ','
16356 if (p->error_indicator) {
16357 D(p->level--);
16358 return NULL;
16359 }
16360 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16361 Token * _literal;
16362 expr_ty a;
16363 if (
16364 (a = star_target_rule(p)) // star_target
16365 &&
16366 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16367 )
16368 {
16369 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16370 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16371 if (_res == NULL && PyErr_Occurred()) {
16372 p->error_indicator = 1;
16373 D(p->level--);
16374 return NULL;
16375 }
16376 goto done;
16377 }
16378 p->mark = _mark;
16379 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16381 }
16382 _res = NULL;
16383 done:
16384 D(p->level--);
16385 return _res;
16386}
16387
16388// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016389static expr_ty
16390star_target_rule(Parser *p)
16391{
16392 D(p->level++);
16393 if (p->error_indicator) {
16394 D(p->level--);
16395 return NULL;
16396 }
16397 expr_ty _res = NULL;
16398 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16399 D(p->level--);
16400 return _res;
16401 }
16402 int _mark = p->mark;
16403 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16404 p->error_indicator = 1;
16405 D(p->level--);
16406 return NULL;
16407 }
16408 int _start_lineno = p->tokens[_mark]->lineno;
16409 UNUSED(_start_lineno); // Only used by EXTRA macro
16410 int _start_col_offset = p->tokens[_mark]->col_offset;
16411 UNUSED(_start_col_offset); // Only used by EXTRA macro
16412 { // '*' (!'*' star_target)
16413 if (p->error_indicator) {
16414 D(p->level--);
16415 return NULL;
16416 }
16417 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16418 Token * _literal;
16419 void *a;
16420 if (
16421 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16422 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016423 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016424 )
16425 {
16426 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16428 if (_token == NULL) {
16429 D(p->level--);
16430 return NULL;
16431 }
16432 int _end_lineno = _token->end_lineno;
16433 UNUSED(_end_lineno); // Only used by EXTRA macro
16434 int _end_col_offset = _token->end_col_offset;
16435 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016436 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016437 if (_res == NULL && PyErr_Occurred()) {
16438 p->error_indicator = 1;
16439 D(p->level--);
16440 return NULL;
16441 }
16442 goto done;
16443 }
16444 p->mark = _mark;
16445 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16447 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016448 { // target_with_star_atom
16449 if (p->error_indicator) {
16450 D(p->level--);
16451 return NULL;
16452 }
16453 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16454 expr_ty target_with_star_atom_var;
16455 if (
16456 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16457 )
16458 {
16459 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16460 _res = target_with_star_atom_var;
16461 goto done;
16462 }
16463 p->mark = _mark;
16464 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16466 }
16467 _res = NULL;
16468 done:
16469 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16470 D(p->level--);
16471 return _res;
16472}
16473
16474// target_with_star_atom:
16475// | t_primary '.' NAME !t_lookahead
16476// | t_primary '[' slices ']' !t_lookahead
16477// | star_atom
16478static expr_ty
16479target_with_star_atom_rule(Parser *p)
16480{
16481 D(p->level++);
16482 if (p->error_indicator) {
16483 D(p->level--);
16484 return NULL;
16485 }
16486 expr_ty _res = NULL;
16487 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16488 D(p->level--);
16489 return _res;
16490 }
16491 int _mark = p->mark;
16492 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16493 p->error_indicator = 1;
16494 D(p->level--);
16495 return NULL;
16496 }
16497 int _start_lineno = p->tokens[_mark]->lineno;
16498 UNUSED(_start_lineno); // Only used by EXTRA macro
16499 int _start_col_offset = p->tokens[_mark]->col_offset;
16500 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016501 { // t_primary '.' NAME !t_lookahead
16502 if (p->error_indicator) {
16503 D(p->level--);
16504 return NULL;
16505 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016506 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016507 Token * _literal;
16508 expr_ty a;
16509 expr_ty b;
16510 if (
16511 (a = t_primary_rule(p)) // t_primary
16512 &&
16513 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16514 &&
16515 (b = _PyPegen_name_token(p)) // NAME
16516 &&
16517 _PyPegen_lookahead(0, t_lookahead_rule, p)
16518 )
16519 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016520 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016521 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16522 if (_token == NULL) {
16523 D(p->level--);
16524 return NULL;
16525 }
16526 int _end_lineno = _token->end_lineno;
16527 UNUSED(_end_lineno); // Only used by EXTRA macro
16528 int _end_col_offset = _token->end_col_offset;
16529 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016530 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016531 if (_res == NULL && PyErr_Occurred()) {
16532 p->error_indicator = 1;
16533 D(p->level--);
16534 return NULL;
16535 }
16536 goto done;
16537 }
16538 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016539 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16541 }
16542 { // t_primary '[' slices ']' !t_lookahead
16543 if (p->error_indicator) {
16544 D(p->level--);
16545 return NULL;
16546 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016547 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016548 Token * _literal;
16549 Token * _literal_1;
16550 expr_ty a;
16551 expr_ty b;
16552 if (
16553 (a = t_primary_rule(p)) // t_primary
16554 &&
16555 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16556 &&
16557 (b = slices_rule(p)) // slices
16558 &&
16559 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16560 &&
16561 _PyPegen_lookahead(0, t_lookahead_rule, p)
16562 )
16563 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016564 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16566 if (_token == NULL) {
16567 D(p->level--);
16568 return NULL;
16569 }
16570 int _end_lineno = _token->end_lineno;
16571 UNUSED(_end_lineno); // Only used by EXTRA macro
16572 int _end_col_offset = _token->end_col_offset;
16573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016574 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016575 if (_res == NULL && PyErr_Occurred()) {
16576 p->error_indicator = 1;
16577 D(p->level--);
16578 return NULL;
16579 }
16580 goto done;
16581 }
16582 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016583 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16585 }
16586 { // star_atom
16587 if (p->error_indicator) {
16588 D(p->level--);
16589 return NULL;
16590 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016591 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016592 expr_ty star_atom_var;
16593 if (
16594 (star_atom_var = star_atom_rule(p)) // star_atom
16595 )
16596 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016597 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016598 _res = star_atom_var;
16599 goto done;
16600 }
16601 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016602 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16604 }
16605 _res = NULL;
16606 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016607 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016608 D(p->level--);
16609 return _res;
16610}
16611
16612// star_atom:
16613// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016614// | '(' target_with_star_atom ')'
16615// | '(' star_targets_tuple_seq? ')'
16616// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016617static expr_ty
16618star_atom_rule(Parser *p)
16619{
16620 D(p->level++);
16621 if (p->error_indicator) {
16622 D(p->level--);
16623 return NULL;
16624 }
16625 expr_ty _res = NULL;
16626 int _mark = p->mark;
16627 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16628 p->error_indicator = 1;
16629 D(p->level--);
16630 return NULL;
16631 }
16632 int _start_lineno = p->tokens[_mark]->lineno;
16633 UNUSED(_start_lineno); // Only used by EXTRA macro
16634 int _start_col_offset = p->tokens[_mark]->col_offset;
16635 UNUSED(_start_col_offset); // Only used by EXTRA macro
16636 { // NAME
16637 if (p->error_indicator) {
16638 D(p->level--);
16639 return NULL;
16640 }
16641 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16642 expr_ty a;
16643 if (
16644 (a = _PyPegen_name_token(p)) // NAME
16645 )
16646 {
16647 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16648 _res = _PyPegen_set_expr_context ( p , a , Store );
16649 if (_res == NULL && PyErr_Occurred()) {
16650 p->error_indicator = 1;
16651 D(p->level--);
16652 return NULL;
16653 }
16654 goto done;
16655 }
16656 p->mark = _mark;
16657 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16659 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016660 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016661 if (p->error_indicator) {
16662 D(p->level--);
16663 return NULL;
16664 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016665 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016666 Token * _literal;
16667 Token * _literal_1;
16668 expr_ty a;
16669 if (
16670 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16671 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016672 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016673 &&
16674 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16675 )
16676 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016677 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016678 _res = _PyPegen_set_expr_context ( p , a , Store );
16679 if (_res == NULL && PyErr_Occurred()) {
16680 p->error_indicator = 1;
16681 D(p->level--);
16682 return NULL;
16683 }
16684 goto done;
16685 }
16686 p->mark = _mark;
16687 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016689 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016690 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016691 if (p->error_indicator) {
16692 D(p->level--);
16693 return NULL;
16694 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016695 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016696 Token * _literal;
16697 Token * _literal_1;
16698 void *a;
16699 if (
16700 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16701 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016702 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016703 &&
16704 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16705 )
16706 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016707 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16709 if (_token == NULL) {
16710 D(p->level--);
16711 return NULL;
16712 }
16713 int _end_lineno = _token->end_lineno;
16714 UNUSED(_end_lineno); // Only used by EXTRA macro
16715 int _end_col_offset = _token->end_col_offset;
16716 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016717 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016718 if (_res == NULL && PyErr_Occurred()) {
16719 p->error_indicator = 1;
16720 D(p->level--);
16721 return NULL;
16722 }
16723 goto done;
16724 }
16725 p->mark = _mark;
16726 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016728 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016729 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016730 if (p->error_indicator) {
16731 D(p->level--);
16732 return NULL;
16733 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016734 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016735 Token * _literal;
16736 Token * _literal_1;
16737 void *a;
16738 if (
16739 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16740 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016741 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016742 &&
16743 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16744 )
16745 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016746 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16748 if (_token == NULL) {
16749 D(p->level--);
16750 return NULL;
16751 }
16752 int _end_lineno = _token->end_lineno;
16753 UNUSED(_end_lineno); // Only used by EXTRA macro
16754 int _end_col_offset = _token->end_col_offset;
16755 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016756 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016757 if (_res == NULL && PyErr_Occurred()) {
16758 p->error_indicator = 1;
16759 D(p->level--);
16760 return NULL;
16761 }
16762 goto done;
16763 }
16764 p->mark = _mark;
16765 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016767 }
16768 _res = NULL;
16769 done:
16770 D(p->level--);
16771 return _res;
16772}
16773
16774// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16775static expr_ty
16776single_target_rule(Parser *p)
16777{
16778 D(p->level++);
16779 if (p->error_indicator) {
16780 D(p->level--);
16781 return NULL;
16782 }
16783 expr_ty _res = NULL;
16784 int _mark = p->mark;
16785 { // single_subscript_attribute_target
16786 if (p->error_indicator) {
16787 D(p->level--);
16788 return NULL;
16789 }
16790 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16791 expr_ty single_subscript_attribute_target_var;
16792 if (
16793 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16794 )
16795 {
16796 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16797 _res = single_subscript_attribute_target_var;
16798 goto done;
16799 }
16800 p->mark = _mark;
16801 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16803 }
16804 { // NAME
16805 if (p->error_indicator) {
16806 D(p->level--);
16807 return NULL;
16808 }
16809 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16810 expr_ty a;
16811 if (
16812 (a = _PyPegen_name_token(p)) // NAME
16813 )
16814 {
16815 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16816 _res = _PyPegen_set_expr_context ( p , a , Store );
16817 if (_res == NULL && PyErr_Occurred()) {
16818 p->error_indicator = 1;
16819 D(p->level--);
16820 return NULL;
16821 }
16822 goto done;
16823 }
16824 p->mark = _mark;
16825 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16827 }
16828 { // '(' single_target ')'
16829 if (p->error_indicator) {
16830 D(p->level--);
16831 return NULL;
16832 }
16833 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16834 Token * _literal;
16835 Token * _literal_1;
16836 expr_ty a;
16837 if (
16838 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16839 &&
16840 (a = single_target_rule(p)) // single_target
16841 &&
16842 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16843 )
16844 {
16845 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16846 _res = a;
16847 if (_res == NULL && PyErr_Occurred()) {
16848 p->error_indicator = 1;
16849 D(p->level--);
16850 return NULL;
16851 }
16852 goto done;
16853 }
16854 p->mark = _mark;
16855 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16857 }
16858 _res = NULL;
16859 done:
16860 D(p->level--);
16861 return _res;
16862}
16863
16864// single_subscript_attribute_target:
16865// | t_primary '.' NAME !t_lookahead
16866// | t_primary '[' slices ']' !t_lookahead
16867static expr_ty
16868single_subscript_attribute_target_rule(Parser *p)
16869{
16870 D(p->level++);
16871 if (p->error_indicator) {
16872 D(p->level--);
16873 return NULL;
16874 }
16875 expr_ty _res = NULL;
16876 int _mark = p->mark;
16877 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16878 p->error_indicator = 1;
16879 D(p->level--);
16880 return NULL;
16881 }
16882 int _start_lineno = p->tokens[_mark]->lineno;
16883 UNUSED(_start_lineno); // Only used by EXTRA macro
16884 int _start_col_offset = p->tokens[_mark]->col_offset;
16885 UNUSED(_start_col_offset); // Only used by EXTRA macro
16886 { // t_primary '.' NAME !t_lookahead
16887 if (p->error_indicator) {
16888 D(p->level--);
16889 return NULL;
16890 }
16891 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16892 Token * _literal;
16893 expr_ty a;
16894 expr_ty b;
16895 if (
16896 (a = t_primary_rule(p)) // t_primary
16897 &&
16898 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16899 &&
16900 (b = _PyPegen_name_token(p)) // NAME
16901 &&
16902 _PyPegen_lookahead(0, t_lookahead_rule, p)
16903 )
16904 {
16905 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16907 if (_token == NULL) {
16908 D(p->level--);
16909 return NULL;
16910 }
16911 int _end_lineno = _token->end_lineno;
16912 UNUSED(_end_lineno); // Only used by EXTRA macro
16913 int _end_col_offset = _token->end_col_offset;
16914 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016915 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016916 if (_res == NULL && PyErr_Occurred()) {
16917 p->error_indicator = 1;
16918 D(p->level--);
16919 return NULL;
16920 }
16921 goto done;
16922 }
16923 p->mark = _mark;
16924 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16926 }
16927 { // t_primary '[' slices ']' !t_lookahead
16928 if (p->error_indicator) {
16929 D(p->level--);
16930 return NULL;
16931 }
16932 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16933 Token * _literal;
16934 Token * _literal_1;
16935 expr_ty a;
16936 expr_ty b;
16937 if (
16938 (a = t_primary_rule(p)) // t_primary
16939 &&
16940 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16941 &&
16942 (b = slices_rule(p)) // slices
16943 &&
16944 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16945 &&
16946 _PyPegen_lookahead(0, t_lookahead_rule, p)
16947 )
16948 {
16949 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16951 if (_token == NULL) {
16952 D(p->level--);
16953 return NULL;
16954 }
16955 int _end_lineno = _token->end_lineno;
16956 UNUSED(_end_lineno); // Only used by EXTRA macro
16957 int _end_col_offset = _token->end_col_offset;
16958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016959 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016960 if (_res == NULL && PyErr_Occurred()) {
16961 p->error_indicator = 1;
16962 D(p->level--);
16963 return NULL;
16964 }
16965 goto done;
16966 }
16967 p->mark = _mark;
16968 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16970 }
16971 _res = NULL;
16972 done:
16973 D(p->level--);
16974 return _res;
16975}
16976
16977// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016978static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016979del_targets_rule(Parser *p)
16980{
16981 D(p->level++);
16982 if (p->error_indicator) {
16983 D(p->level--);
16984 return NULL;
16985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016986 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016987 int _mark = p->mark;
16988 { // ','.del_target+ ','?
16989 if (p->error_indicator) {
16990 D(p->level--);
16991 return NULL;
16992 }
16993 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16994 void *_opt_var;
16995 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016996 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016997 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016998 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016999 &&
17000 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17001 )
17002 {
17003 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17004 _res = a;
17005 if (_res == NULL && PyErr_Occurred()) {
17006 p->error_indicator = 1;
17007 D(p->level--);
17008 return NULL;
17009 }
17010 goto done;
17011 }
17012 p->mark = _mark;
17013 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17015 }
17016 _res = NULL;
17017 done:
17018 D(p->level--);
17019 return _res;
17020}
17021
17022// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017023// | t_primary '.' NAME !t_lookahead
17024// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017025// | del_t_atom
17026static expr_ty
17027del_target_rule(Parser *p)
17028{
17029 D(p->level++);
17030 if (p->error_indicator) {
17031 D(p->level--);
17032 return NULL;
17033 }
17034 expr_ty _res = NULL;
17035 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17036 D(p->level--);
17037 return _res;
17038 }
17039 int _mark = p->mark;
17040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17041 p->error_indicator = 1;
17042 D(p->level--);
17043 return NULL;
17044 }
17045 int _start_lineno = p->tokens[_mark]->lineno;
17046 UNUSED(_start_lineno); // Only used by EXTRA macro
17047 int _start_col_offset = p->tokens[_mark]->col_offset;
17048 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017049 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017050 if (p->error_indicator) {
17051 D(p->level--);
17052 return NULL;
17053 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017054 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017055 Token * _literal;
17056 expr_ty a;
17057 expr_ty b;
17058 if (
17059 (a = t_primary_rule(p)) // t_primary
17060 &&
17061 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17062 &&
17063 (b = _PyPegen_name_token(p)) // NAME
17064 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017065 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017066 )
17067 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017068 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17070 if (_token == NULL) {
17071 D(p->level--);
17072 return NULL;
17073 }
17074 int _end_lineno = _token->end_lineno;
17075 UNUSED(_end_lineno); // Only used by EXTRA macro
17076 int _end_col_offset = _token->end_col_offset;
17077 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017078 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017079 if (_res == NULL && PyErr_Occurred()) {
17080 p->error_indicator = 1;
17081 D(p->level--);
17082 return NULL;
17083 }
17084 goto done;
17085 }
17086 p->mark = _mark;
17087 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017089 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017090 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017091 if (p->error_indicator) {
17092 D(p->level--);
17093 return NULL;
17094 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017095 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017096 Token * _literal;
17097 Token * _literal_1;
17098 expr_ty a;
17099 expr_ty b;
17100 if (
17101 (a = t_primary_rule(p)) // t_primary
17102 &&
17103 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17104 &&
17105 (b = slices_rule(p)) // slices
17106 &&
17107 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17108 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017109 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017110 )
17111 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017112 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017113 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17114 if (_token == NULL) {
17115 D(p->level--);
17116 return NULL;
17117 }
17118 int _end_lineno = _token->end_lineno;
17119 UNUSED(_end_lineno); // Only used by EXTRA macro
17120 int _end_col_offset = _token->end_col_offset;
17121 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017122 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017123 if (_res == NULL && PyErr_Occurred()) {
17124 p->error_indicator = 1;
17125 D(p->level--);
17126 return NULL;
17127 }
17128 goto done;
17129 }
17130 p->mark = _mark;
17131 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017133 }
17134 { // del_t_atom
17135 if (p->error_indicator) {
17136 D(p->level--);
17137 return NULL;
17138 }
17139 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17140 expr_ty del_t_atom_var;
17141 if (
17142 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17143 )
17144 {
17145 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17146 _res = del_t_atom_var;
17147 goto done;
17148 }
17149 p->mark = _mark;
17150 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17152 }
17153 _res = NULL;
17154 done:
17155 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17156 D(p->level--);
17157 return _res;
17158}
17159
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017160// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017161static expr_ty
17162del_t_atom_rule(Parser *p)
17163{
17164 D(p->level++);
17165 if (p->error_indicator) {
17166 D(p->level--);
17167 return NULL;
17168 }
17169 expr_ty _res = NULL;
17170 int _mark = p->mark;
17171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17172 p->error_indicator = 1;
17173 D(p->level--);
17174 return NULL;
17175 }
17176 int _start_lineno = p->tokens[_mark]->lineno;
17177 UNUSED(_start_lineno); // Only used by EXTRA macro
17178 int _start_col_offset = p->tokens[_mark]->col_offset;
17179 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017180 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017181 if (p->error_indicator) {
17182 D(p->level--);
17183 return NULL;
17184 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017185 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017186 expr_ty a;
17187 if (
17188 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017189 )
17190 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017191 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017192 _res = _PyPegen_set_expr_context ( p , a , Del );
17193 if (_res == NULL && PyErr_Occurred()) {
17194 p->error_indicator = 1;
17195 D(p->level--);
17196 return NULL;
17197 }
17198 goto done;
17199 }
17200 p->mark = _mark;
17201 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017203 }
17204 { // '(' del_target ')'
17205 if (p->error_indicator) {
17206 D(p->level--);
17207 return NULL;
17208 }
17209 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17210 Token * _literal;
17211 Token * _literal_1;
17212 expr_ty a;
17213 if (
17214 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17215 &&
17216 (a = del_target_rule(p)) // del_target
17217 &&
17218 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17219 )
17220 {
17221 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17222 _res = _PyPegen_set_expr_context ( p , a , Del );
17223 if (_res == NULL && PyErr_Occurred()) {
17224 p->error_indicator = 1;
17225 D(p->level--);
17226 return NULL;
17227 }
17228 goto done;
17229 }
17230 p->mark = _mark;
17231 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17233 }
17234 { // '(' del_targets? ')'
17235 if (p->error_indicator) {
17236 D(p->level--);
17237 return NULL;
17238 }
17239 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17240 Token * _literal;
17241 Token * _literal_1;
17242 void *a;
17243 if (
17244 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17245 &&
17246 (a = del_targets_rule(p), 1) // del_targets?
17247 &&
17248 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17249 )
17250 {
17251 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17253 if (_token == NULL) {
17254 D(p->level--);
17255 return NULL;
17256 }
17257 int _end_lineno = _token->end_lineno;
17258 UNUSED(_end_lineno); // Only used by EXTRA macro
17259 int _end_col_offset = _token->end_col_offset;
17260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017261 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017262 if (_res == NULL && PyErr_Occurred()) {
17263 p->error_indicator = 1;
17264 D(p->level--);
17265 return NULL;
17266 }
17267 goto done;
17268 }
17269 p->mark = _mark;
17270 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17272 }
17273 { // '[' del_targets? ']'
17274 if (p->error_indicator) {
17275 D(p->level--);
17276 return NULL;
17277 }
17278 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17279 Token * _literal;
17280 Token * _literal_1;
17281 void *a;
17282 if (
17283 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17284 &&
17285 (a = del_targets_rule(p), 1) // del_targets?
17286 &&
17287 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17288 )
17289 {
17290 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17291 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17292 if (_token == NULL) {
17293 D(p->level--);
17294 return NULL;
17295 }
17296 int _end_lineno = _token->end_lineno;
17297 UNUSED(_end_lineno); // Only used by EXTRA macro
17298 int _end_col_offset = _token->end_col_offset;
17299 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017300 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017301 if (_res == NULL && PyErr_Occurred()) {
17302 p->error_indicator = 1;
17303 D(p->level--);
17304 return NULL;
17305 }
17306 goto done;
17307 }
17308 p->mark = _mark;
17309 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17311 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017312 _res = NULL;
17313 done:
17314 D(p->level--);
17315 return _res;
17316}
17317
17318// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017319static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017320targets_rule(Parser *p)
17321{
17322 D(p->level++);
17323 if (p->error_indicator) {
17324 D(p->level--);
17325 return NULL;
17326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017327 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017328 int _mark = p->mark;
17329 { // ','.target+ ','?
17330 if (p->error_indicator) {
17331 D(p->level--);
17332 return NULL;
17333 }
17334 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17335 void *_opt_var;
17336 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017337 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017338 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017339 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017340 &&
17341 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17342 )
17343 {
17344 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17345 _res = a;
17346 if (_res == NULL && PyErr_Occurred()) {
17347 p->error_indicator = 1;
17348 D(p->level--);
17349 return NULL;
17350 }
17351 goto done;
17352 }
17353 p->mark = _mark;
17354 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
17355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
17356 }
17357 _res = NULL;
17358 done:
17359 D(p->level--);
17360 return _res;
17361}
17362
17363// target:
17364// | t_primary '.' NAME !t_lookahead
17365// | t_primary '[' slices ']' !t_lookahead
17366// | t_atom
17367static expr_ty
17368target_rule(Parser *p)
17369{
17370 D(p->level++);
17371 if (p->error_indicator) {
17372 D(p->level--);
17373 return NULL;
17374 }
17375 expr_ty _res = NULL;
17376 if (_PyPegen_is_memoized(p, target_type, &_res)) {
17377 D(p->level--);
17378 return _res;
17379 }
17380 int _mark = p->mark;
17381 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17382 p->error_indicator = 1;
17383 D(p->level--);
17384 return NULL;
17385 }
17386 int _start_lineno = p->tokens[_mark]->lineno;
17387 UNUSED(_start_lineno); // Only used by EXTRA macro
17388 int _start_col_offset = p->tokens[_mark]->col_offset;
17389 UNUSED(_start_col_offset); // Only used by EXTRA macro
17390 { // t_primary '.' NAME !t_lookahead
17391 if (p->error_indicator) {
17392 D(p->level--);
17393 return NULL;
17394 }
17395 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17396 Token * _literal;
17397 expr_ty a;
17398 expr_ty b;
17399 if (
17400 (a = t_primary_rule(p)) // t_primary
17401 &&
17402 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17403 &&
17404 (b = _PyPegen_name_token(p)) // NAME
17405 &&
17406 _PyPegen_lookahead(0, t_lookahead_rule, p)
17407 )
17408 {
17409 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17411 if (_token == NULL) {
17412 D(p->level--);
17413 return NULL;
17414 }
17415 int _end_lineno = _token->end_lineno;
17416 UNUSED(_end_lineno); // Only used by EXTRA macro
17417 int _end_col_offset = _token->end_col_offset;
17418 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017419 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017420 if (_res == NULL && PyErr_Occurred()) {
17421 p->error_indicator = 1;
17422 D(p->level--);
17423 return NULL;
17424 }
17425 goto done;
17426 }
17427 p->mark = _mark;
17428 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17430 }
17431 { // t_primary '[' slices ']' !t_lookahead
17432 if (p->error_indicator) {
17433 D(p->level--);
17434 return NULL;
17435 }
17436 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17437 Token * _literal;
17438 Token * _literal_1;
17439 expr_ty a;
17440 expr_ty b;
17441 if (
17442 (a = t_primary_rule(p)) // t_primary
17443 &&
17444 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17445 &&
17446 (b = slices_rule(p)) // slices
17447 &&
17448 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17449 &&
17450 _PyPegen_lookahead(0, t_lookahead_rule, p)
17451 )
17452 {
17453 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17454 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17455 if (_token == NULL) {
17456 D(p->level--);
17457 return NULL;
17458 }
17459 int _end_lineno = _token->end_lineno;
17460 UNUSED(_end_lineno); // Only used by EXTRA macro
17461 int _end_col_offset = _token->end_col_offset;
17462 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017463 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017464 if (_res == NULL && PyErr_Occurred()) {
17465 p->error_indicator = 1;
17466 D(p->level--);
17467 return NULL;
17468 }
17469 goto done;
17470 }
17471 p->mark = _mark;
17472 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17474 }
17475 { // t_atom
17476 if (p->error_indicator) {
17477 D(p->level--);
17478 return NULL;
17479 }
17480 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
17481 expr_ty t_atom_var;
17482 if (
17483 (t_atom_var = t_atom_rule(p)) // t_atom
17484 )
17485 {
17486 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
17487 _res = t_atom_var;
17488 goto done;
17489 }
17490 p->mark = _mark;
17491 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
17493 }
17494 _res = NULL;
17495 done:
17496 _PyPegen_insert_memo(p, _mark, target_type, _res);
17497 D(p->level--);
17498 return _res;
17499}
17500
17501// Left-recursive
17502// t_primary:
17503// | t_primary '.' NAME &t_lookahead
17504// | t_primary '[' slices ']' &t_lookahead
17505// | t_primary genexp &t_lookahead
17506// | t_primary '(' arguments? ')' &t_lookahead
17507// | atom &t_lookahead
17508static expr_ty t_primary_raw(Parser *);
17509static expr_ty
17510t_primary_rule(Parser *p)
17511{
17512 D(p->level++);
17513 expr_ty _res = NULL;
17514 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17515 D(p->level--);
17516 return _res;
17517 }
17518 int _mark = p->mark;
17519 int _resmark = p->mark;
17520 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017521 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17522 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017523 D(p->level--);
17524 return _res;
17525 }
17526 p->mark = _mark;
17527 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017528 if (p->error_indicator)
17529 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017530 if (_raw == NULL || p->mark <= _resmark)
17531 break;
17532 _resmark = p->mark;
17533 _res = _raw;
17534 }
17535 p->mark = _resmark;
17536 D(p->level--);
17537 return _res;
17538}
17539static expr_ty
17540t_primary_raw(Parser *p)
17541{
17542 D(p->level++);
17543 if (p->error_indicator) {
17544 D(p->level--);
17545 return NULL;
17546 }
17547 expr_ty _res = NULL;
17548 int _mark = p->mark;
17549 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17550 p->error_indicator = 1;
17551 D(p->level--);
17552 return NULL;
17553 }
17554 int _start_lineno = p->tokens[_mark]->lineno;
17555 UNUSED(_start_lineno); // Only used by EXTRA macro
17556 int _start_col_offset = p->tokens[_mark]->col_offset;
17557 UNUSED(_start_col_offset); // Only used by EXTRA macro
17558 { // t_primary '.' NAME &t_lookahead
17559 if (p->error_indicator) {
17560 D(p->level--);
17561 return NULL;
17562 }
17563 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17564 Token * _literal;
17565 expr_ty a;
17566 expr_ty b;
17567 if (
17568 (a = t_primary_rule(p)) // t_primary
17569 &&
17570 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17571 &&
17572 (b = _PyPegen_name_token(p)) // NAME
17573 &&
17574 _PyPegen_lookahead(1, t_lookahead_rule, p)
17575 )
17576 {
17577 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17579 if (_token == NULL) {
17580 D(p->level--);
17581 return NULL;
17582 }
17583 int _end_lineno = _token->end_lineno;
17584 UNUSED(_end_lineno); // Only used by EXTRA macro
17585 int _end_col_offset = _token->end_col_offset;
17586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017587 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017588 if (_res == NULL && PyErr_Occurred()) {
17589 p->error_indicator = 1;
17590 D(p->level--);
17591 return NULL;
17592 }
17593 goto done;
17594 }
17595 p->mark = _mark;
17596 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17598 }
17599 { // t_primary '[' slices ']' &t_lookahead
17600 if (p->error_indicator) {
17601 D(p->level--);
17602 return NULL;
17603 }
17604 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17605 Token * _literal;
17606 Token * _literal_1;
17607 expr_ty a;
17608 expr_ty b;
17609 if (
17610 (a = t_primary_rule(p)) // t_primary
17611 &&
17612 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17613 &&
17614 (b = slices_rule(p)) // slices
17615 &&
17616 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17617 &&
17618 _PyPegen_lookahead(1, t_lookahead_rule, p)
17619 )
17620 {
17621 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17623 if (_token == NULL) {
17624 D(p->level--);
17625 return NULL;
17626 }
17627 int _end_lineno = _token->end_lineno;
17628 UNUSED(_end_lineno); // Only used by EXTRA macro
17629 int _end_col_offset = _token->end_col_offset;
17630 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017631 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017632 if (_res == NULL && PyErr_Occurred()) {
17633 p->error_indicator = 1;
17634 D(p->level--);
17635 return NULL;
17636 }
17637 goto done;
17638 }
17639 p->mark = _mark;
17640 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17642 }
17643 { // t_primary genexp &t_lookahead
17644 if (p->error_indicator) {
17645 D(p->level--);
17646 return NULL;
17647 }
17648 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17649 expr_ty a;
17650 expr_ty b;
17651 if (
17652 (a = t_primary_rule(p)) // t_primary
17653 &&
17654 (b = genexp_rule(p)) // genexp
17655 &&
17656 _PyPegen_lookahead(1, t_lookahead_rule, p)
17657 )
17658 {
17659 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17661 if (_token == NULL) {
17662 D(p->level--);
17663 return NULL;
17664 }
17665 int _end_lineno = _token->end_lineno;
17666 UNUSED(_end_lineno); // Only used by EXTRA macro
17667 int _end_col_offset = _token->end_col_offset;
17668 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017669 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017670 if (_res == NULL && PyErr_Occurred()) {
17671 p->error_indicator = 1;
17672 D(p->level--);
17673 return NULL;
17674 }
17675 goto done;
17676 }
17677 p->mark = _mark;
17678 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17680 }
17681 { // t_primary '(' arguments? ')' &t_lookahead
17682 if (p->error_indicator) {
17683 D(p->level--);
17684 return NULL;
17685 }
17686 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17687 Token * _literal;
17688 Token * _literal_1;
17689 expr_ty a;
17690 void *b;
17691 if (
17692 (a = t_primary_rule(p)) // t_primary
17693 &&
17694 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17695 &&
17696 (b = arguments_rule(p), 1) // arguments?
17697 &&
17698 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17699 &&
17700 _PyPegen_lookahead(1, t_lookahead_rule, p)
17701 )
17702 {
17703 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17704 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17705 if (_token == NULL) {
17706 D(p->level--);
17707 return NULL;
17708 }
17709 int _end_lineno = _token->end_lineno;
17710 UNUSED(_end_lineno); // Only used by EXTRA macro
17711 int _end_col_offset = _token->end_col_offset;
17712 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017713 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017714 if (_res == NULL && PyErr_Occurred()) {
17715 p->error_indicator = 1;
17716 D(p->level--);
17717 return NULL;
17718 }
17719 goto done;
17720 }
17721 p->mark = _mark;
17722 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17724 }
17725 { // atom &t_lookahead
17726 if (p->error_indicator) {
17727 D(p->level--);
17728 return NULL;
17729 }
17730 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17731 expr_ty a;
17732 if (
17733 (a = atom_rule(p)) // atom
17734 &&
17735 _PyPegen_lookahead(1, t_lookahead_rule, p)
17736 )
17737 {
17738 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17739 _res = a;
17740 if (_res == NULL && PyErr_Occurred()) {
17741 p->error_indicator = 1;
17742 D(p->level--);
17743 return NULL;
17744 }
17745 goto done;
17746 }
17747 p->mark = _mark;
17748 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17750 }
17751 _res = NULL;
17752 done:
17753 D(p->level--);
17754 return _res;
17755}
17756
17757// t_lookahead: '(' | '[' | '.'
17758static void *
17759t_lookahead_rule(Parser *p)
17760{
17761 D(p->level++);
17762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
17766 void * _res = NULL;
17767 int _mark = p->mark;
17768 { // '('
17769 if (p->error_indicator) {
17770 D(p->level--);
17771 return NULL;
17772 }
17773 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17774 Token * _literal;
17775 if (
17776 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17777 )
17778 {
17779 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17780 _res = _literal;
17781 goto done;
17782 }
17783 p->mark = _mark;
17784 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17786 }
17787 { // '['
17788 if (p->error_indicator) {
17789 D(p->level--);
17790 return NULL;
17791 }
17792 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17793 Token * _literal;
17794 if (
17795 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17796 )
17797 {
17798 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17799 _res = _literal;
17800 goto done;
17801 }
17802 p->mark = _mark;
17803 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17805 }
17806 { // '.'
17807 if (p->error_indicator) {
17808 D(p->level--);
17809 return NULL;
17810 }
17811 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17812 Token * _literal;
17813 if (
17814 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17815 )
17816 {
17817 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17818 _res = _literal;
17819 goto done;
17820 }
17821 p->mark = _mark;
17822 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17824 }
17825 _res = NULL;
17826 done:
17827 D(p->level--);
17828 return _res;
17829}
17830
17831// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17832static expr_ty
17833t_atom_rule(Parser *p)
17834{
17835 D(p->level++);
17836 if (p->error_indicator) {
17837 D(p->level--);
17838 return NULL;
17839 }
17840 expr_ty _res = NULL;
17841 int _mark = p->mark;
17842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17843 p->error_indicator = 1;
17844 D(p->level--);
17845 return NULL;
17846 }
17847 int _start_lineno = p->tokens[_mark]->lineno;
17848 UNUSED(_start_lineno); // Only used by EXTRA macro
17849 int _start_col_offset = p->tokens[_mark]->col_offset;
17850 UNUSED(_start_col_offset); // Only used by EXTRA macro
17851 { // NAME
17852 if (p->error_indicator) {
17853 D(p->level--);
17854 return NULL;
17855 }
17856 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17857 expr_ty a;
17858 if (
17859 (a = _PyPegen_name_token(p)) // NAME
17860 )
17861 {
17862 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17863 _res = _PyPegen_set_expr_context ( p , a , Store );
17864 if (_res == NULL && PyErr_Occurred()) {
17865 p->error_indicator = 1;
17866 D(p->level--);
17867 return NULL;
17868 }
17869 goto done;
17870 }
17871 p->mark = _mark;
17872 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17874 }
17875 { // '(' target ')'
17876 if (p->error_indicator) {
17877 D(p->level--);
17878 return NULL;
17879 }
17880 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17881 Token * _literal;
17882 Token * _literal_1;
17883 expr_ty a;
17884 if (
17885 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17886 &&
17887 (a = target_rule(p)) // target
17888 &&
17889 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17890 )
17891 {
17892 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17893 _res = _PyPegen_set_expr_context ( p , a , Store );
17894 if (_res == NULL && PyErr_Occurred()) {
17895 p->error_indicator = 1;
17896 D(p->level--);
17897 return NULL;
17898 }
17899 goto done;
17900 }
17901 p->mark = _mark;
17902 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17904 }
17905 { // '(' targets? ')'
17906 if (p->error_indicator) {
17907 D(p->level--);
17908 return NULL;
17909 }
17910 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17911 Token * _literal;
17912 Token * _literal_1;
17913 void *b;
17914 if (
17915 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17916 &&
17917 (b = targets_rule(p), 1) // targets?
17918 &&
17919 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17920 )
17921 {
17922 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17924 if (_token == NULL) {
17925 D(p->level--);
17926 return NULL;
17927 }
17928 int _end_lineno = _token->end_lineno;
17929 UNUSED(_end_lineno); // Only used by EXTRA macro
17930 int _end_col_offset = _token->end_col_offset;
17931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017932 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017933 if (_res == NULL && PyErr_Occurred()) {
17934 p->error_indicator = 1;
17935 D(p->level--);
17936 return NULL;
17937 }
17938 goto done;
17939 }
17940 p->mark = _mark;
17941 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17943 }
17944 { // '[' targets? ']'
17945 if (p->error_indicator) {
17946 D(p->level--);
17947 return NULL;
17948 }
17949 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17950 Token * _literal;
17951 Token * _literal_1;
17952 void *b;
17953 if (
17954 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17955 &&
17956 (b = targets_rule(p), 1) // targets?
17957 &&
17958 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17959 )
17960 {
17961 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17962 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17963 if (_token == NULL) {
17964 D(p->level--);
17965 return NULL;
17966 }
17967 int _end_lineno = _token->end_lineno;
17968 UNUSED(_end_lineno); // Only used by EXTRA macro
17969 int _end_col_offset = _token->end_col_offset;
17970 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017971 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017972 if (_res == NULL && PyErr_Occurred()) {
17973 p->error_indicator = 1;
17974 D(p->level--);
17975 return NULL;
17976 }
17977 goto done;
17978 }
17979 p->mark = _mark;
17980 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17982 }
17983 _res = NULL;
17984 done:
17985 D(p->level--);
17986 return _res;
17987}
17988
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017989// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990// | args ',' '*'
17991// | expression for_if_clauses ',' [args | expression for_if_clauses]
17992// | args for_if_clauses
17993// | args ',' expression for_if_clauses
17994// | args ',' args
17995static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017996invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017997{
17998 D(p->level++);
17999 if (p->error_indicator) {
18000 D(p->level--);
18001 return NULL;
18002 }
18003 void * _res = NULL;
18004 int _mark = p->mark;
18005 { // args ',' '*'
18006 if (p->error_indicator) {
18007 D(p->level--);
18008 return NULL;
18009 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018010 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018011 Token * _literal;
18012 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018013 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018014 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018015 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018016 &&
18017 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18018 &&
18019 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18020 )
18021 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018022 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018023 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018024 if (_res == NULL && PyErr_Occurred()) {
18025 p->error_indicator = 1;
18026 D(p->level--);
18027 return NULL;
18028 }
18029 goto done;
18030 }
18031 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018032 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18034 }
18035 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18036 if (p->error_indicator) {
18037 D(p->level--);
18038 return NULL;
18039 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018040 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018041 Token * _literal;
18042 void *_opt_var;
18043 UNUSED(_opt_var); // Silence compiler warnings
18044 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018045 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018046 if (
18047 (a = expression_rule(p)) // expression
18048 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018049 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018050 &&
18051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18052 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018053 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018054 )
18055 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018056 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]"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018057 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , comprehension_ty ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018058 if (_res == NULL && PyErr_Occurred()) {
18059 p->error_indicator = 1;
18060 D(p->level--);
18061 return NULL;
18062 }
18063 goto done;
18064 }
18065 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018066 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18068 }
18069 { // args for_if_clauses
18070 if (p->error_indicator) {
18071 D(p->level--);
18072 return NULL;
18073 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018074 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018075 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018076 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018077 if (
18078 (a = args_rule(p)) // args
18079 &&
18080 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18081 )
18082 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018083 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018084 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
18085 if (_res == NULL && PyErr_Occurred()) {
18086 p->error_indicator = 1;
18087 D(p->level--);
18088 return NULL;
18089 }
18090 goto done;
18091 }
18092 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018093 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18095 }
18096 { // args ',' expression for_if_clauses
18097 if (p->error_indicator) {
18098 D(p->level--);
18099 return NULL;
18100 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018101 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018102 Token * _literal;
18103 expr_ty a;
18104 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018105 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018106 if (
18107 (args_var = args_rule(p)) // args
18108 &&
18109 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18110 &&
18111 (a = expression_rule(p)) // expression
18112 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018113 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018114 )
18115 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018116 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018117 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , asdl_seq_GET ( b , b -> size - 1 ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018118 if (_res == NULL && PyErr_Occurred()) {
18119 p->error_indicator = 1;
18120 D(p->level--);
18121 return NULL;
18122 }
18123 goto done;
18124 }
18125 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018126 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18128 }
18129 { // args ',' args
18130 if (p->error_indicator) {
18131 D(p->level--);
18132 return NULL;
18133 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018134 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018135 Token * _literal;
18136 expr_ty a;
18137 expr_ty args_var;
18138 if (
18139 (a = args_rule(p)) // args
18140 &&
18141 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18142 &&
18143 (args_var = args_rule(p)) // args
18144 )
18145 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018146 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018147 _res = _PyPegen_arguments_parsing_error ( p , a );
18148 if (_res == NULL && PyErr_Occurred()) {
18149 p->error_indicator = 1;
18150 D(p->level--);
18151 return NULL;
18152 }
18153 goto done;
18154 }
18155 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018156 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18158 }
18159 _res = NULL;
18160 done:
18161 D(p->level--);
18162 return _res;
18163}
18164
18165// invalid_kwarg: expression '='
18166static void *
18167invalid_kwarg_rule(Parser *p)
18168{
18169 D(p->level++);
18170 if (p->error_indicator) {
18171 D(p->level--);
18172 return NULL;
18173 }
18174 void * _res = NULL;
18175 int _mark = p->mark;
18176 { // expression '='
18177 if (p->error_indicator) {
18178 D(p->level--);
18179 return NULL;
18180 }
18181 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018182 expr_ty a;
18183 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018184 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018185 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018186 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018187 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018188 )
18189 {
18190 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018191 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018192 if (_res == NULL && PyErr_Occurred()) {
18193 p->error_indicator = 1;
18194 D(p->level--);
18195 return NULL;
18196 }
18197 goto done;
18198 }
18199 p->mark = _mark;
18200 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
18202 }
18203 _res = NULL;
18204 done:
18205 D(p->level--);
18206 return _res;
18207}
18208
Pablo Galindob2802482021-04-15 21:38:45 +010018209// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
18210static void *
18211invalid_expression_rule(Parser *p)
18212{
18213 D(p->level++);
18214 if (p->error_indicator) {
18215 D(p->level--);
18216 return NULL;
18217 }
18218 void * _res = NULL;
18219 int _mark = p->mark;
18220 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
18221 if (p->error_indicator) {
18222 D(p->level--);
18223 return NULL;
18224 }
18225 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18226 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018227 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018228 if (
18229 _PyPegen_lookahead(0, _tmp_143_rule, p)
18230 &&
18231 (a = disjunction_rule(p)) // disjunction
18232 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018233 (b = expression_rule(p)) // expression
Pablo Galindob2802482021-04-15 21:38:45 +010018234 )
18235 {
18236 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018237 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018238 if (_res == NULL && PyErr_Occurred()) {
18239 p->error_indicator = 1;
18240 D(p->level--);
18241 return NULL;
18242 }
18243 goto done;
18244 }
18245 p->mark = _mark;
18246 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18248 }
18249 _res = NULL;
18250 done:
18251 D(p->level--);
18252 return _res;
18253}
18254
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018255// invalid_named_expression:
18256// | expression ':=' expression
18257// | NAME '=' bitwise_or !('=' | ':=' | ',')
18258// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018259static void *
18260invalid_named_expression_rule(Parser *p)
18261{
18262 D(p->level++);
18263 if (p->error_indicator) {
18264 D(p->level--);
18265 return NULL;
18266 }
18267 void * _res = NULL;
18268 int _mark = p->mark;
18269 { // expression ':=' expression
18270 if (p->error_indicator) {
18271 D(p->level--);
18272 return NULL;
18273 }
18274 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18275 Token * _literal;
18276 expr_ty a;
18277 expr_ty expression_var;
18278 if (
18279 (a = expression_rule(p)) // expression
18280 &&
18281 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18282 &&
18283 (expression_var = expression_rule(p)) // expression
18284 )
18285 {
18286 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18287 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18288 if (_res == NULL && PyErr_Occurred()) {
18289 p->error_indicator = 1;
18290 D(p->level--);
18291 return NULL;
18292 }
18293 goto done;
18294 }
18295 p->mark = _mark;
18296 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18298 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018299 { // NAME '=' bitwise_or !('=' | ':=' | ',')
18300 if (p->error_indicator) {
18301 D(p->level--);
18302 return NULL;
18303 }
18304 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018305 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018306 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018307 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018308 if (
18309 (a = _PyPegen_name_token(p)) // NAME
18310 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018311 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018312 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018313 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018314 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018315 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018316 )
18317 {
18318 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018319 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018320 if (_res == NULL && PyErr_Occurred()) {
18321 p->error_indicator = 1;
18322 D(p->level--);
18323 return NULL;
18324 }
18325 goto done;
18326 }
18327 p->mark = _mark;
18328 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
18330 }
18331 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
18332 if (p->error_indicator) {
18333 D(p->level--);
18334 return NULL;
18335 }
18336 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 !('=' | ':=' | ',')"));
18337 expr_ty a;
18338 Token * b;
18339 expr_ty bitwise_or_var;
18340 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018341 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018342 &&
18343 (a = bitwise_or_rule(p)) // bitwise_or
18344 &&
18345 (b = _PyPegen_expect_token(p, 22)) // token='='
18346 &&
18347 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18348 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018349 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018350 )
18351 {
18352 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 !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018353 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018354 if (_res == NULL && PyErr_Occurred()) {
18355 p->error_indicator = 1;
18356 D(p->level--);
18357 return NULL;
18358 }
18359 goto done;
18360 }
18361 p->mark = _mark;
18362 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
18364 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018365 _res = NULL;
18366 done:
18367 D(p->level--);
18368 return _res;
18369}
18370
18371// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018372// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018373// | star_named_expression ',' star_named_expressions* ':' expression
18374// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018375// | ((star_targets '='))* star_expressions '='
18376// | ((star_targets '='))* yield_expr '='
18377// | star_expressions augassign (yield_expr | star_expressions)
18378static void *
18379invalid_assignment_rule(Parser *p)
18380{
18381 D(p->level++);
18382 if (p->error_indicator) {
18383 D(p->level--);
18384 return NULL;
18385 }
18386 void * _res = NULL;
18387 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018388 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018389 if (p->error_indicator) {
18390 D(p->level--);
18391 return NULL;
18392 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018393 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018394 Token * _literal;
18395 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018396 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018397 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018398 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018399 &&
18400 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018401 &&
18402 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018403 )
18404 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018405 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18406 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018407 if (_res == NULL && PyErr_Occurred()) {
18408 p->error_indicator = 1;
18409 D(p->level--);
18410 return NULL;
18411 }
18412 goto done;
18413 }
18414 p->mark = _mark;
18415 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018417 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018418 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018419 if (p->error_indicator) {
18420 D(p->level--);
18421 return NULL;
18422 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018423 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018424 Token * _literal;
18425 Token * _literal_1;
Pablo Galindob2802482021-04-15 21:38:45 +010018426 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018427 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018428 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018429 if (
18430 (a = star_named_expression_rule(p)) // star_named_expression
18431 &&
18432 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18433 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018434 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018435 &&
18436 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018437 &&
18438 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 )
18440 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018441 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018442 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18443 if (_res == NULL && PyErr_Occurred()) {
18444 p->error_indicator = 1;
18445 D(p->level--);
18446 return NULL;
18447 }
18448 goto done;
18449 }
18450 p->mark = _mark;
18451 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018453 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018454 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018455 if (p->error_indicator) {
18456 D(p->level--);
18457 return NULL;
18458 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018459 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018460 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018461 expr_ty a;
18462 expr_ty expression_var;
18463 if (
18464 (a = expression_rule(p)) // expression
18465 &&
18466 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18467 &&
18468 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018469 )
18470 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018471 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018472 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18473 if (_res == NULL && PyErr_Occurred()) {
18474 p->error_indicator = 1;
18475 D(p->level--);
18476 return NULL;
18477 }
18478 goto done;
18479 }
18480 p->mark = _mark;
18481 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483 }
18484 { // ((star_targets '='))* star_expressions '='
18485 if (p->error_indicator) {
18486 D(p->level--);
18487 return NULL;
18488 }
18489 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18490 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018491 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018492 expr_ty a;
18493 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018494 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018495 &&
18496 (a = star_expressions_rule(p)) // star_expressions
18497 &&
18498 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18499 )
18500 {
18501 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030018502 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503 if (_res == NULL && PyErr_Occurred()) {
18504 p->error_indicator = 1;
18505 D(p->level--);
18506 return NULL;
18507 }
18508 goto done;
18509 }
18510 p->mark = _mark;
18511 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18513 }
18514 { // ((star_targets '='))* yield_expr '='
18515 if (p->error_indicator) {
18516 D(p->level--);
18517 return NULL;
18518 }
18519 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18520 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018521 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018522 expr_ty a;
18523 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018524 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018525 &&
18526 (a = yield_expr_rule(p)) // yield_expr
18527 &&
18528 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18529 )
18530 {
18531 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18532 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18533 if (_res == NULL && PyErr_Occurred()) {
18534 p->error_indicator = 1;
18535 D(p->level--);
18536 return NULL;
18537 }
18538 goto done;
18539 }
18540 p->mark = _mark;
18541 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18543 }
18544 { // star_expressions augassign (yield_expr | star_expressions)
18545 if (p->error_indicator) {
18546 D(p->level--);
18547 return NULL;
18548 }
18549 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob2802482021-04-15 21:38:45 +010018550 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018551 expr_ty a;
18552 AugOperator* augassign_var;
18553 if (
18554 (a = star_expressions_rule(p)) // star_expressions
18555 &&
18556 (augassign_var = augassign_rule(p)) // augassign
18557 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018558 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018559 )
18560 {
18561 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18562 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18563 if (_res == NULL && PyErr_Occurred()) {
18564 p->error_indicator = 1;
18565 D(p->level--);
18566 return NULL;
18567 }
18568 goto done;
18569 }
18570 p->mark = _mark;
18571 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18573 }
18574 _res = NULL;
18575 done:
18576 D(p->level--);
18577 return _res;
18578}
18579
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018580// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18581static expr_ty
18582invalid_ann_assign_target_rule(Parser *p)
18583{
18584 D(p->level++);
18585 if (p->error_indicator) {
18586 D(p->level--);
18587 return NULL;
18588 }
18589 expr_ty _res = NULL;
18590 int _mark = p->mark;
18591 { // list
18592 if (p->error_indicator) {
18593 D(p->level--);
18594 return NULL;
18595 }
18596 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18597 expr_ty list_var;
18598 if (
18599 (list_var = list_rule(p)) // list
18600 )
18601 {
18602 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18603 _res = list_var;
18604 goto done;
18605 }
18606 p->mark = _mark;
18607 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18609 }
18610 { // tuple
18611 if (p->error_indicator) {
18612 D(p->level--);
18613 return NULL;
18614 }
18615 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18616 expr_ty tuple_var;
18617 if (
18618 (tuple_var = tuple_rule(p)) // tuple
18619 )
18620 {
18621 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18622 _res = tuple_var;
18623 goto done;
18624 }
18625 p->mark = _mark;
18626 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18628 }
18629 { // '(' invalid_ann_assign_target ')'
18630 if (p->error_indicator) {
18631 D(p->level--);
18632 return NULL;
18633 }
18634 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18635 Token * _literal;
18636 Token * _literal_1;
18637 expr_ty a;
18638 if (
18639 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18640 &&
18641 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18642 &&
18643 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18644 )
18645 {
18646 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18647 _res = a;
18648 if (_res == NULL && PyErr_Occurred()) {
18649 p->error_indicator = 1;
18650 D(p->level--);
18651 return NULL;
18652 }
18653 goto done;
18654 }
18655 p->mark = _mark;
18656 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18658 }
18659 _res = NULL;
18660 done:
18661 D(p->level--);
18662 return _res;
18663}
18664
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018665// invalid_del_stmt: 'del' star_expressions
18666static void *
18667invalid_del_stmt_rule(Parser *p)
18668{
18669 D(p->level++);
18670 if (p->error_indicator) {
18671 D(p->level--);
18672 return NULL;
18673 }
18674 void * _res = NULL;
18675 int _mark = p->mark;
18676 { // 'del' star_expressions
18677 if (p->error_indicator) {
18678 D(p->level--);
18679 return NULL;
18680 }
18681 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18682 Token * _keyword;
18683 expr_ty a;
18684 if (
18685 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18686 &&
18687 (a = star_expressions_rule(p)) // star_expressions
18688 )
18689 {
18690 D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030018691 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018692 if (_res == NULL && PyErr_Occurred()) {
18693 p->error_indicator = 1;
18694 D(p->level--);
18695 return NULL;
18696 }
18697 goto done;
18698 }
18699 p->mark = _mark;
18700 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18702 }
18703 _res = NULL;
18704 done:
18705 D(p->level--);
18706 return _res;
18707}
18708
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018709// invalid_block: NEWLINE !INDENT
18710static void *
18711invalid_block_rule(Parser *p)
18712{
18713 D(p->level++);
18714 if (p->error_indicator) {
18715 D(p->level--);
18716 return NULL;
18717 }
18718 void * _res = NULL;
18719 int _mark = p->mark;
18720 { // NEWLINE !INDENT
18721 if (p->error_indicator) {
18722 D(p->level--);
18723 return NULL;
18724 }
18725 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18726 Token * newline_var;
18727 if (
18728 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18729 &&
18730 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18731 )
18732 {
18733 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18734 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18735 if (_res == NULL && PyErr_Occurred()) {
18736 p->error_indicator = 1;
18737 D(p->level--);
18738 return NULL;
18739 }
18740 goto done;
18741 }
18742 p->mark = _mark;
18743 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18745 }
18746 _res = NULL;
18747 done:
18748 D(p->level--);
18749 return _res;
18750}
18751
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018752// Left-recursive
18753// invalid_primary: primary '{'
18754static void *
18755invalid_primary_rule(Parser *p)
18756{
18757 D(p->level++);
18758 if (p->error_indicator) {
18759 D(p->level--);
18760 return NULL;
18761 }
18762 void * _res = NULL;
18763 int _mark = p->mark;
18764 { // primary '{'
18765 if (p->error_indicator) {
18766 D(p->level--);
18767 return NULL;
18768 }
18769 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18770 Token * a;
18771 expr_ty primary_var;
18772 if (
18773 (primary_var = primary_rule(p)) // primary
18774 &&
18775 (a = _PyPegen_expect_token(p, 25)) // token='{'
18776 )
18777 {
18778 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18779 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18780 if (_res == NULL && PyErr_Occurred()) {
18781 p->error_indicator = 1;
18782 D(p->level--);
18783 return NULL;
18784 }
18785 goto done;
18786 }
18787 p->mark = _mark;
18788 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18790 }
18791 _res = NULL;
18792 done:
18793 D(p->level--);
18794 return _res;
18795}
18796
Pablo Galindo835f14f2021-01-31 22:52:56 +000018797// invalid_comprehension:
18798// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018799// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18800// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018801static void *
18802invalid_comprehension_rule(Parser *p)
18803{
18804 D(p->level++);
18805 if (p->error_indicator) {
18806 D(p->level--);
18807 return NULL;
18808 }
18809 void * _res = NULL;
18810 int _mark = p->mark;
18811 { // ('[' | '(' | '{') starred_expression for_if_clauses
18812 if (p->error_indicator) {
18813 D(p->level--);
18814 return NULL;
18815 }
18816 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob2802482021-04-15 21:38:45 +010018817 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018818 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018819 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018820 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018821 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018822 &&
18823 (a = starred_expression_rule(p)) // starred_expression
18824 &&
18825 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18826 )
18827 {
18828 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18829 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18830 if (_res == NULL && PyErr_Occurred()) {
18831 p->error_indicator = 1;
18832 D(p->level--);
18833 return NULL;
18834 }
18835 goto done;
18836 }
18837 p->mark = _mark;
18838 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18840 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018841 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018842 if (p->error_indicator) {
18843 D(p->level--);
18844 return NULL;
18845 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018846 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018847 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018848 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018849 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018850 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018851 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018852 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018853 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018854 &&
18855 (a = star_named_expression_rule(p)) // star_named_expression
18856 &&
18857 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18858 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018859 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018860 &&
18861 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018862 )
18863 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018864 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"));
18865 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
Pablo Galindo835f14f2021-01-31 22:52:56 +000018866 if (_res == NULL && PyErr_Occurred()) {
18867 p->error_indicator = 1;
18868 D(p->level--);
18869 return NULL;
18870 }
18871 goto done;
18872 }
18873 p->mark = _mark;
18874 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18876 }
18877 { // ('[' | '{') star_named_expression ',' for_if_clauses
18878 if (p->error_indicator) {
18879 D(p->level--);
18880 return NULL;
18881 }
18882 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18883 void *_tmp_153_var;
18884 expr_ty a;
18885 Token * b;
18886 asdl_comprehension_seq* for_if_clauses_var;
18887 if (
18888 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
18889 &&
18890 (a = star_named_expression_rule(p)) // star_named_expression
18891 &&
18892 (b = _PyPegen_expect_token(p, 12)) // token=','
18893 &&
18894 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18895 )
18896 {
18897 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18898 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18899 if (_res == NULL && PyErr_Occurred()) {
18900 p->error_indicator = 1;
18901 D(p->level--);
18902 return NULL;
18903 }
18904 goto done;
18905 }
18906 p->mark = _mark;
18907 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018909 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018910 _res = NULL;
18911 done:
18912 D(p->level--);
18913 return _res;
18914}
18915
18916// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18917static void *
18918invalid_dict_comprehension_rule(Parser *p)
18919{
18920 D(p->level++);
18921 if (p->error_indicator) {
18922 D(p->level--);
18923 return NULL;
18924 }
18925 void * _res = NULL;
18926 int _mark = p->mark;
18927 { // '{' '**' bitwise_or for_if_clauses '}'
18928 if (p->error_indicator) {
18929 D(p->level--);
18930 return NULL;
18931 }
18932 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18933 Token * _literal;
18934 Token * _literal_1;
18935 Token * a;
18936 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018937 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018938 if (
18939 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18940 &&
18941 (a = _PyPegen_expect_token(p, 35)) // token='**'
18942 &&
18943 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18944 &&
18945 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18946 &&
18947 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18948 )
18949 {
18950 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18951 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18952 if (_res == NULL && PyErr_Occurred()) {
18953 p->error_indicator = 1;
18954 D(p->level--);
18955 return NULL;
18956 }
18957 goto done;
18958 }
18959 p->mark = _mark;
18960 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18962 }
18963 _res = NULL;
18964 done:
18965 D(p->level--);
18966 return _res;
18967}
18968
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018969// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018970static void *
18971invalid_parameters_rule(Parser *p)
18972{
18973 D(p->level++);
18974 if (p->error_indicator) {
18975 D(p->level--);
18976 return NULL;
18977 }
18978 void * _res = NULL;
18979 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018980 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018981 if (p->error_indicator) {
18982 D(p->level--);
18983 return NULL;
18984 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018985 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018986 asdl_seq * _loop0_154_var;
18987 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018988 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018989 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018990 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018991 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018992 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018993 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018994 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018995 )
18996 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018997 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018998 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018999 if (_res == NULL && PyErr_Occurred()) {
19000 p->error_indicator = 1;
19001 D(p->level--);
19002 return NULL;
19003 }
19004 goto done;
19005 }
19006 p->mark = _mark;
19007 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19009 }
19010 _res = NULL;
19011 done:
19012 D(p->level--);
19013 return _res;
19014}
19015
19016// invalid_parameters_helper: slash_with_default | param_with_default+
19017static void *
19018invalid_parameters_helper_rule(Parser *p)
19019{
19020 D(p->level++);
19021 if (p->error_indicator) {
19022 D(p->level--);
19023 return NULL;
19024 }
19025 void * _res = NULL;
19026 int _mark = p->mark;
19027 { // slash_with_default
19028 if (p->error_indicator) {
19029 D(p->level--);
19030 return NULL;
19031 }
19032 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19033 SlashWithDefault* a;
19034 if (
19035 (a = slash_with_default_rule(p)) // slash_with_default
19036 )
19037 {
19038 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19039 _res = _PyPegen_singleton_seq ( p , a );
19040 if (_res == NULL && PyErr_Occurred()) {
19041 p->error_indicator = 1;
19042 D(p->level--);
19043 return NULL;
19044 }
19045 goto done;
19046 }
19047 p->mark = _mark;
19048 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19050 }
19051 { // param_with_default+
19052 if (p->error_indicator) {
19053 D(p->level--);
19054 return NULL;
19055 }
19056 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019057 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019058 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019059 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019060 )
19061 {
19062 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019063 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019064 goto done;
19065 }
19066 p->mark = _mark;
19067 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019069 }
19070 _res = NULL;
19071 done:
19072 D(p->level--);
19073 return _res;
19074}
19075
19076// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019077// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019078static void *
19079invalid_lambda_parameters_rule(Parser *p)
19080{
19081 D(p->level++);
19082 if (p->error_indicator) {
19083 D(p->level--);
19084 return NULL;
19085 }
19086 void * _res = NULL;
19087 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019088 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019093 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019094 asdl_seq * _loop0_156_var;
19095 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019096 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019097 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019098 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019099 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019100 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019101 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019102 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019103 )
19104 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019105 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019106 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019107 if (_res == NULL && PyErr_Occurred()) {
19108 p->error_indicator = 1;
19109 D(p->level--);
19110 return NULL;
19111 }
19112 goto done;
19113 }
19114 p->mark = _mark;
19115 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19117 }
19118 _res = NULL;
19119 done:
19120 D(p->level--);
19121 return _res;
19122}
19123
19124// invalid_lambda_parameters_helper:
19125// | lambda_slash_with_default
19126// | lambda_param_with_default+
19127static void *
19128invalid_lambda_parameters_helper_rule(Parser *p)
19129{
19130 D(p->level++);
19131 if (p->error_indicator) {
19132 D(p->level--);
19133 return NULL;
19134 }
19135 void * _res = NULL;
19136 int _mark = p->mark;
19137 { // lambda_slash_with_default
19138 if (p->error_indicator) {
19139 D(p->level--);
19140 return NULL;
19141 }
19142 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19143 SlashWithDefault* a;
19144 if (
19145 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19146 )
19147 {
19148 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19149 _res = _PyPegen_singleton_seq ( p , a );
19150 if (_res == NULL && PyErr_Occurred()) {
19151 p->error_indicator = 1;
19152 D(p->level--);
19153 return NULL;
19154 }
19155 goto done;
19156 }
19157 p->mark = _mark;
19158 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19160 }
19161 { // lambda_param_with_default+
19162 if (p->error_indicator) {
19163 D(p->level--);
19164 return NULL;
19165 }
19166 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019167 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019168 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019169 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019170 )
19171 {
19172 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019173 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019174 goto done;
19175 }
19176 p->mark = _mark;
19177 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019179 }
19180 _res = NULL;
19181 done:
19182 D(p->level--);
19183 return _res;
19184}
19185
19186// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19187static void *
19188invalid_star_etc_rule(Parser *p)
19189{
19190 D(p->level++);
19191 if (p->error_indicator) {
19192 D(p->level--);
19193 return NULL;
19194 }
19195 void * _res = NULL;
19196 int _mark = p->mark;
19197 { // '*' (')' | ',' (')' | '**'))
19198 if (p->error_indicator) {
19199 D(p->level--);
19200 return NULL;
19201 }
19202 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019203 void *_tmp_158_var;
19204 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019205 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019206 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019207 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019208 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019209 )
19210 {
19211 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019212 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019213 if (_res == NULL && PyErr_Occurred()) {
19214 p->error_indicator = 1;
19215 D(p->level--);
19216 return NULL;
19217 }
19218 goto done;
19219 }
19220 p->mark = _mark;
19221 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19223 }
19224 { // '*' ',' TYPE_COMMENT
19225 if (p->error_indicator) {
19226 D(p->level--);
19227 return NULL;
19228 }
19229 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19230 Token * _literal;
19231 Token * _literal_1;
19232 Token * type_comment_var;
19233 if (
19234 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19235 &&
19236 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19237 &&
19238 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19239 )
19240 {
19241 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19242 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19243 if (_res == NULL && PyErr_Occurred()) {
19244 p->error_indicator = 1;
19245 D(p->level--);
19246 return NULL;
19247 }
19248 goto done;
19249 }
19250 p->mark = _mark;
19251 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19253 }
19254 _res = NULL;
19255 done:
19256 D(p->level--);
19257 return _res;
19258}
19259
19260// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19261static void *
19262invalid_lambda_star_etc_rule(Parser *p)
19263{
19264 D(p->level++);
19265 if (p->error_indicator) {
19266 D(p->level--);
19267 return NULL;
19268 }
19269 void * _res = NULL;
19270 int _mark = p->mark;
19271 { // '*' (':' | ',' (':' | '**'))
19272 if (p->error_indicator) {
19273 D(p->level--);
19274 return NULL;
19275 }
19276 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19277 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019278 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019279 if (
19280 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19281 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019282 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019283 )
19284 {
19285 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19286 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19287 if (_res == NULL && PyErr_Occurred()) {
19288 p->error_indicator = 1;
19289 D(p->level--);
19290 return NULL;
19291 }
19292 goto done;
19293 }
19294 p->mark = _mark;
19295 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19297 }
19298 _res = NULL;
19299 done:
19300 D(p->level--);
19301 return _res;
19302}
19303
19304// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19305static void *
19306invalid_double_type_comments_rule(Parser *p)
19307{
19308 D(p->level++);
19309 if (p->error_indicator) {
19310 D(p->level--);
19311 return NULL;
19312 }
19313 void * _res = NULL;
19314 int _mark = p->mark;
19315 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19316 if (p->error_indicator) {
19317 D(p->level--);
19318 return NULL;
19319 }
19320 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19321 Token * indent_var;
19322 Token * newline_var;
19323 Token * newline_var_1;
19324 Token * type_comment_var;
19325 Token * type_comment_var_1;
19326 if (
19327 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19328 &&
19329 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19330 &&
19331 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19332 &&
19333 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19334 &&
19335 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19336 )
19337 {
19338 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"));
19339 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19340 if (_res == NULL && PyErr_Occurred()) {
19341 p->error_indicator = 1;
19342 D(p->level--);
19343 return NULL;
19344 }
19345 goto done;
19346 }
19347 p->mark = _mark;
19348 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19350 }
19351 _res = NULL;
19352 done:
19353 D(p->level--);
19354 return _res;
19355}
19356
Pablo Galindo58fb1562021-02-02 19:54:22 +000019357// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019358static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019359invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019360{
19361 D(p->level++);
19362 if (p->error_indicator) {
19363 D(p->level--);
19364 return NULL;
19365 }
19366 void * _res = NULL;
19367 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019368 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019369 if (p->error_indicator) {
19370 D(p->level--);
19371 return NULL;
19372 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019373 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019374 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019375 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019376 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019377 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019378 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019379 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019380 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19381 &&
19382 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019383 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019384 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019385 )
19386 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019387 D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030019388 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019389 if (_res == NULL && PyErr_Occurred()) {
19390 p->error_indicator = 1;
19391 D(p->level--);
19392 return NULL;
19393 }
19394 goto done;
19395 }
19396 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019397 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019399 }
19400 _res = NULL;
19401 done:
19402 D(p->level--);
19403 return _res;
19404}
19405
19406// invalid_for_target: ASYNC? 'for' star_expressions
19407static void *
19408invalid_for_target_rule(Parser *p)
19409{
19410 D(p->level++);
19411 if (p->error_indicator) {
19412 D(p->level--);
19413 return NULL;
19414 }
19415 void * _res = NULL;
19416 int _mark = p->mark;
19417 { // ASYNC? 'for' star_expressions
19418 if (p->error_indicator) {
19419 D(p->level--);
19420 return NULL;
19421 }
19422 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19423 Token * _keyword;
19424 void *_opt_var;
19425 UNUSED(_opt_var); // Silence compiler warnings
19426 expr_ty a;
19427 if (
19428 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19429 &&
19430 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19431 &&
19432 (a = star_expressions_rule(p)) // star_expressions
19433 )
19434 {
19435 D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030019436 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019437 if (_res == NULL && PyErr_Occurred()) {
19438 p->error_indicator = 1;
19439 D(p->level--);
19440 return NULL;
19441 }
19442 goto done;
19443 }
19444 p->mark = _mark;
19445 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19447 }
19448 _res = NULL;
19449 done:
19450 D(p->level--);
19451 return _res;
19452}
19453
Pablo Galindo8efad612021-03-24 19:34:17 +000019454// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019455static void *
19456invalid_group_rule(Parser *p)
19457{
19458 D(p->level++);
19459 if (p->error_indicator) {
19460 D(p->level--);
19461 return NULL;
19462 }
19463 void * _res = NULL;
19464 int _mark = p->mark;
19465 { // '(' starred_expression ')'
19466 if (p->error_indicator) {
19467 D(p->level--);
19468 return NULL;
19469 }
19470 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19471 Token * _literal;
19472 Token * _literal_1;
19473 expr_ty a;
19474 if (
19475 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19476 &&
19477 (a = starred_expression_rule(p)) // starred_expression
19478 &&
19479 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19480 )
19481 {
19482 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019483 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019484 if (_res == NULL && PyErr_Occurred()) {
19485 p->error_indicator = 1;
19486 D(p->level--);
19487 return NULL;
19488 }
19489 goto done;
19490 }
19491 p->mark = _mark;
19492 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019494 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019495 { // '(' '**' expression ')'
19496 if (p->error_indicator) {
19497 D(p->level--);
19498 return NULL;
19499 }
19500 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19501 Token * _literal;
19502 Token * _literal_1;
19503 Token * a;
19504 expr_ty expression_var;
19505 if (
19506 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19507 &&
19508 (a = _PyPegen_expect_token(p, 35)) // token='**'
19509 &&
19510 (expression_var = expression_rule(p)) // expression
19511 &&
19512 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19513 )
19514 {
19515 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019516 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019517 if (_res == NULL && PyErr_Occurred()) {
19518 p->error_indicator = 1;
19519 D(p->level--);
19520 return NULL;
19521 }
19522 goto done;
19523 }
19524 p->mark = _mark;
19525 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19527 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019528 _res = NULL;
19529 done:
19530 D(p->level--);
19531 return _res;
19532}
19533
19534// invalid_import_from_targets: import_from_as_names ','
19535static void *
19536invalid_import_from_targets_rule(Parser *p)
19537{
19538 D(p->level++);
19539 if (p->error_indicator) {
19540 D(p->level--);
19541 return NULL;
19542 }
19543 void * _res = NULL;
19544 int _mark = p->mark;
19545 { // import_from_as_names ','
19546 if (p->error_indicator) {
19547 D(p->level--);
19548 return NULL;
19549 }
19550 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19551 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019552 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019553 if (
19554 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19555 &&
19556 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19557 )
19558 {
19559 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19560 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19561 if (_res == NULL && PyErr_Occurred()) {
19562 p->error_indicator = 1;
19563 D(p->level--);
19564 return NULL;
19565 }
19566 goto done;
19567 }
19568 p->mark = _mark;
19569 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19571 }
19572 _res = NULL;
19573 done:
19574 D(p->level--);
19575 return _res;
19576}
19577
Pablo Galindo58fb1562021-02-02 19:54:22 +000019578// invalid_with_stmt:
19579// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19580// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19581static void *
19582invalid_with_stmt_rule(Parser *p)
19583{
19584 D(p->level++);
19585 if (p->error_indicator) {
19586 D(p->level--);
19587 return NULL;
19588 }
19589 void * _res = NULL;
19590 int _mark = p->mark;
19591 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19592 if (p->error_indicator) {
19593 D(p->level--);
19594 return NULL;
19595 }
19596 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019597 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019598 Token * _keyword;
19599 Token * _literal;
19600 void *_opt_var;
19601 UNUSED(_opt_var); // Silence compiler warnings
19602 if (
19603 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19604 &&
19605 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19606 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019607 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019608 &&
19609 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19610 )
19611 {
19612 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019613 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019614 goto done;
19615 }
19616 p->mark = _mark;
19617 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19619 }
19620 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19621 if (p->error_indicator) {
19622 D(p->level--);
19623 return NULL;
19624 }
19625 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019626 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019627 Token * _keyword;
19628 Token * _literal;
19629 Token * _literal_1;
19630 Token * _literal_2;
19631 void *_opt_var;
19632 UNUSED(_opt_var); // Silence compiler warnings
19633 void *_opt_var_1;
19634 UNUSED(_opt_var_1); // Silence compiler warnings
19635 if (
19636 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19637 &&
19638 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19639 &&
19640 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19641 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019642 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019643 &&
19644 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19645 &&
19646 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19647 &&
19648 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19649 )
19650 {
19651 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019652 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_163_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019653 goto done;
19654 }
19655 p->mark = _mark;
19656 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19658 }
19659 _res = NULL;
19660 done:
19661 D(p->level--);
19662 return _res;
19663}
19664
Pablo Galindo56c95df2021-04-21 15:28:21 +010019665// invalid_with_stmt_indent:
19666// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19667// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019668static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019669invalid_with_stmt_indent_rule(Parser *p)
19670{
19671 D(p->level++);
19672 if (p->error_indicator) {
19673 D(p->level--);
19674 return NULL;
19675 }
19676 void * _res = NULL;
19677 int _mark = p->mark;
19678 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19679 if (p->error_indicator) {
19680 D(p->level--);
19681 return NULL;
19682 }
19683 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"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019684 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019685 Token * _literal;
19686 void *_opt_var;
19687 UNUSED(_opt_var); // Silence compiler warnings
19688 Token * a;
19689 Token * newline_var;
19690 if (
19691 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19692 &&
19693 (a = _PyPegen_expect_token(p, 519)) // token='with'
19694 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019695 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019696 &&
19697 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19698 &&
19699 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19700 &&
19701 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19702 )
19703 {
19704 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"));
19705 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19706 if (_res == NULL && PyErr_Occurred()) {
19707 p->error_indicator = 1;
19708 D(p->level--);
19709 return NULL;
19710 }
19711 goto done;
19712 }
19713 p->mark = _mark;
19714 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19716 }
19717 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19718 if (p->error_indicator) {
19719 D(p->level--);
19720 return NULL;
19721 }
19722 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"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019723 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019724 Token * _literal;
19725 Token * _literal_1;
19726 Token * _literal_2;
19727 void *_opt_var;
19728 UNUSED(_opt_var); // Silence compiler warnings
19729 void *_opt_var_1;
19730 UNUSED(_opt_var_1); // Silence compiler warnings
19731 Token * a;
19732 Token * newline_var;
19733 if (
19734 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19735 &&
19736 (a = _PyPegen_expect_token(p, 519)) // token='with'
19737 &&
19738 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19739 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019740 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019741 &&
19742 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19743 &&
19744 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19745 &&
19746 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19747 &&
19748 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19749 &&
19750 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19751 )
19752 {
19753 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"));
19754 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19755 if (_res == NULL && PyErr_Occurred()) {
19756 p->error_indicator = 1;
19757 D(p->level--);
19758 return NULL;
19759 }
19760 goto done;
19761 }
19762 p->mark = _mark;
19763 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19765 }
19766 _res = NULL;
19767 done:
19768 D(p->level--);
19769 return _res;
19770}
19771
19772// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
19773static void *
19774invalid_try_stmt_rule(Parser *p)
19775{
19776 D(p->level++);
19777 if (p->error_indicator) {
19778 D(p->level--);
19779 return NULL;
19780 }
19781 void * _res = NULL;
19782 int _mark = p->mark;
19783 { // 'try' ':' NEWLINE !INDENT
19784 if (p->error_indicator) {
19785 D(p->level--);
19786 return NULL;
19787 }
19788 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19789 Token * _literal;
19790 Token * a;
19791 Token * newline_var;
19792 if (
19793 (a = _PyPegen_expect_token(p, 511)) // token='try'
19794 &&
19795 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19796 &&
19797 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19798 &&
19799 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19800 )
19801 {
19802 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19803 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19804 if (_res == NULL && PyErr_Occurred()) {
19805 p->error_indicator = 1;
19806 D(p->level--);
19807 return NULL;
19808 }
19809 goto done;
19810 }
19811 p->mark = _mark;
19812 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19814 }
19815 _res = NULL;
19816 done:
19817 D(p->level--);
19818 return _res;
19819}
19820
19821// invalid_except_stmt:
19822// | 'except' expression ',' expressions ['as' NAME] ':'
19823// | 'except' expression ['as' NAME] NEWLINE
19824// | 'except' NEWLINE
19825static void *
19826invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019827{
19828 D(p->level++);
19829 if (p->error_indicator) {
19830 D(p->level--);
19831 return NULL;
19832 }
19833 void * _res = NULL;
19834 int _mark = p->mark;
19835 { // 'except' expression ',' expressions ['as' NAME] ':'
19836 if (p->error_indicator) {
19837 D(p->level--);
19838 return NULL;
19839 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019840 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019841 Token * _keyword;
19842 Token * _literal;
19843 Token * _literal_1;
19844 void *_opt_var;
19845 UNUSED(_opt_var); // Silence compiler warnings
19846 expr_ty a;
19847 expr_ty expressions_var;
19848 if (
19849 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19850 &&
19851 (a = expression_rule(p)) // expression
19852 &&
19853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19854 &&
19855 (expressions_var = expressions_rule(p)) // expressions
19856 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019857 (_opt_var = _tmp_169_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019858 &&
19859 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19860 )
19861 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019862 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019863 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "exception group must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019864 if (_res == NULL && PyErr_Occurred()) {
19865 p->error_indicator = 1;
19866 D(p->level--);
19867 return NULL;
19868 }
19869 goto done;
19870 }
19871 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019872 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19874 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019875 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019876 if (p->error_indicator) {
19877 D(p->level--);
19878 return NULL;
19879 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019880 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019881 void *_opt_var;
19882 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019883 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019884 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019885 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019886 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019887 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019888 &&
19889 (expression_var = expression_rule(p)) // expression
19890 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019891 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019892 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019893 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019894 )
19895 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019896 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19897 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19898 if (_res == NULL && PyErr_Occurred()) {
19899 p->error_indicator = 1;
19900 D(p->level--);
19901 return NULL;
19902 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019903 goto done;
19904 }
19905 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019906 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019908 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019909 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019910 if (p->error_indicator) {
19911 D(p->level--);
19912 return NULL;
19913 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019914 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19915 Token * a;
19916 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019917 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019918 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019919 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019920 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019921 )
19922 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019923 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19924 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19925 if (_res == NULL && PyErr_Occurred()) {
19926 p->error_indicator = 1;
19927 D(p->level--);
19928 return NULL;
19929 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019930 goto done;
19931 }
19932 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019933 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019935 }
19936 _res = NULL;
19937 done:
19938 D(p->level--);
19939 return _res;
19940}
19941
Pablo Galindo56c95df2021-04-21 15:28:21 +010019942// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19943static void *
19944invalid_finally_stmt_rule(Parser *p)
19945{
19946 D(p->level++);
19947 if (p->error_indicator) {
19948 D(p->level--);
19949 return NULL;
19950 }
19951 void * _res = NULL;
19952 int _mark = p->mark;
19953 { // 'finally' ':' NEWLINE !INDENT
19954 if (p->error_indicator) {
19955 D(p->level--);
19956 return NULL;
19957 }
19958 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19959 Token * _literal;
19960 Token * a;
19961 Token * newline_var;
19962 if (
19963 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19964 &&
19965 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19966 &&
19967 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19968 &&
19969 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19970 )
19971 {
19972 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19973 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19974 if (_res == NULL && PyErr_Occurred()) {
19975 p->error_indicator = 1;
19976 D(p->level--);
19977 return NULL;
19978 }
19979 goto done;
19980 }
19981 p->mark = _mark;
19982 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19984 }
19985 _res = NULL;
19986 done:
19987 D(p->level--);
19988 return _res;
19989}
19990
19991// invalid_except_stmt_indent:
19992// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19993// | 'except' ':' NEWLINE !INDENT
19994static void *
19995invalid_except_stmt_indent_rule(Parser *p)
19996{
19997 D(p->level++);
19998 if (p->error_indicator) {
19999 D(p->level--);
20000 return NULL;
20001 }
20002 void * _res = NULL;
20003 int _mark = p->mark;
20004 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20005 if (p->error_indicator) {
20006 D(p->level--);
20007 return NULL;
20008 }
20009 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20010 Token * _literal;
20011 void *_opt_var;
20012 UNUSED(_opt_var); // Silence compiler warnings
20013 Token * a;
20014 expr_ty expression_var;
20015 Token * newline_var;
20016 if (
20017 (a = _PyPegen_expect_token(p, 521)) // token='except'
20018 &&
20019 (expression_var = expression_rule(p)) // expression
20020 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020021 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020022 &&
20023 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20024 &&
20025 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20026 &&
20027 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20028 )
20029 {
20030 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20031 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20032 if (_res == NULL && PyErr_Occurred()) {
20033 p->error_indicator = 1;
20034 D(p->level--);
20035 return NULL;
20036 }
20037 goto done;
20038 }
20039 p->mark = _mark;
20040 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20042 }
20043 { // 'except' ':' NEWLINE !INDENT
20044 if (p->error_indicator) {
20045 D(p->level--);
20046 return NULL;
20047 }
20048 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20049 Token * _literal;
20050 Token * a;
20051 Token * newline_var;
20052 if (
20053 (a = _PyPegen_expect_token(p, 521)) // token='except'
20054 &&
20055 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20056 &&
20057 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20058 &&
20059 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20060 )
20061 {
20062 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20063 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20064 if (_res == NULL && PyErr_Occurred()) {
20065 p->error_indicator = 1;
20066 D(p->level--);
20067 return NULL;
20068 }
20069 goto done;
20070 }
20071 p->mark = _mark;
20072 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20074 }
20075 _res = NULL;
20076 done:
20077 D(p->level--);
20078 return _res;
20079}
20080
20081// invalid_match_stmt:
20082// | "match" subject_expr !':'
20083// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020084static void *
20085invalid_match_stmt_rule(Parser *p)
20086{
20087 D(p->level++);
20088 if (p->error_indicator) {
20089 D(p->level--);
20090 return NULL;
20091 }
20092 void * _res = NULL;
20093 int _mark = p->mark;
20094 { // "match" subject_expr !':'
20095 if (p->error_indicator) {
20096 D(p->level--);
20097 return NULL;
20098 }
20099 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20100 expr_ty _keyword;
20101 expr_ty subject_expr_var;
20102 if (
20103 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20104 &&
20105 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20106 &&
20107 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20108 )
20109 {
20110 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20111 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20112 if (_res == NULL && PyErr_Occurred()) {
20113 p->error_indicator = 1;
20114 D(p->level--);
20115 return NULL;
20116 }
20117 goto done;
20118 }
20119 p->mark = _mark;
20120 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20122 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020123 { // "match" subject_expr ':' NEWLINE !INDENT
20124 if (p->error_indicator) {
20125 D(p->level--);
20126 return NULL;
20127 }
20128 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20129 Token * _literal;
20130 expr_ty a;
20131 Token * newline_var;
20132 expr_ty subject;
20133 if (
20134 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20135 &&
20136 (subject = subject_expr_rule(p)) // subject_expr
20137 &&
20138 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20139 &&
20140 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20141 &&
20142 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20143 )
20144 {
20145 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20146 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20147 if (_res == NULL && PyErr_Occurred()) {
20148 p->error_indicator = 1;
20149 D(p->level--);
20150 return NULL;
20151 }
20152 goto done;
20153 }
20154 p->mark = _mark;
20155 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20157 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020158 _res = NULL;
20159 done:
20160 D(p->level--);
20161 return _res;
20162}
20163
Pablo Galindo56c95df2021-04-21 15:28:21 +010020164// invalid_case_block:
20165// | "case" patterns guard? !':'
20166// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020167static void *
20168invalid_case_block_rule(Parser *p)
20169{
20170 D(p->level++);
20171 if (p->error_indicator) {
20172 D(p->level--);
20173 return NULL;
20174 }
20175 void * _res = NULL;
20176 int _mark = p->mark;
20177 { // "case" patterns guard? !':'
20178 if (p->error_indicator) {
20179 D(p->level--);
20180 return NULL;
20181 }
20182 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20183 expr_ty _keyword;
20184 void *_opt_var;
20185 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020186 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020187 if (
20188 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20189 &&
20190 (patterns_var = patterns_rule(p)) // patterns
20191 &&
20192 (_opt_var = guard_rule(p), 1) // guard?
20193 &&
20194 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20195 )
20196 {
20197 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20198 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20199 if (_res == NULL && PyErr_Occurred()) {
20200 p->error_indicator = 1;
20201 D(p->level--);
20202 return NULL;
20203 }
20204 goto done;
20205 }
20206 p->mark = _mark;
20207 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20209 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020210 { // "case" patterns guard? ':' NEWLINE !INDENT
20211 if (p->error_indicator) {
20212 D(p->level--);
20213 return NULL;
20214 }
20215 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20216 Token * _literal;
20217 void *_opt_var;
20218 UNUSED(_opt_var); // Silence compiler warnings
20219 expr_ty a;
20220 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020221 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020222 if (
20223 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20224 &&
20225 (patterns_var = patterns_rule(p)) // patterns
20226 &&
20227 (_opt_var = guard_rule(p), 1) // guard?
20228 &&
20229 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20230 &&
20231 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20232 &&
20233 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20234 )
20235 {
20236 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20237 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20238 if (_res == NULL && PyErr_Occurred()) {
20239 p->error_indicator = 1;
20240 D(p->level--);
20241 return NULL;
20242 }
20243 goto done;
20244 }
20245 p->mark = _mark;
20246 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20248 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020249 _res = NULL;
20250 done:
20251 D(p->level--);
20252 return _res;
20253}
20254
Pablo Galindo56c95df2021-04-21 15:28:21 +010020255// invalid_if_stmt:
20256// | 'if' named_expression NEWLINE
20257// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020258static void *
20259invalid_if_stmt_rule(Parser *p)
20260{
20261 D(p->level++);
20262 if (p->error_indicator) {
20263 D(p->level--);
20264 return NULL;
20265 }
20266 void * _res = NULL;
20267 int _mark = p->mark;
20268 { // 'if' named_expression NEWLINE
20269 if (p->error_indicator) {
20270 D(p->level--);
20271 return NULL;
20272 }
20273 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20274 Token * _keyword;
20275 expr_ty named_expression_var;
20276 Token * newline_var;
20277 if (
20278 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20279 &&
20280 (named_expression_var = named_expression_rule(p)) // named_expression
20281 &&
20282 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20283 )
20284 {
20285 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20286 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20287 if (_res == NULL && PyErr_Occurred()) {
20288 p->error_indicator = 1;
20289 D(p->level--);
20290 return NULL;
20291 }
20292 goto done;
20293 }
20294 p->mark = _mark;
20295 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20297 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020298 { // 'if' named_expression ':' NEWLINE !INDENT
20299 if (p->error_indicator) {
20300 D(p->level--);
20301 return NULL;
20302 }
20303 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20304 Token * _literal;
20305 Token * a;
20306 expr_ty a_1;
20307 Token * newline_var;
20308 if (
20309 (a = _PyPegen_expect_token(p, 510)) // token='if'
20310 &&
20311 (a_1 = named_expression_rule(p)) // named_expression
20312 &&
20313 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20314 &&
20315 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20316 &&
20317 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20318 )
20319 {
20320 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20321 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20322 if (_res == NULL && PyErr_Occurred()) {
20323 p->error_indicator = 1;
20324 D(p->level--);
20325 return NULL;
20326 }
20327 goto done;
20328 }
20329 p->mark = _mark;
20330 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20332 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020333 _res = NULL;
20334 done:
20335 D(p->level--);
20336 return _res;
20337}
20338
Pablo Galindo56c95df2021-04-21 15:28:21 +010020339// invalid_elif_stmt:
20340// | 'elif' named_expression NEWLINE
20341// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020342static void *
20343invalid_elif_stmt_rule(Parser *p)
20344{
20345 D(p->level++);
20346 if (p->error_indicator) {
20347 D(p->level--);
20348 return NULL;
20349 }
20350 void * _res = NULL;
20351 int _mark = p->mark;
20352 { // 'elif' named_expression NEWLINE
20353 if (p->error_indicator) {
20354 D(p->level--);
20355 return NULL;
20356 }
20357 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20358 Token * _keyword;
20359 expr_ty named_expression_var;
20360 Token * newline_var;
20361 if (
20362 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20363 &&
20364 (named_expression_var = named_expression_rule(p)) // named_expression
20365 &&
20366 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20367 )
20368 {
20369 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20370 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20371 if (_res == NULL && PyErr_Occurred()) {
20372 p->error_indicator = 1;
20373 D(p->level--);
20374 return NULL;
20375 }
20376 goto done;
20377 }
20378 p->mark = _mark;
20379 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20381 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020382 { // 'elif' named_expression ':' NEWLINE !INDENT
20383 if (p->error_indicator) {
20384 D(p->level--);
20385 return NULL;
20386 }
20387 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20388 Token * _literal;
20389 Token * a;
20390 expr_ty named_expression_var;
20391 Token * newline_var;
20392 if (
20393 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20394 &&
20395 (named_expression_var = named_expression_rule(p)) // named_expression
20396 &&
20397 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20398 &&
20399 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20400 &&
20401 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20402 )
20403 {
20404 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20405 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20406 if (_res == NULL && PyErr_Occurred()) {
20407 p->error_indicator = 1;
20408 D(p->level--);
20409 return NULL;
20410 }
20411 goto done;
20412 }
20413 p->mark = _mark;
20414 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20416 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020417 _res = NULL;
20418 done:
20419 D(p->level--);
20420 return _res;
20421}
20422
Pablo Galindo56c95df2021-04-21 15:28:21 +010020423// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20424static void *
20425invalid_else_stmt_rule(Parser *p)
20426{
20427 D(p->level++);
20428 if (p->error_indicator) {
20429 D(p->level--);
20430 return NULL;
20431 }
20432 void * _res = NULL;
20433 int _mark = p->mark;
20434 { // 'else' ':' NEWLINE !INDENT
20435 if (p->error_indicator) {
20436 D(p->level--);
20437 return NULL;
20438 }
20439 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20440 Token * _literal;
20441 Token * a;
20442 Token * newline_var;
20443 if (
20444 (a = _PyPegen_expect_token(p, 516)) // token='else'
20445 &&
20446 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20447 &&
20448 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20449 &&
20450 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20451 )
20452 {
20453 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20454 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20455 if (_res == NULL && PyErr_Occurred()) {
20456 p->error_indicator = 1;
20457 D(p->level--);
20458 return NULL;
20459 }
20460 goto done;
20461 }
20462 p->mark = _mark;
20463 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20465 }
20466 _res = NULL;
20467 done:
20468 D(p->level--);
20469 return _res;
20470}
20471
20472// invalid_while_stmt:
20473// | 'while' named_expression NEWLINE
20474// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020475static void *
20476invalid_while_stmt_rule(Parser *p)
20477{
20478 D(p->level++);
20479 if (p->error_indicator) {
20480 D(p->level--);
20481 return NULL;
20482 }
20483 void * _res = NULL;
20484 int _mark = p->mark;
20485 { // 'while' named_expression NEWLINE
20486 if (p->error_indicator) {
20487 D(p->level--);
20488 return NULL;
20489 }
20490 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20491 Token * _keyword;
20492 expr_ty named_expression_var;
20493 Token * newline_var;
20494 if (
20495 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20496 &&
20497 (named_expression_var = named_expression_rule(p)) // named_expression
20498 &&
20499 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20500 )
20501 {
20502 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20503 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20504 if (_res == NULL && PyErr_Occurred()) {
20505 p->error_indicator = 1;
20506 D(p->level--);
20507 return NULL;
20508 }
20509 goto done;
20510 }
20511 p->mark = _mark;
20512 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20514 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020515 { // 'while' named_expression ':' NEWLINE !INDENT
20516 if (p->error_indicator) {
20517 D(p->level--);
20518 return NULL;
20519 }
20520 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20521 Token * _literal;
20522 Token * a;
20523 expr_ty named_expression_var;
20524 Token * newline_var;
20525 if (
20526 (a = _PyPegen_expect_token(p, 512)) // token='while'
20527 &&
20528 (named_expression_var = named_expression_rule(p)) // named_expression
20529 &&
20530 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20531 &&
20532 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20533 &&
20534 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20535 )
20536 {
20537 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20538 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20539 if (_res == NULL && PyErr_Occurred()) {
20540 p->error_indicator = 1;
20541 D(p->level--);
20542 return NULL;
20543 }
20544 goto done;
20545 }
20546 p->mark = _mark;
20547 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20549 }
20550 _res = NULL;
20551 done:
20552 D(p->level--);
20553 return _res;
20554}
20555
20556// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20557static void *
20558invalid_for_stmt_rule(Parser *p)
20559{
20560 D(p->level++);
20561 if (p->error_indicator) {
20562 D(p->level--);
20563 return NULL;
20564 }
20565 void * _res = NULL;
20566 int _mark = p->mark;
20567 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20568 if (p->error_indicator) {
20569 D(p->level--);
20570 return NULL;
20571 }
20572 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"));
20573 Token * _keyword;
20574 Token * _literal;
20575 void *_opt_var;
20576 UNUSED(_opt_var); // Silence compiler warnings
20577 Token * a;
20578 Token * newline_var;
20579 expr_ty star_expressions_var;
20580 expr_ty star_targets_var;
20581 if (
20582 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20583 &&
20584 (a = _PyPegen_expect_token(p, 517)) // token='for'
20585 &&
20586 (star_targets_var = star_targets_rule(p)) // star_targets
20587 &&
20588 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20589 &&
20590 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20591 &&
20592 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20593 &&
20594 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20595 &&
20596 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20597 )
20598 {
20599 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"));
20600 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20601 if (_res == NULL && PyErr_Occurred()) {
20602 p->error_indicator = 1;
20603 D(p->level--);
20604 return NULL;
20605 }
20606 goto done;
20607 }
20608 p->mark = _mark;
20609 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20611 }
20612 _res = NULL;
20613 done:
20614 D(p->level--);
20615 return _res;
20616}
20617
20618// invalid_def_raw:
20619// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20620static void *
20621invalid_def_raw_rule(Parser *p)
20622{
20623 D(p->level++);
20624 if (p->error_indicator) {
20625 D(p->level--);
20626 return NULL;
20627 }
20628 void * _res = NULL;
20629 int _mark = p->mark;
20630 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20631 if (p->error_indicator) {
20632 D(p->level--);
20633 return NULL;
20634 }
20635 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20636 Token * _literal;
20637 Token * _literal_1;
20638 Token * _literal_2;
20639 void *_opt_var;
20640 UNUSED(_opt_var); // Silence compiler warnings
20641 void *_opt_var_1;
20642 UNUSED(_opt_var_1); // Silence compiler warnings
20643 void *_opt_var_2;
20644 UNUSED(_opt_var_2); // Silence compiler warnings
20645 Token * a;
20646 expr_ty name_var;
20647 Token * newline_var;
20648 if (
20649 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20650 &&
20651 (a = _PyPegen_expect_token(p, 526)) // token='def'
20652 &&
20653 (name_var = _PyPegen_name_token(p)) // NAME
20654 &&
20655 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20656 &&
20657 (_opt_var_1 = params_rule(p), 1) // params?
20658 &&
20659 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20660 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020661 (_opt_var_2 = _tmp_172_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020662 &&
20663 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20664 &&
20665 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20666 &&
20667 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20668 )
20669 {
20670 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20671 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20672 if (_res == NULL && PyErr_Occurred()) {
20673 p->error_indicator = 1;
20674 D(p->level--);
20675 return NULL;
20676 }
20677 goto done;
20678 }
20679 p->mark = _mark;
20680 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20682 }
20683 _res = NULL;
20684 done:
20685 D(p->level--);
20686 return _res;
20687}
20688
20689// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20690static void *
20691invalid_class_def_raw_rule(Parser *p)
20692{
20693 D(p->level++);
20694 if (p->error_indicator) {
20695 D(p->level--);
20696 return NULL;
20697 }
20698 void * _res = NULL;
20699 int _mark = p->mark;
20700 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20701 if (p->error_indicator) {
20702 D(p->level--);
20703 return NULL;
20704 }
20705 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20706 Token * _literal;
20707 void *_opt_var;
20708 UNUSED(_opt_var); // Silence compiler warnings
20709 Token * a;
20710 expr_ty name_var;
20711 Token * newline_var;
20712 if (
20713 (a = _PyPegen_expect_token(p, 527)) // token='class'
20714 &&
20715 (name_var = _PyPegen_name_token(p)) // NAME
20716 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020717 (_opt_var = _tmp_173_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020718 &&
20719 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20720 &&
20721 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20722 &&
20723 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20724 )
20725 {
20726 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20727 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20728 if (_res == NULL && PyErr_Occurred()) {
20729 p->error_indicator = 1;
20730 D(p->level--);
20731 return NULL;
20732 }
20733 goto done;
20734 }
20735 p->mark = _mark;
20736 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20738 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020739 _res = NULL;
20740 done:
20741 D(p->level--);
20742 return _res;
20743}
20744
Pablo Galindoda743502021-04-15 14:06:39 +010020745// invalid_double_starred_kvpairs:
20746// | ','.double_starred_kvpair+ ',' invalid_kvpair
20747// | expression ':' '*' bitwise_or
20748// | expression ':' &('}' | ',')
20749static void *
20750invalid_double_starred_kvpairs_rule(Parser *p)
20751{
20752 D(p->level++);
20753 if (p->error_indicator) {
20754 D(p->level--);
20755 return NULL;
20756 }
20757 void * _res = NULL;
20758 int _mark = p->mark;
20759 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20760 if (p->error_indicator) {
20761 D(p->level--);
20762 return NULL;
20763 }
20764 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020765 asdl_seq * _gather_174_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020766 Token * _literal;
20767 void *invalid_kvpair_var;
20768 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010020769 (_gather_174_var = _gather_174_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020770 &&
20771 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20772 &&
20773 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20774 )
20775 {
20776 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020777 _res = _PyPegen_dummy_name(p, _gather_174_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020778 goto done;
20779 }
20780 p->mark = _mark;
20781 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20783 }
20784 { // expression ':' '*' bitwise_or
20785 if (p->error_indicator) {
20786 D(p->level--);
20787 return NULL;
20788 }
20789 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20790 Token * _literal;
20791 Token * a;
20792 expr_ty bitwise_or_var;
20793 expr_ty expression_var;
20794 if (
20795 (expression_var = expression_rule(p)) // expression
20796 &&
20797 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20798 &&
20799 (a = _PyPegen_expect_token(p, 16)) // token='*'
20800 &&
20801 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20802 )
20803 {
20804 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020805 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020806 if (_res == NULL && PyErr_Occurred()) {
20807 p->error_indicator = 1;
20808 D(p->level--);
20809 return NULL;
20810 }
20811 goto done;
20812 }
20813 p->mark = _mark;
20814 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20816 }
20817 { // expression ':' &('}' | ',')
20818 if (p->error_indicator) {
20819 D(p->level--);
20820 return NULL;
20821 }
20822 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20823 Token * a;
20824 expr_ty expression_var;
20825 if (
20826 (expression_var = expression_rule(p)) // expression
20827 &&
20828 (a = _PyPegen_expect_token(p, 11)) // token=':'
20829 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020830 _PyPegen_lookahead(1, _tmp_176_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020831 )
20832 {
20833 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20834 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20835 if (_res == NULL && PyErr_Occurred()) {
20836 p->error_indicator = 1;
20837 D(p->level--);
20838 return NULL;
20839 }
20840 goto done;
20841 }
20842 p->mark = _mark;
20843 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20845 }
20846 _res = NULL;
20847 done:
20848 D(p->level--);
20849 return _res;
20850}
20851
20852// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20853static void *
20854invalid_kvpair_rule(Parser *p)
20855{
20856 D(p->level++);
20857 if (p->error_indicator) {
20858 D(p->level--);
20859 return NULL;
20860 }
20861 void * _res = NULL;
20862 int _mark = p->mark;
20863 { // expression !(':')
20864 if (p->error_indicator) {
20865 D(p->level--);
20866 return NULL;
20867 }
20868 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20869 expr_ty a;
20870 if (
20871 (a = expression_rule(p)) // expression
20872 &&
20873 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20874 )
20875 {
20876 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020877 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
Pablo Galindoda743502021-04-15 14:06:39 +010020878 if (_res == NULL && PyErr_Occurred()) {
20879 p->error_indicator = 1;
20880 D(p->level--);
20881 return NULL;
20882 }
20883 goto done;
20884 }
20885 p->mark = _mark;
20886 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
20888 }
20889 { // expression ':' '*' bitwise_or
20890 if (p->error_indicator) {
20891 D(p->level--);
20892 return NULL;
20893 }
20894 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20895 Token * _literal;
20896 Token * a;
20897 expr_ty bitwise_or_var;
20898 expr_ty expression_var;
20899 if (
20900 (expression_var = expression_rule(p)) // expression
20901 &&
20902 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20903 &&
20904 (a = _PyPegen_expect_token(p, 16)) // token='*'
20905 &&
20906 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20907 )
20908 {
20909 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020910 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020911 if (_res == NULL && PyErr_Occurred()) {
20912 p->error_indicator = 1;
20913 D(p->level--);
20914 return NULL;
20915 }
20916 goto done;
20917 }
20918 p->mark = _mark;
20919 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20921 }
20922 { // expression ':'
20923 if (p->error_indicator) {
20924 D(p->level--);
20925 return NULL;
20926 }
20927 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20928 Token * a;
20929 expr_ty expression_var;
20930 if (
20931 (expression_var = expression_rule(p)) // expression
20932 &&
20933 (a = _PyPegen_expect_token(p, 11)) // token=':'
20934 )
20935 {
20936 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20937 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20938 if (_res == NULL && PyErr_Occurred()) {
20939 p->error_indicator = 1;
20940 D(p->level--);
20941 return NULL;
20942 }
20943 goto done;
20944 }
20945 p->mark = _mark;
20946 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
20948 }
20949 _res = NULL;
20950 done:
20951 D(p->level--);
20952 return _res;
20953}
20954
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020955// _loop0_1: NEWLINE
20956static asdl_seq *
20957_loop0_1_rule(Parser *p)
20958{
20959 D(p->level++);
20960 if (p->error_indicator) {
20961 D(p->level--);
20962 return NULL;
20963 }
20964 void *_res = NULL;
20965 int _mark = p->mark;
20966 int _start_mark = p->mark;
20967 void **_children = PyMem_Malloc(sizeof(void *));
20968 if (!_children) {
20969 p->error_indicator = 1;
20970 PyErr_NoMemory();
20971 D(p->level--);
20972 return NULL;
20973 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020974 Py_ssize_t _children_capacity = 1;
20975 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020976 { // NEWLINE
20977 if (p->error_indicator) {
20978 D(p->level--);
20979 return NULL;
20980 }
20981 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20982 Token * newline_var;
20983 while (
20984 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20985 )
20986 {
20987 _res = newline_var;
20988 if (_n == _children_capacity) {
20989 _children_capacity *= 2;
20990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20991 if (!_new_children) {
20992 p->error_indicator = 1;
20993 PyErr_NoMemory();
20994 D(p->level--);
20995 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020996 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020997 _children = _new_children;
20998 }
20999 _children[_n++] = _res;
21000 _mark = p->mark;
21001 }
21002 p->mark = _mark;
21003 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021006 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021007 if (!_seq) {
21008 PyMem_Free(_children);
21009 p->error_indicator = 1;
21010 PyErr_NoMemory();
21011 D(p->level--);
21012 return NULL;
21013 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021014 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021015 PyMem_Free(_children);
21016 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21017 D(p->level--);
21018 return _seq;
21019}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021020
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021021// _loop0_2: NEWLINE
21022static asdl_seq *
21023_loop0_2_rule(Parser *p)
21024{
21025 D(p->level++);
21026 if (p->error_indicator) {
21027 D(p->level--);
21028 return NULL;
21029 }
21030 void *_res = NULL;
21031 int _mark = p->mark;
21032 int _start_mark = p->mark;
21033 void **_children = PyMem_Malloc(sizeof(void *));
21034 if (!_children) {
21035 p->error_indicator = 1;
21036 PyErr_NoMemory();
21037 D(p->level--);
21038 return NULL;
21039 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021040 Py_ssize_t _children_capacity = 1;
21041 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021042 { // NEWLINE
21043 if (p->error_indicator) {
21044 D(p->level--);
21045 return NULL;
21046 }
21047 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21048 Token * newline_var;
21049 while (
21050 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21051 )
21052 {
21053 _res = newline_var;
21054 if (_n == _children_capacity) {
21055 _children_capacity *= 2;
21056 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21057 if (!_new_children) {
21058 p->error_indicator = 1;
21059 PyErr_NoMemory();
21060 D(p->level--);
21061 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021062 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021063 _children = _new_children;
21064 }
21065 _children[_n++] = _res;
21066 _mark = p->mark;
21067 }
21068 p->mark = _mark;
21069 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021072 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073 if (!_seq) {
21074 PyMem_Free(_children);
21075 p->error_indicator = 1;
21076 PyErr_NoMemory();
21077 D(p->level--);
21078 return NULL;
21079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021080 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021081 PyMem_Free(_children);
21082 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21083 D(p->level--);
21084 return _seq;
21085}
21086
21087// _loop0_4: ',' expression
21088static asdl_seq *
21089_loop0_4_rule(Parser *p)
21090{
21091 D(p->level++);
21092 if (p->error_indicator) {
21093 D(p->level--);
21094 return NULL;
21095 }
21096 void *_res = NULL;
21097 int _mark = p->mark;
21098 int _start_mark = p->mark;
21099 void **_children = PyMem_Malloc(sizeof(void *));
21100 if (!_children) {
21101 p->error_indicator = 1;
21102 PyErr_NoMemory();
21103 D(p->level--);
21104 return NULL;
21105 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021106 Py_ssize_t _children_capacity = 1;
21107 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021108 { // ',' expression
21109 if (p->error_indicator) {
21110 D(p->level--);
21111 return NULL;
21112 }
21113 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21114 Token * _literal;
21115 expr_ty elem;
21116 while (
21117 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21118 &&
21119 (elem = expression_rule(p)) // expression
21120 )
21121 {
21122 _res = elem;
21123 if (_res == NULL && PyErr_Occurred()) {
21124 p->error_indicator = 1;
21125 PyMem_Free(_children);
21126 D(p->level--);
21127 return NULL;
21128 }
21129 if (_n == _children_capacity) {
21130 _children_capacity *= 2;
21131 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21132 if (!_new_children) {
21133 p->error_indicator = 1;
21134 PyErr_NoMemory();
21135 D(p->level--);
21136 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021137 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021138 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021139 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021140 _children[_n++] = _res;
21141 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021142 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021143 p->mark = _mark;
21144 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021146 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021147 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021148 if (!_seq) {
21149 PyMem_Free(_children);
21150 p->error_indicator = 1;
21151 PyErr_NoMemory();
21152 D(p->level--);
21153 return NULL;
21154 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021155 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021156 PyMem_Free(_children);
21157 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21158 D(p->level--);
21159 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021160}
21161
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021162// _gather_3: expression _loop0_4
21163static asdl_seq *
21164_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021165{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021166 D(p->level++);
21167 if (p->error_indicator) {
21168 D(p->level--);
21169 return NULL;
21170 }
21171 asdl_seq * _res = NULL;
21172 int _mark = p->mark;
21173 { // expression _loop0_4
21174 if (p->error_indicator) {
21175 D(p->level--);
21176 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021177 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021178 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21179 expr_ty elem;
21180 asdl_seq * seq;
21181 if (
21182 (elem = expression_rule(p)) // expression
21183 &&
21184 (seq = _loop0_4_rule(p)) // _loop0_4
21185 )
21186 {
21187 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21188 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21189 goto done;
21190 }
21191 p->mark = _mark;
21192 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021194 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021195 _res = NULL;
21196 done:
21197 D(p->level--);
21198 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021199}
21200
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021201// _loop0_6: ',' expression
21202static asdl_seq *
21203_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021204{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021205 D(p->level++);
21206 if (p->error_indicator) {
21207 D(p->level--);
21208 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021209 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021210 void *_res = NULL;
21211 int _mark = p->mark;
21212 int _start_mark = p->mark;
21213 void **_children = PyMem_Malloc(sizeof(void *));
21214 if (!_children) {
21215 p->error_indicator = 1;
21216 PyErr_NoMemory();
21217 D(p->level--);
21218 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021219 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021220 Py_ssize_t _children_capacity = 1;
21221 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021222 { // ',' expression
21223 if (p->error_indicator) {
21224 D(p->level--);
21225 return NULL;
21226 }
21227 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21228 Token * _literal;
21229 expr_ty elem;
21230 while (
21231 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21232 &&
21233 (elem = expression_rule(p)) // expression
21234 )
21235 {
21236 _res = elem;
21237 if (_res == NULL && PyErr_Occurred()) {
21238 p->error_indicator = 1;
21239 PyMem_Free(_children);
21240 D(p->level--);
21241 return NULL;
21242 }
21243 if (_n == _children_capacity) {
21244 _children_capacity *= 2;
21245 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21246 if (!_new_children) {
21247 p->error_indicator = 1;
21248 PyErr_NoMemory();
21249 D(p->level--);
21250 return NULL;
21251 }
21252 _children = _new_children;
21253 }
21254 _children[_n++] = _res;
21255 _mark = p->mark;
21256 }
21257 p->mark = _mark;
21258 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21260 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021261 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021262 if (!_seq) {
21263 PyMem_Free(_children);
21264 p->error_indicator = 1;
21265 PyErr_NoMemory();
21266 D(p->level--);
21267 return NULL;
21268 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021269 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021270 PyMem_Free(_children);
21271 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21272 D(p->level--);
21273 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021274}
21275
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021276// _gather_5: expression _loop0_6
21277static asdl_seq *
21278_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021279{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021280 D(p->level++);
21281 if (p->error_indicator) {
21282 D(p->level--);
21283 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021284 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021285 asdl_seq * _res = NULL;
21286 int _mark = p->mark;
21287 { // expression _loop0_6
21288 if (p->error_indicator) {
21289 D(p->level--);
21290 return NULL;
21291 }
21292 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21293 expr_ty elem;
21294 asdl_seq * seq;
21295 if (
21296 (elem = expression_rule(p)) // expression
21297 &&
21298 (seq = _loop0_6_rule(p)) // _loop0_6
21299 )
21300 {
21301 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21302 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21303 goto done;
21304 }
21305 p->mark = _mark;
21306 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21308 }
21309 _res = NULL;
21310 done:
21311 D(p->level--);
21312 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021313}
21314
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021315// _loop0_8: ',' expression
21316static asdl_seq *
21317_loop0_8_rule(Parser *p)
21318{
21319 D(p->level++);
21320 if (p->error_indicator) {
21321 D(p->level--);
21322 return NULL;
21323 }
21324 void *_res = NULL;
21325 int _mark = p->mark;
21326 int _start_mark = p->mark;
21327 void **_children = PyMem_Malloc(sizeof(void *));
21328 if (!_children) {
21329 p->error_indicator = 1;
21330 PyErr_NoMemory();
21331 D(p->level--);
21332 return NULL;
21333 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021334 Py_ssize_t _children_capacity = 1;
21335 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021336 { // ',' expression
21337 if (p->error_indicator) {
21338 D(p->level--);
21339 return NULL;
21340 }
21341 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21342 Token * _literal;
21343 expr_ty elem;
21344 while (
21345 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21346 &&
21347 (elem = expression_rule(p)) // expression
21348 )
21349 {
21350 _res = elem;
21351 if (_res == NULL && PyErr_Occurred()) {
21352 p->error_indicator = 1;
21353 PyMem_Free(_children);
21354 D(p->level--);
21355 return NULL;
21356 }
21357 if (_n == _children_capacity) {
21358 _children_capacity *= 2;
21359 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21360 if (!_new_children) {
21361 p->error_indicator = 1;
21362 PyErr_NoMemory();
21363 D(p->level--);
21364 return NULL;
21365 }
21366 _children = _new_children;
21367 }
21368 _children[_n++] = _res;
21369 _mark = p->mark;
21370 }
21371 p->mark = _mark;
21372 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021375 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021376 if (!_seq) {
21377 PyMem_Free(_children);
21378 p->error_indicator = 1;
21379 PyErr_NoMemory();
21380 D(p->level--);
21381 return NULL;
21382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021383 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384 PyMem_Free(_children);
21385 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21386 D(p->level--);
21387 return _seq;
21388}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021389
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021390// _gather_7: expression _loop0_8
21391static asdl_seq *
21392_gather_7_rule(Parser *p)
21393{
21394 D(p->level++);
21395 if (p->error_indicator) {
21396 D(p->level--);
21397 return NULL;
21398 }
21399 asdl_seq * _res = NULL;
21400 int _mark = p->mark;
21401 { // expression _loop0_8
21402 if (p->error_indicator) {
21403 D(p->level--);
21404 return NULL;
21405 }
21406 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21407 expr_ty elem;
21408 asdl_seq * seq;
21409 if (
21410 (elem = expression_rule(p)) // expression
21411 &&
21412 (seq = _loop0_8_rule(p)) // _loop0_8
21413 )
21414 {
21415 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21416 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21417 goto done;
21418 }
21419 p->mark = _mark;
21420 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21422 }
21423 _res = NULL;
21424 done:
21425 D(p->level--);
21426 return _res;
21427}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021428
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021429// _loop0_10: ',' expression
21430static asdl_seq *
21431_loop0_10_rule(Parser *p)
21432{
21433 D(p->level++);
21434 if (p->error_indicator) {
21435 D(p->level--);
21436 return NULL;
21437 }
21438 void *_res = NULL;
21439 int _mark = p->mark;
21440 int _start_mark = p->mark;
21441 void **_children = PyMem_Malloc(sizeof(void *));
21442 if (!_children) {
21443 p->error_indicator = 1;
21444 PyErr_NoMemory();
21445 D(p->level--);
21446 return NULL;
21447 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021448 Py_ssize_t _children_capacity = 1;
21449 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021450 { // ',' expression
21451 if (p->error_indicator) {
21452 D(p->level--);
21453 return NULL;
21454 }
21455 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21456 Token * _literal;
21457 expr_ty elem;
21458 while (
21459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21460 &&
21461 (elem = expression_rule(p)) // expression
21462 )
21463 {
21464 _res = elem;
21465 if (_res == NULL && PyErr_Occurred()) {
21466 p->error_indicator = 1;
21467 PyMem_Free(_children);
21468 D(p->level--);
21469 return NULL;
21470 }
21471 if (_n == _children_capacity) {
21472 _children_capacity *= 2;
21473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21474 if (!_new_children) {
21475 p->error_indicator = 1;
21476 PyErr_NoMemory();
21477 D(p->level--);
21478 return NULL;
21479 }
21480 _children = _new_children;
21481 }
21482 _children[_n++] = _res;
21483 _mark = p->mark;
21484 }
21485 p->mark = _mark;
21486 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021490 if (!_seq) {
21491 PyMem_Free(_children);
21492 p->error_indicator = 1;
21493 PyErr_NoMemory();
21494 D(p->level--);
21495 return NULL;
21496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021498 PyMem_Free(_children);
21499 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21500 D(p->level--);
21501 return _seq;
21502}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021503
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021504// _gather_9: expression _loop0_10
21505static asdl_seq *
21506_gather_9_rule(Parser *p)
21507{
21508 D(p->level++);
21509 if (p->error_indicator) {
21510 D(p->level--);
21511 return NULL;
21512 }
21513 asdl_seq * _res = NULL;
21514 int _mark = p->mark;
21515 { // expression _loop0_10
21516 if (p->error_indicator) {
21517 D(p->level--);
21518 return NULL;
21519 }
21520 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21521 expr_ty elem;
21522 asdl_seq * seq;
21523 if (
21524 (elem = expression_rule(p)) // expression
21525 &&
21526 (seq = _loop0_10_rule(p)) // _loop0_10
21527 )
21528 {
21529 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21530 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21531 goto done;
21532 }
21533 p->mark = _mark;
21534 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21536 }
21537 _res = NULL;
21538 done:
21539 D(p->level--);
21540 return _res;
21541}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021542
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021543// _loop1_11: statement
21544static asdl_seq *
21545_loop1_11_rule(Parser *p)
21546{
21547 D(p->level++);
21548 if (p->error_indicator) {
21549 D(p->level--);
21550 return NULL;
21551 }
21552 void *_res = NULL;
21553 int _mark = p->mark;
21554 int _start_mark = p->mark;
21555 void **_children = PyMem_Malloc(sizeof(void *));
21556 if (!_children) {
21557 p->error_indicator = 1;
21558 PyErr_NoMemory();
21559 D(p->level--);
21560 return NULL;
21561 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021562 Py_ssize_t _children_capacity = 1;
21563 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021564 { // statement
21565 if (p->error_indicator) {
21566 D(p->level--);
21567 return NULL;
21568 }
21569 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021570 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021571 while (
21572 (statement_var = statement_rule(p)) // statement
21573 )
21574 {
21575 _res = statement_var;
21576 if (_n == _children_capacity) {
21577 _children_capacity *= 2;
21578 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21579 if (!_new_children) {
21580 p->error_indicator = 1;
21581 PyErr_NoMemory();
21582 D(p->level--);
21583 return NULL;
21584 }
21585 _children = _new_children;
21586 }
21587 _children[_n++] = _res;
21588 _mark = p->mark;
21589 }
21590 p->mark = _mark;
21591 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21593 }
21594 if (_n == 0 || p->error_indicator) {
21595 PyMem_Free(_children);
21596 D(p->level--);
21597 return NULL;
21598 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021599 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021600 if (!_seq) {
21601 PyMem_Free(_children);
21602 p->error_indicator = 1;
21603 PyErr_NoMemory();
21604 D(p->level--);
21605 return NULL;
21606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021607 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021608 PyMem_Free(_children);
21609 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21610 D(p->level--);
21611 return _seq;
21612}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021613
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021614// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021615static asdl_seq *
21616_loop0_13_rule(Parser *p)
21617{
21618 D(p->level++);
21619 if (p->error_indicator) {
21620 D(p->level--);
21621 return NULL;
21622 }
21623 void *_res = NULL;
21624 int _mark = p->mark;
21625 int _start_mark = p->mark;
21626 void **_children = PyMem_Malloc(sizeof(void *));
21627 if (!_children) {
21628 p->error_indicator = 1;
21629 PyErr_NoMemory();
21630 D(p->level--);
21631 return NULL;
21632 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021633 Py_ssize_t _children_capacity = 1;
21634 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021635 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021636 if (p->error_indicator) {
21637 D(p->level--);
21638 return NULL;
21639 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021640 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021641 Token * _literal;
21642 stmt_ty elem;
21643 while (
21644 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21645 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021646 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021647 )
21648 {
21649 _res = elem;
21650 if (_res == NULL && PyErr_Occurred()) {
21651 p->error_indicator = 1;
21652 PyMem_Free(_children);
21653 D(p->level--);
21654 return NULL;
21655 }
21656 if (_n == _children_capacity) {
21657 _children_capacity *= 2;
21658 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21659 if (!_new_children) {
21660 p->error_indicator = 1;
21661 PyErr_NoMemory();
21662 D(p->level--);
21663 return NULL;
21664 }
21665 _children = _new_children;
21666 }
21667 _children[_n++] = _res;
21668 _mark = p->mark;
21669 }
21670 p->mark = _mark;
21671 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021674 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021675 if (!_seq) {
21676 PyMem_Free(_children);
21677 p->error_indicator = 1;
21678 PyErr_NoMemory();
21679 D(p->level--);
21680 return NULL;
21681 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021682 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021683 PyMem_Free(_children);
21684 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21685 D(p->level--);
21686 return _seq;
21687}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021688
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021689// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021690static asdl_seq *
21691_gather_12_rule(Parser *p)
21692{
21693 D(p->level++);
21694 if (p->error_indicator) {
21695 D(p->level--);
21696 return NULL;
21697 }
21698 asdl_seq * _res = NULL;
21699 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021700 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021701 if (p->error_indicator) {
21702 D(p->level--);
21703 return NULL;
21704 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021705 D(fprintf(stderr, "%*c> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021706 stmt_ty elem;
21707 asdl_seq * seq;
21708 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021709 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021710 &&
21711 (seq = _loop0_13_rule(p)) // _loop0_13
21712 )
21713 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021714 D(fprintf(stderr, "%*c+ _gather_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021715 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21716 goto done;
21717 }
21718 p->mark = _mark;
21719 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021721 }
21722 _res = NULL;
21723 done:
21724 D(p->level--);
21725 return _res;
21726}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021727
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021728// _tmp_14: 'import' | 'from'
21729static void *
21730_tmp_14_rule(Parser *p)
21731{
21732 D(p->level++);
21733 if (p->error_indicator) {
21734 D(p->level--);
21735 return NULL;
21736 }
21737 void * _res = NULL;
21738 int _mark = p->mark;
21739 { // 'import'
21740 if (p->error_indicator) {
21741 D(p->level--);
21742 return NULL;
21743 }
21744 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21745 Token * _keyword;
21746 if (
21747 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21748 )
21749 {
21750 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21751 _res = _keyword;
21752 goto done;
21753 }
21754 p->mark = _mark;
21755 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21757 }
21758 { // 'from'
21759 if (p->error_indicator) {
21760 D(p->level--);
21761 return NULL;
21762 }
21763 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21764 Token * _keyword;
21765 if (
21766 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21767 )
21768 {
21769 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21770 _res = _keyword;
21771 goto done;
21772 }
21773 p->mark = _mark;
21774 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21776 }
21777 _res = NULL;
21778 done:
21779 D(p->level--);
21780 return _res;
21781}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021782
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021783// _tmp_15: 'def' | '@' | ASYNC
21784static void *
21785_tmp_15_rule(Parser *p)
21786{
21787 D(p->level++);
21788 if (p->error_indicator) {
21789 D(p->level--);
21790 return NULL;
21791 }
21792 void * _res = NULL;
21793 int _mark = p->mark;
21794 { // 'def'
21795 if (p->error_indicator) {
21796 D(p->level--);
21797 return NULL;
21798 }
21799 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21800 Token * _keyword;
21801 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021802 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021803 )
21804 {
21805 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21806 _res = _keyword;
21807 goto done;
21808 }
21809 p->mark = _mark;
21810 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21812 }
21813 { // '@'
21814 if (p->error_indicator) {
21815 D(p->level--);
21816 return NULL;
21817 }
21818 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21819 Token * _literal;
21820 if (
21821 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21822 )
21823 {
21824 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21825 _res = _literal;
21826 goto done;
21827 }
21828 p->mark = _mark;
21829 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21831 }
21832 { // ASYNC
21833 if (p->error_indicator) {
21834 D(p->level--);
21835 return NULL;
21836 }
21837 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21838 Token * async_var;
21839 if (
21840 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21841 )
21842 {
21843 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21844 _res = async_var;
21845 goto done;
21846 }
21847 p->mark = _mark;
21848 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21850 }
21851 _res = NULL;
21852 done:
21853 D(p->level--);
21854 return _res;
21855}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021856
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021857// _tmp_16: 'class' | '@'
21858static void *
21859_tmp_16_rule(Parser *p)
21860{
21861 D(p->level++);
21862 if (p->error_indicator) {
21863 D(p->level--);
21864 return NULL;
21865 }
21866 void * _res = NULL;
21867 int _mark = p->mark;
21868 { // 'class'
21869 if (p->error_indicator) {
21870 D(p->level--);
21871 return NULL;
21872 }
21873 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21874 Token * _keyword;
21875 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021876 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021877 )
21878 {
21879 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21880 _res = _keyword;
21881 goto done;
21882 }
21883 p->mark = _mark;
21884 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
21886 }
21887 { // '@'
21888 if (p->error_indicator) {
21889 D(p->level--);
21890 return NULL;
21891 }
21892 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21893 Token * _literal;
21894 if (
21895 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21896 )
21897 {
21898 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21899 _res = _literal;
21900 goto done;
21901 }
21902 p->mark = _mark;
21903 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21905 }
21906 _res = NULL;
21907 done:
21908 D(p->level--);
21909 return _res;
21910}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021911
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021912// _tmp_17: 'with' | ASYNC
21913static void *
21914_tmp_17_rule(Parser *p)
21915{
21916 D(p->level++);
21917 if (p->error_indicator) {
21918 D(p->level--);
21919 return NULL;
21920 }
21921 void * _res = NULL;
21922 int _mark = p->mark;
21923 { // 'with'
21924 if (p->error_indicator) {
21925 D(p->level--);
21926 return NULL;
21927 }
21928 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
21929 Token * _keyword;
21930 if (
21931 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
21932 )
21933 {
21934 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
21935 _res = _keyword;
21936 goto done;
21937 }
21938 p->mark = _mark;
21939 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
21941 }
21942 { // ASYNC
21943 if (p->error_indicator) {
21944 D(p->level--);
21945 return NULL;
21946 }
21947 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21948 Token * async_var;
21949 if (
21950 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21951 )
21952 {
21953 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21954 _res = async_var;
21955 goto done;
21956 }
21957 p->mark = _mark;
21958 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21960 }
21961 _res = NULL;
21962 done:
21963 D(p->level--);
21964 return _res;
21965}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021966
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021967// _tmp_18: 'for' | ASYNC
21968static void *
21969_tmp_18_rule(Parser *p)
21970{
21971 D(p->level++);
21972 if (p->error_indicator) {
21973 D(p->level--);
21974 return NULL;
21975 }
21976 void * _res = NULL;
21977 int _mark = p->mark;
21978 { // 'for'
21979 if (p->error_indicator) {
21980 D(p->level--);
21981 return NULL;
21982 }
21983 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
21984 Token * _keyword;
21985 if (
21986 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
21987 )
21988 {
21989 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
21990 _res = _keyword;
21991 goto done;
21992 }
21993 p->mark = _mark;
21994 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
21996 }
21997 { // ASYNC
21998 if (p->error_indicator) {
21999 D(p->level--);
22000 return NULL;
22001 }
22002 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22003 Token * async_var;
22004 if (
22005 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22006 )
22007 {
22008 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22009 _res = async_var;
22010 goto done;
22011 }
22012 p->mark = _mark;
22013 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22015 }
22016 _res = NULL;
22017 done:
22018 D(p->level--);
22019 return _res;
22020}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022021
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022022// _tmp_19: '=' annotated_rhs
22023static void *
22024_tmp_19_rule(Parser *p)
22025{
22026 D(p->level++);
22027 if (p->error_indicator) {
22028 D(p->level--);
22029 return NULL;
22030 }
22031 void * _res = NULL;
22032 int _mark = p->mark;
22033 { // '=' annotated_rhs
22034 if (p->error_indicator) {
22035 D(p->level--);
22036 return NULL;
22037 }
22038 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22039 Token * _literal;
22040 expr_ty d;
22041 if (
22042 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22043 &&
22044 (d = annotated_rhs_rule(p)) // annotated_rhs
22045 )
22046 {
22047 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22048 _res = d;
22049 if (_res == NULL && PyErr_Occurred()) {
22050 p->error_indicator = 1;
22051 D(p->level--);
22052 return NULL;
22053 }
22054 goto done;
22055 }
22056 p->mark = _mark;
22057 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22059 }
22060 _res = NULL;
22061 done:
22062 D(p->level--);
22063 return _res;
22064}
22065
22066// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22067static void *
22068_tmp_20_rule(Parser *p)
22069{
22070 D(p->level++);
22071 if (p->error_indicator) {
22072 D(p->level--);
22073 return NULL;
22074 }
22075 void * _res = NULL;
22076 int _mark = p->mark;
22077 { // '(' single_target ')'
22078 if (p->error_indicator) {
22079 D(p->level--);
22080 return NULL;
22081 }
22082 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22083 Token * _literal;
22084 Token * _literal_1;
22085 expr_ty b;
22086 if (
22087 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22088 &&
22089 (b = single_target_rule(p)) // single_target
22090 &&
22091 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22092 )
22093 {
22094 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22095 _res = b;
22096 if (_res == NULL && PyErr_Occurred()) {
22097 p->error_indicator = 1;
22098 D(p->level--);
22099 return NULL;
22100 }
22101 goto done;
22102 }
22103 p->mark = _mark;
22104 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22106 }
22107 { // single_subscript_attribute_target
22108 if (p->error_indicator) {
22109 D(p->level--);
22110 return NULL;
22111 }
22112 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22113 expr_ty single_subscript_attribute_target_var;
22114 if (
22115 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22116 )
22117 {
22118 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22119 _res = single_subscript_attribute_target_var;
22120 goto done;
22121 }
22122 p->mark = _mark;
22123 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22125 }
22126 _res = NULL;
22127 done:
22128 D(p->level--);
22129 return _res;
22130}
22131
22132// _tmp_21: '=' annotated_rhs
22133static void *
22134_tmp_21_rule(Parser *p)
22135{
22136 D(p->level++);
22137 if (p->error_indicator) {
22138 D(p->level--);
22139 return NULL;
22140 }
22141 void * _res = NULL;
22142 int _mark = p->mark;
22143 { // '=' annotated_rhs
22144 if (p->error_indicator) {
22145 D(p->level--);
22146 return NULL;
22147 }
22148 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22149 Token * _literal;
22150 expr_ty d;
22151 if (
22152 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22153 &&
22154 (d = annotated_rhs_rule(p)) // annotated_rhs
22155 )
22156 {
22157 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22158 _res = d;
22159 if (_res == NULL && PyErr_Occurred()) {
22160 p->error_indicator = 1;
22161 D(p->level--);
22162 return NULL;
22163 }
22164 goto done;
22165 }
22166 p->mark = _mark;
22167 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22169 }
22170 _res = NULL;
22171 done:
22172 D(p->level--);
22173 return _res;
22174}
22175
22176// _loop1_22: (star_targets '=')
22177static asdl_seq *
22178_loop1_22_rule(Parser *p)
22179{
22180 D(p->level++);
22181 if (p->error_indicator) {
22182 D(p->level--);
22183 return NULL;
22184 }
22185 void *_res = NULL;
22186 int _mark = p->mark;
22187 int _start_mark = p->mark;
22188 void **_children = PyMem_Malloc(sizeof(void *));
22189 if (!_children) {
22190 p->error_indicator = 1;
22191 PyErr_NoMemory();
22192 D(p->level--);
22193 return NULL;
22194 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022195 Py_ssize_t _children_capacity = 1;
22196 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022197 { // (star_targets '=')
22198 if (p->error_indicator) {
22199 D(p->level--);
22200 return NULL;
22201 }
22202 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022203 void *_tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022204 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022205 (_tmp_177_var = _tmp_177_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022206 )
22207 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022208 _res = _tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022209 if (_n == _children_capacity) {
22210 _children_capacity *= 2;
22211 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22212 if (!_new_children) {
22213 p->error_indicator = 1;
22214 PyErr_NoMemory();
22215 D(p->level--);
22216 return NULL;
22217 }
22218 _children = _new_children;
22219 }
22220 _children[_n++] = _res;
22221 _mark = p->mark;
22222 }
22223 p->mark = _mark;
22224 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22226 }
22227 if (_n == 0 || p->error_indicator) {
22228 PyMem_Free(_children);
22229 D(p->level--);
22230 return NULL;
22231 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022232 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022233 if (!_seq) {
22234 PyMem_Free(_children);
22235 p->error_indicator = 1;
22236 PyErr_NoMemory();
22237 D(p->level--);
22238 return NULL;
22239 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022240 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022241 PyMem_Free(_children);
22242 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22243 D(p->level--);
22244 return _seq;
22245}
22246
22247// _tmp_23: yield_expr | star_expressions
22248static void *
22249_tmp_23_rule(Parser *p)
22250{
22251 D(p->level++);
22252 if (p->error_indicator) {
22253 D(p->level--);
22254 return NULL;
22255 }
22256 void * _res = NULL;
22257 int _mark = p->mark;
22258 { // yield_expr
22259 if (p->error_indicator) {
22260 D(p->level--);
22261 return NULL;
22262 }
22263 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22264 expr_ty yield_expr_var;
22265 if (
22266 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22267 )
22268 {
22269 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22270 _res = yield_expr_var;
22271 goto done;
22272 }
22273 p->mark = _mark;
22274 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22276 }
22277 { // star_expressions
22278 if (p->error_indicator) {
22279 D(p->level--);
22280 return NULL;
22281 }
22282 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22283 expr_ty star_expressions_var;
22284 if (
22285 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22286 )
22287 {
22288 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22289 _res = star_expressions_var;
22290 goto done;
22291 }
22292 p->mark = _mark;
22293 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22295 }
22296 _res = NULL;
22297 done:
22298 D(p->level--);
22299 return _res;
22300}
22301
22302// _tmp_24: yield_expr | star_expressions
22303static void *
22304_tmp_24_rule(Parser *p)
22305{
22306 D(p->level++);
22307 if (p->error_indicator) {
22308 D(p->level--);
22309 return NULL;
22310 }
22311 void * _res = NULL;
22312 int _mark = p->mark;
22313 { // yield_expr
22314 if (p->error_indicator) {
22315 D(p->level--);
22316 return NULL;
22317 }
22318 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22319 expr_ty yield_expr_var;
22320 if (
22321 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22322 )
22323 {
22324 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22325 _res = yield_expr_var;
22326 goto done;
22327 }
22328 p->mark = _mark;
22329 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22331 }
22332 { // star_expressions
22333 if (p->error_indicator) {
22334 D(p->level--);
22335 return NULL;
22336 }
22337 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22338 expr_ty star_expressions_var;
22339 if (
22340 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22341 )
22342 {
22343 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22344 _res = star_expressions_var;
22345 goto done;
22346 }
22347 p->mark = _mark;
22348 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22350 }
22351 _res = NULL;
22352 done:
22353 D(p->level--);
22354 return _res;
22355}
22356
22357// _loop0_26: ',' NAME
22358static asdl_seq *
22359_loop0_26_rule(Parser *p)
22360{
22361 D(p->level++);
22362 if (p->error_indicator) {
22363 D(p->level--);
22364 return NULL;
22365 }
22366 void *_res = NULL;
22367 int _mark = p->mark;
22368 int _start_mark = p->mark;
22369 void **_children = PyMem_Malloc(sizeof(void *));
22370 if (!_children) {
22371 p->error_indicator = 1;
22372 PyErr_NoMemory();
22373 D(p->level--);
22374 return NULL;
22375 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022376 Py_ssize_t _children_capacity = 1;
22377 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022378 { // ',' NAME
22379 if (p->error_indicator) {
22380 D(p->level--);
22381 return NULL;
22382 }
22383 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22384 Token * _literal;
22385 expr_ty elem;
22386 while (
22387 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22388 &&
22389 (elem = _PyPegen_name_token(p)) // NAME
22390 )
22391 {
22392 _res = elem;
22393 if (_res == NULL && PyErr_Occurred()) {
22394 p->error_indicator = 1;
22395 PyMem_Free(_children);
22396 D(p->level--);
22397 return NULL;
22398 }
22399 if (_n == _children_capacity) {
22400 _children_capacity *= 2;
22401 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22402 if (!_new_children) {
22403 p->error_indicator = 1;
22404 PyErr_NoMemory();
22405 D(p->level--);
22406 return NULL;
22407 }
22408 _children = _new_children;
22409 }
22410 _children[_n++] = _res;
22411 _mark = p->mark;
22412 }
22413 p->mark = _mark;
22414 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22416 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022417 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022418 if (!_seq) {
22419 PyMem_Free(_children);
22420 p->error_indicator = 1;
22421 PyErr_NoMemory();
22422 D(p->level--);
22423 return NULL;
22424 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022425 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022426 PyMem_Free(_children);
22427 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22428 D(p->level--);
22429 return _seq;
22430}
22431
22432// _gather_25: NAME _loop0_26
22433static asdl_seq *
22434_gather_25_rule(Parser *p)
22435{
22436 D(p->level++);
22437 if (p->error_indicator) {
22438 D(p->level--);
22439 return NULL;
22440 }
22441 asdl_seq * _res = NULL;
22442 int _mark = p->mark;
22443 { // NAME _loop0_26
22444 if (p->error_indicator) {
22445 D(p->level--);
22446 return NULL;
22447 }
22448 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22449 expr_ty elem;
22450 asdl_seq * seq;
22451 if (
22452 (elem = _PyPegen_name_token(p)) // NAME
22453 &&
22454 (seq = _loop0_26_rule(p)) // _loop0_26
22455 )
22456 {
22457 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22458 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22459 goto done;
22460 }
22461 p->mark = _mark;
22462 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22464 }
22465 _res = NULL;
22466 done:
22467 D(p->level--);
22468 return _res;
22469}
22470
22471// _loop0_28: ',' NAME
22472static asdl_seq *
22473_loop0_28_rule(Parser *p)
22474{
22475 D(p->level++);
22476 if (p->error_indicator) {
22477 D(p->level--);
22478 return NULL;
22479 }
22480 void *_res = NULL;
22481 int _mark = p->mark;
22482 int _start_mark = p->mark;
22483 void **_children = PyMem_Malloc(sizeof(void *));
22484 if (!_children) {
22485 p->error_indicator = 1;
22486 PyErr_NoMemory();
22487 D(p->level--);
22488 return NULL;
22489 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022490 Py_ssize_t _children_capacity = 1;
22491 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022492 { // ',' NAME
22493 if (p->error_indicator) {
22494 D(p->level--);
22495 return NULL;
22496 }
22497 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22498 Token * _literal;
22499 expr_ty elem;
22500 while (
22501 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22502 &&
22503 (elem = _PyPegen_name_token(p)) // NAME
22504 )
22505 {
22506 _res = elem;
22507 if (_res == NULL && PyErr_Occurred()) {
22508 p->error_indicator = 1;
22509 PyMem_Free(_children);
22510 D(p->level--);
22511 return NULL;
22512 }
22513 if (_n == _children_capacity) {
22514 _children_capacity *= 2;
22515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22516 if (!_new_children) {
22517 p->error_indicator = 1;
22518 PyErr_NoMemory();
22519 D(p->level--);
22520 return NULL;
22521 }
22522 _children = _new_children;
22523 }
22524 _children[_n++] = _res;
22525 _mark = p->mark;
22526 }
22527 p->mark = _mark;
22528 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22530 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022531 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022532 if (!_seq) {
22533 PyMem_Free(_children);
22534 p->error_indicator = 1;
22535 PyErr_NoMemory();
22536 D(p->level--);
22537 return NULL;
22538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022539 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022540 PyMem_Free(_children);
22541 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22542 D(p->level--);
22543 return _seq;
22544}
22545
22546// _gather_27: NAME _loop0_28
22547static asdl_seq *
22548_gather_27_rule(Parser *p)
22549{
22550 D(p->level++);
22551 if (p->error_indicator) {
22552 D(p->level--);
22553 return NULL;
22554 }
22555 asdl_seq * _res = NULL;
22556 int _mark = p->mark;
22557 { // NAME _loop0_28
22558 if (p->error_indicator) {
22559 D(p->level--);
22560 return NULL;
22561 }
22562 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22563 expr_ty elem;
22564 asdl_seq * seq;
22565 if (
22566 (elem = _PyPegen_name_token(p)) // NAME
22567 &&
22568 (seq = _loop0_28_rule(p)) // _loop0_28
22569 )
22570 {
22571 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22572 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22573 goto done;
22574 }
22575 p->mark = _mark;
22576 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22578 }
22579 _res = NULL;
22580 done:
22581 D(p->level--);
22582 return _res;
22583}
22584
22585// _tmp_29: ',' expression
22586static void *
22587_tmp_29_rule(Parser *p)
22588{
22589 D(p->level++);
22590 if (p->error_indicator) {
22591 D(p->level--);
22592 return NULL;
22593 }
22594 void * _res = NULL;
22595 int _mark = p->mark;
22596 { // ',' expression
22597 if (p->error_indicator) {
22598 D(p->level--);
22599 return NULL;
22600 }
22601 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22602 Token * _literal;
22603 expr_ty z;
22604 if (
22605 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22606 &&
22607 (z = expression_rule(p)) // expression
22608 )
22609 {
22610 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22611 _res = z;
22612 if (_res == NULL && PyErr_Occurred()) {
22613 p->error_indicator = 1;
22614 D(p->level--);
22615 return NULL;
22616 }
22617 goto done;
22618 }
22619 p->mark = _mark;
22620 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22622 }
22623 _res = NULL;
22624 done:
22625 D(p->level--);
22626 return _res;
22627}
22628
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022629// _tmp_30: ';' | NEWLINE
22630static void *
22631_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022632{
22633 D(p->level++);
22634 if (p->error_indicator) {
22635 D(p->level--);
22636 return NULL;
22637 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022638 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022639 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022640 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022641 if (p->error_indicator) {
22642 D(p->level--);
22643 return NULL;
22644 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022645 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22646 Token * _literal;
22647 if (
22648 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022649 )
22650 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022651 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22652 _res = _literal;
22653 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022654 }
22655 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022656 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022658 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022659 { // NEWLINE
22660 if (p->error_indicator) {
22661 D(p->level--);
22662 return NULL;
22663 }
22664 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22665 Token * newline_var;
22666 if (
22667 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22668 )
22669 {
22670 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22671 _res = newline_var;
22672 goto done;
22673 }
22674 p->mark = _mark;
22675 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022677 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022678 _res = NULL;
22679 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022680 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022681 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022682}
22683
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022684// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022685static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022686_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022687{
22688 D(p->level++);
22689 if (p->error_indicator) {
22690 D(p->level--);
22691 return NULL;
22692 }
22693 void *_res = NULL;
22694 int _mark = p->mark;
22695 int _start_mark = p->mark;
22696 void **_children = PyMem_Malloc(sizeof(void *));
22697 if (!_children) {
22698 p->error_indicator = 1;
22699 PyErr_NoMemory();
22700 D(p->level--);
22701 return NULL;
22702 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022703 Py_ssize_t _children_capacity = 1;
22704 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022705 { // ('.' | '...')
22706 if (p->error_indicator) {
22707 D(p->level--);
22708 return NULL;
22709 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022710 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022711 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022712 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022713 (_tmp_178_var = _tmp_178_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022714 )
22715 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022716 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022717 if (_n == _children_capacity) {
22718 _children_capacity *= 2;
22719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22720 if (!_new_children) {
22721 p->error_indicator = 1;
22722 PyErr_NoMemory();
22723 D(p->level--);
22724 return NULL;
22725 }
22726 _children = _new_children;
22727 }
22728 _children[_n++] = _res;
22729 _mark = p->mark;
22730 }
22731 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022732 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022735 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022736 if (!_seq) {
22737 PyMem_Free(_children);
22738 p->error_indicator = 1;
22739 PyErr_NoMemory();
22740 D(p->level--);
22741 return NULL;
22742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022743 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022744 PyMem_Free(_children);
22745 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22746 D(p->level--);
22747 return _seq;
22748}
22749
22750// _loop1_32: ('.' | '...')
22751static asdl_seq *
22752_loop1_32_rule(Parser *p)
22753{
22754 D(p->level++);
22755 if (p->error_indicator) {
22756 D(p->level--);
22757 return NULL;
22758 }
22759 void *_res = NULL;
22760 int _mark = p->mark;
22761 int _start_mark = p->mark;
22762 void **_children = PyMem_Malloc(sizeof(void *));
22763 if (!_children) {
22764 p->error_indicator = 1;
22765 PyErr_NoMemory();
22766 D(p->level--);
22767 return NULL;
22768 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022769 Py_ssize_t _children_capacity = 1;
22770 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022771 { // ('.' | '...')
22772 if (p->error_indicator) {
22773 D(p->level--);
22774 return NULL;
22775 }
22776 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022777 void *_tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022778 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022779 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022780 )
22781 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022782 _res = _tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022783 if (_n == _children_capacity) {
22784 _children_capacity *= 2;
22785 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22786 if (!_new_children) {
22787 p->error_indicator = 1;
22788 PyErr_NoMemory();
22789 D(p->level--);
22790 return NULL;
22791 }
22792 _children = _new_children;
22793 }
22794 _children[_n++] = _res;
22795 _mark = p->mark;
22796 }
22797 p->mark = _mark;
22798 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22800 }
22801 if (_n == 0 || p->error_indicator) {
22802 PyMem_Free(_children);
22803 D(p->level--);
22804 return NULL;
22805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022806 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022807 if (!_seq) {
22808 PyMem_Free(_children);
22809 p->error_indicator = 1;
22810 PyErr_NoMemory();
22811 D(p->level--);
22812 return NULL;
22813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022814 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022815 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022816 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022817 D(p->level--);
22818 return _seq;
22819}
22820
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022821// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022822static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022823_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824{
22825 D(p->level++);
22826 if (p->error_indicator) {
22827 D(p->level--);
22828 return NULL;
22829 }
22830 void *_res = NULL;
22831 int _mark = p->mark;
22832 int _start_mark = p->mark;
22833 void **_children = PyMem_Malloc(sizeof(void *));
22834 if (!_children) {
22835 p->error_indicator = 1;
22836 PyErr_NoMemory();
22837 D(p->level--);
22838 return NULL;
22839 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022840 Py_ssize_t _children_capacity = 1;
22841 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022842 { // ',' import_from_as_name
22843 if (p->error_indicator) {
22844 D(p->level--);
22845 return NULL;
22846 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022847 D(fprintf(stderr, "%*c> _loop0_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022848 Token * _literal;
22849 alias_ty elem;
22850 while (
22851 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22852 &&
22853 (elem = import_from_as_name_rule(p)) // import_from_as_name
22854 )
22855 {
22856 _res = elem;
22857 if (_res == NULL && PyErr_Occurred()) {
22858 p->error_indicator = 1;
22859 PyMem_Free(_children);
22860 D(p->level--);
22861 return NULL;
22862 }
22863 if (_n == _children_capacity) {
22864 _children_capacity *= 2;
22865 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22866 if (!_new_children) {
22867 p->error_indicator = 1;
22868 PyErr_NoMemory();
22869 D(p->level--);
22870 return NULL;
22871 }
22872 _children = _new_children;
22873 }
22874 _children[_n++] = _res;
22875 _mark = p->mark;
22876 }
22877 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022878 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22880 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022881 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022882 if (!_seq) {
22883 PyMem_Free(_children);
22884 p->error_indicator = 1;
22885 PyErr_NoMemory();
22886 D(p->level--);
22887 return NULL;
22888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022889 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022890 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022891 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022892 D(p->level--);
22893 return _seq;
22894}
22895
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022896// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022897static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022898_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022899{
22900 D(p->level++);
22901 if (p->error_indicator) {
22902 D(p->level--);
22903 return NULL;
22904 }
22905 asdl_seq * _res = NULL;
22906 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022907 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022908 if (p->error_indicator) {
22909 D(p->level--);
22910 return NULL;
22911 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022912 D(fprintf(stderr, "%*c> _gather_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022913 alias_ty elem;
22914 asdl_seq * seq;
22915 if (
22916 (elem = import_from_as_name_rule(p)) // import_from_as_name
22917 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022918 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022919 )
22920 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022921 D(fprintf(stderr, "%*c+ _gather_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022922 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22923 goto done;
22924 }
22925 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022926 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
22927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022928 }
22929 _res = NULL;
22930 done:
22931 D(p->level--);
22932 return _res;
22933}
22934
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022935// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022936static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022937_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022938{
22939 D(p->level++);
22940 if (p->error_indicator) {
22941 D(p->level--);
22942 return NULL;
22943 }
22944 void * _res = NULL;
22945 int _mark = p->mark;
22946 { // 'as' NAME
22947 if (p->error_indicator) {
22948 D(p->level--);
22949 return NULL;
22950 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022951 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022952 Token * _keyword;
22953 expr_ty z;
22954 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022955 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022956 &&
22957 (z = _PyPegen_name_token(p)) // NAME
22958 )
22959 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022960 D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022961 _res = z;
22962 if (_res == NULL && PyErr_Occurred()) {
22963 p->error_indicator = 1;
22964 D(p->level--);
22965 return NULL;
22966 }
22967 goto done;
22968 }
22969 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022970 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22972 }
22973 _res = NULL;
22974 done:
22975 D(p->level--);
22976 return _res;
22977}
22978
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022979// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022980static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022981_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022982{
22983 D(p->level++);
22984 if (p->error_indicator) {
22985 D(p->level--);
22986 return NULL;
22987 }
22988 void *_res = NULL;
22989 int _mark = p->mark;
22990 int _start_mark = p->mark;
22991 void **_children = PyMem_Malloc(sizeof(void *));
22992 if (!_children) {
22993 p->error_indicator = 1;
22994 PyErr_NoMemory();
22995 D(p->level--);
22996 return NULL;
22997 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022998 Py_ssize_t _children_capacity = 1;
22999 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023000 { // ',' dotted_as_name
23001 if (p->error_indicator) {
23002 D(p->level--);
23003 return NULL;
23004 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023005 D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023006 Token * _literal;
23007 alias_ty elem;
23008 while (
23009 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23010 &&
23011 (elem = dotted_as_name_rule(p)) // dotted_as_name
23012 )
23013 {
23014 _res = elem;
23015 if (_res == NULL && PyErr_Occurred()) {
23016 p->error_indicator = 1;
23017 PyMem_Free(_children);
23018 D(p->level--);
23019 return NULL;
23020 }
23021 if (_n == _children_capacity) {
23022 _children_capacity *= 2;
23023 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23024 if (!_new_children) {
23025 p->error_indicator = 1;
23026 PyErr_NoMemory();
23027 D(p->level--);
23028 return NULL;
23029 }
23030 _children = _new_children;
23031 }
23032 _children[_n++] = _res;
23033 _mark = p->mark;
23034 }
23035 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023036 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23038 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023039 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023040 if (!_seq) {
23041 PyMem_Free(_children);
23042 p->error_indicator = 1;
23043 PyErr_NoMemory();
23044 D(p->level--);
23045 return NULL;
23046 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023047 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023048 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023049 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023050 D(p->level--);
23051 return _seq;
23052}
23053
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023054// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023055static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023056_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023057{
23058 D(p->level++);
23059 if (p->error_indicator) {
23060 D(p->level--);
23061 return NULL;
23062 }
23063 asdl_seq * _res = NULL;
23064 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023065 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023066 if (p->error_indicator) {
23067 D(p->level--);
23068 return NULL;
23069 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023070 D(fprintf(stderr, "%*c> _gather_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023071 alias_ty elem;
23072 asdl_seq * seq;
23073 if (
23074 (elem = dotted_as_name_rule(p)) // dotted_as_name
23075 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023076 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023077 )
23078 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023079 D(fprintf(stderr, "%*c+ _gather_36[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23081 goto done;
23082 }
23083 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023084 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023086 }
23087 _res = NULL;
23088 done:
23089 D(p->level--);
23090 return _res;
23091}
23092
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023093// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023094static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023095_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023096{
23097 D(p->level++);
23098 if (p->error_indicator) {
23099 D(p->level--);
23100 return NULL;
23101 }
23102 void * _res = NULL;
23103 int _mark = p->mark;
23104 { // 'as' NAME
23105 if (p->error_indicator) {
23106 D(p->level--);
23107 return NULL;
23108 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023109 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023110 Token * _keyword;
23111 expr_ty z;
23112 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023113 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023114 &&
23115 (z = _PyPegen_name_token(p)) // NAME
23116 )
23117 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023118 D(fprintf(stderr, "%*c+ _tmp_38[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023119 _res = z;
23120 if (_res == NULL && PyErr_Occurred()) {
23121 p->error_indicator = 1;
23122 D(p->level--);
23123 return NULL;
23124 }
23125 goto done;
23126 }
23127 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023128 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23130 }
23131 _res = NULL;
23132 done:
23133 D(p->level--);
23134 return _res;
23135}
23136
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023137// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023138static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023139_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023140{
23141 D(p->level++);
23142 if (p->error_indicator) {
23143 D(p->level--);
23144 return NULL;
23145 }
23146 void *_res = NULL;
23147 int _mark = p->mark;
23148 int _start_mark = p->mark;
23149 void **_children = PyMem_Malloc(sizeof(void *));
23150 if (!_children) {
23151 p->error_indicator = 1;
23152 PyErr_NoMemory();
23153 D(p->level--);
23154 return NULL;
23155 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023156 Py_ssize_t _children_capacity = 1;
23157 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023158 { // ',' with_item
23159 if (p->error_indicator) {
23160 D(p->level--);
23161 return NULL;
23162 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023163 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023164 Token * _literal;
23165 withitem_ty elem;
23166 while (
23167 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23168 &&
23169 (elem = with_item_rule(p)) // with_item
23170 )
23171 {
23172 _res = elem;
23173 if (_res == NULL && PyErr_Occurred()) {
23174 p->error_indicator = 1;
23175 PyMem_Free(_children);
23176 D(p->level--);
23177 return NULL;
23178 }
23179 if (_n == _children_capacity) {
23180 _children_capacity *= 2;
23181 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23182 if (!_new_children) {
23183 p->error_indicator = 1;
23184 PyErr_NoMemory();
23185 D(p->level--);
23186 return NULL;
23187 }
23188 _children = _new_children;
23189 }
23190 _children[_n++] = _res;
23191 _mark = p->mark;
23192 }
23193 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023194 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23196 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023197 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023198 if (!_seq) {
23199 PyMem_Free(_children);
23200 p->error_indicator = 1;
23201 PyErr_NoMemory();
23202 D(p->level--);
23203 return NULL;
23204 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023205 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023207 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208 D(p->level--);
23209 return _seq;
23210}
23211
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023212// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023213static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023214_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023215{
23216 D(p->level++);
23217 if (p->error_indicator) {
23218 D(p->level--);
23219 return NULL;
23220 }
23221 asdl_seq * _res = NULL;
23222 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023223 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023224 if (p->error_indicator) {
23225 D(p->level--);
23226 return NULL;
23227 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023228 D(fprintf(stderr, "%*c> _gather_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023229 withitem_ty elem;
23230 asdl_seq * seq;
23231 if (
23232 (elem = with_item_rule(p)) // with_item
23233 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023234 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023235 )
23236 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023237 D(fprintf(stderr, "%*c+ _gather_39[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023238 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23239 goto done;
23240 }
23241 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023242 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023244 }
23245 _res = NULL;
23246 done:
23247 D(p->level--);
23248 return _res;
23249}
23250
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023251// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023252static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023253_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023254{
23255 D(p->level++);
23256 if (p->error_indicator) {
23257 D(p->level--);
23258 return NULL;
23259 }
23260 void *_res = NULL;
23261 int _mark = p->mark;
23262 int _start_mark = p->mark;
23263 void **_children = PyMem_Malloc(sizeof(void *));
23264 if (!_children) {
23265 p->error_indicator = 1;
23266 PyErr_NoMemory();
23267 D(p->level--);
23268 return NULL;
23269 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023270 Py_ssize_t _children_capacity = 1;
23271 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023272 { // ',' with_item
23273 if (p->error_indicator) {
23274 D(p->level--);
23275 return NULL;
23276 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023277 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023278 Token * _literal;
23279 withitem_ty elem;
23280 while (
23281 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23282 &&
23283 (elem = with_item_rule(p)) // with_item
23284 )
23285 {
23286 _res = elem;
23287 if (_res == NULL && PyErr_Occurred()) {
23288 p->error_indicator = 1;
23289 PyMem_Free(_children);
23290 D(p->level--);
23291 return NULL;
23292 }
23293 if (_n == _children_capacity) {
23294 _children_capacity *= 2;
23295 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23296 if (!_new_children) {
23297 p->error_indicator = 1;
23298 PyErr_NoMemory();
23299 D(p->level--);
23300 return NULL;
23301 }
23302 _children = _new_children;
23303 }
23304 _children[_n++] = _res;
23305 _mark = p->mark;
23306 }
23307 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023308 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023311 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312 if (!_seq) {
23313 PyMem_Free(_children);
23314 p->error_indicator = 1;
23315 PyErr_NoMemory();
23316 D(p->level--);
23317 return NULL;
23318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023319 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023320 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023321 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023322 D(p->level--);
23323 return _seq;
23324}
23325
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023326// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023327static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023328_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329{
23330 D(p->level++);
23331 if (p->error_indicator) {
23332 D(p->level--);
23333 return NULL;
23334 }
23335 asdl_seq * _res = NULL;
23336 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023337 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023338 if (p->error_indicator) {
23339 D(p->level--);
23340 return NULL;
23341 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023342 D(fprintf(stderr, "%*c> _gather_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023343 withitem_ty elem;
23344 asdl_seq * seq;
23345 if (
23346 (elem = with_item_rule(p)) // with_item
23347 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023348 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023349 )
23350 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023351 D(fprintf(stderr, "%*c+ _gather_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023352 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23353 goto done;
23354 }
23355 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023356 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023358 }
23359 _res = NULL;
23360 done:
23361 D(p->level--);
23362 return _res;
23363}
23364
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023365// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023366static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023367_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023368{
23369 D(p->level++);
23370 if (p->error_indicator) {
23371 D(p->level--);
23372 return NULL;
23373 }
23374 void *_res = NULL;
23375 int _mark = p->mark;
23376 int _start_mark = p->mark;
23377 void **_children = PyMem_Malloc(sizeof(void *));
23378 if (!_children) {
23379 p->error_indicator = 1;
23380 PyErr_NoMemory();
23381 D(p->level--);
23382 return NULL;
23383 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023384 Py_ssize_t _children_capacity = 1;
23385 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023386 { // ',' with_item
23387 if (p->error_indicator) {
23388 D(p->level--);
23389 return NULL;
23390 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023391 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023392 Token * _literal;
23393 withitem_ty elem;
23394 while (
23395 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23396 &&
23397 (elem = with_item_rule(p)) // with_item
23398 )
23399 {
23400 _res = elem;
23401 if (_res == NULL && PyErr_Occurred()) {
23402 p->error_indicator = 1;
23403 PyMem_Free(_children);
23404 D(p->level--);
23405 return NULL;
23406 }
23407 if (_n == _children_capacity) {
23408 _children_capacity *= 2;
23409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23410 if (!_new_children) {
23411 p->error_indicator = 1;
23412 PyErr_NoMemory();
23413 D(p->level--);
23414 return NULL;
23415 }
23416 _children = _new_children;
23417 }
23418 _children[_n++] = _res;
23419 _mark = p->mark;
23420 }
23421 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023422 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23424 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023425 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023426 if (!_seq) {
23427 PyMem_Free(_children);
23428 p->error_indicator = 1;
23429 PyErr_NoMemory();
23430 D(p->level--);
23431 return NULL;
23432 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023433 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023434 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023435 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023436 D(p->level--);
23437 return _seq;
23438}
23439
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023440// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023441static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023442_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023443{
23444 D(p->level++);
23445 if (p->error_indicator) {
23446 D(p->level--);
23447 return NULL;
23448 }
23449 asdl_seq * _res = NULL;
23450 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023451 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023452 if (p->error_indicator) {
23453 D(p->level--);
23454 return NULL;
23455 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023456 D(fprintf(stderr, "%*c> _gather_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023457 withitem_ty elem;
23458 asdl_seq * seq;
23459 if (
23460 (elem = with_item_rule(p)) // with_item
23461 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023462 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023463 )
23464 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023465 D(fprintf(stderr, "%*c+ _gather_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23467 goto done;
23468 }
23469 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023470 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023472 }
23473 _res = NULL;
23474 done:
23475 D(p->level--);
23476 return _res;
23477}
23478
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023479// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023480static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023481_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023482{
23483 D(p->level++);
23484 if (p->error_indicator) {
23485 D(p->level--);
23486 return NULL;
23487 }
23488 void *_res = NULL;
23489 int _mark = p->mark;
23490 int _start_mark = p->mark;
23491 void **_children = PyMem_Malloc(sizeof(void *));
23492 if (!_children) {
23493 p->error_indicator = 1;
23494 PyErr_NoMemory();
23495 D(p->level--);
23496 return NULL;
23497 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023498 Py_ssize_t _children_capacity = 1;
23499 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023500 { // ',' with_item
23501 if (p->error_indicator) {
23502 D(p->level--);
23503 return NULL;
23504 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023505 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023506 Token * _literal;
23507 withitem_ty elem;
23508 while (
23509 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23510 &&
23511 (elem = with_item_rule(p)) // with_item
23512 )
23513 {
23514 _res = elem;
23515 if (_res == NULL && PyErr_Occurred()) {
23516 p->error_indicator = 1;
23517 PyMem_Free(_children);
23518 D(p->level--);
23519 return NULL;
23520 }
23521 if (_n == _children_capacity) {
23522 _children_capacity *= 2;
23523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23524 if (!_new_children) {
23525 p->error_indicator = 1;
23526 PyErr_NoMemory();
23527 D(p->level--);
23528 return NULL;
23529 }
23530 _children = _new_children;
23531 }
23532 _children[_n++] = _res;
23533 _mark = p->mark;
23534 }
23535 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023536 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023540 if (!_seq) {
23541 PyMem_Free(_children);
23542 p->error_indicator = 1;
23543 PyErr_NoMemory();
23544 D(p->level--);
23545 return NULL;
23546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023548 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023549 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023550 D(p->level--);
23551 return _seq;
23552}
23553
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023554// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023555static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023556_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023557{
23558 D(p->level++);
23559 if (p->error_indicator) {
23560 D(p->level--);
23561 return NULL;
23562 }
23563 asdl_seq * _res = NULL;
23564 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023565 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566 if (p->error_indicator) {
23567 D(p->level--);
23568 return NULL;
23569 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023570 D(fprintf(stderr, "%*c> _gather_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023571 withitem_ty elem;
23572 asdl_seq * seq;
23573 if (
23574 (elem = with_item_rule(p)) // with_item
23575 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023576 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023577 )
23578 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023579 D(fprintf(stderr, "%*c+ _gather_45[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023580 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23581 goto done;
23582 }
23583 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023584 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023586 }
23587 _res = NULL;
23588 done:
23589 D(p->level--);
23590 return _res;
23591}
23592
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023593// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023594static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023595_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023596{
23597 D(p->level++);
23598 if (p->error_indicator) {
23599 D(p->level--);
23600 return NULL;
23601 }
23602 void * _res = NULL;
23603 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023604 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023605 if (p->error_indicator) {
23606 D(p->level--);
23607 return NULL;
23608 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023609 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23610 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023611 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023612 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023613 )
23614 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023615 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23616 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023617 goto done;
23618 }
23619 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023620 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23622 }
23623 { // ')'
23624 if (p->error_indicator) {
23625 D(p->level--);
23626 return NULL;
23627 }
23628 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23629 Token * _literal;
23630 if (
23631 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23632 )
23633 {
23634 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23635 _res = _literal;
23636 goto done;
23637 }
23638 p->mark = _mark;
23639 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23641 }
23642 { // ':'
23643 if (p->error_indicator) {
23644 D(p->level--);
23645 return NULL;
23646 }
23647 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23648 Token * _literal;
23649 if (
23650 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23651 )
23652 {
23653 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23654 _res = _literal;
23655 goto done;
23656 }
23657 p->mark = _mark;
23658 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023660 }
23661 _res = NULL;
23662 done:
23663 D(p->level--);
23664 return _res;
23665}
23666
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023667// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023668static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023669_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023670{
23671 D(p->level++);
23672 if (p->error_indicator) {
23673 D(p->level--);
23674 return NULL;
23675 }
23676 void *_res = NULL;
23677 int _mark = p->mark;
23678 int _start_mark = p->mark;
23679 void **_children = PyMem_Malloc(sizeof(void *));
23680 if (!_children) {
23681 p->error_indicator = 1;
23682 PyErr_NoMemory();
23683 D(p->level--);
23684 return NULL;
23685 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023686 Py_ssize_t _children_capacity = 1;
23687 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688 { // except_block
23689 if (p->error_indicator) {
23690 D(p->level--);
23691 return NULL;
23692 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023693 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023694 excepthandler_ty except_block_var;
23695 while (
23696 (except_block_var = except_block_rule(p)) // except_block
23697 )
23698 {
23699 _res = except_block_var;
23700 if (_n == _children_capacity) {
23701 _children_capacity *= 2;
23702 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23703 if (!_new_children) {
23704 p->error_indicator = 1;
23705 PyErr_NoMemory();
23706 D(p->level--);
23707 return NULL;
23708 }
23709 _children = _new_children;
23710 }
23711 _children[_n++] = _res;
23712 _mark = p->mark;
23713 }
23714 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023715 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23717 }
23718 if (_n == 0 || p->error_indicator) {
23719 PyMem_Free(_children);
23720 D(p->level--);
23721 return NULL;
23722 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023723 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023724 if (!_seq) {
23725 PyMem_Free(_children);
23726 p->error_indicator = 1;
23727 PyErr_NoMemory();
23728 D(p->level--);
23729 return NULL;
23730 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023731 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023733 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023734 D(p->level--);
23735 return _seq;
23736}
23737
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023738// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023739static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023740_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023741{
23742 D(p->level++);
23743 if (p->error_indicator) {
23744 D(p->level--);
23745 return NULL;
23746 }
23747 void * _res = NULL;
23748 int _mark = p->mark;
23749 { // 'as' NAME
23750 if (p->error_indicator) {
23751 D(p->level--);
23752 return NULL;
23753 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023754 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023755 Token * _keyword;
23756 expr_ty z;
23757 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023758 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023759 &&
23760 (z = _PyPegen_name_token(p)) // NAME
23761 )
23762 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023763 D(fprintf(stderr, "%*c+ _tmp_49[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023764 _res = z;
23765 if (_res == NULL && PyErr_Occurred()) {
23766 p->error_indicator = 1;
23767 D(p->level--);
23768 return NULL;
23769 }
23770 goto done;
23771 }
23772 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023773 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23775 }
23776 _res = NULL;
23777 done:
23778 D(p->level--);
23779 return _res;
23780}
23781
Brandt Bucher145bf262021-02-26 14:51:55 -080023782// _loop1_50: case_block
23783static asdl_seq *
23784_loop1_50_rule(Parser *p)
23785{
23786 D(p->level++);
23787 if (p->error_indicator) {
23788 D(p->level--);
23789 return NULL;
23790 }
23791 void *_res = NULL;
23792 int _mark = p->mark;
23793 int _start_mark = p->mark;
23794 void **_children = PyMem_Malloc(sizeof(void *));
23795 if (!_children) {
23796 p->error_indicator = 1;
23797 PyErr_NoMemory();
23798 D(p->level--);
23799 return NULL;
23800 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023801 Py_ssize_t _children_capacity = 1;
23802 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023803 { // case_block
23804 if (p->error_indicator) {
23805 D(p->level--);
23806 return NULL;
23807 }
23808 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23809 match_case_ty case_block_var;
23810 while (
23811 (case_block_var = case_block_rule(p)) // case_block
23812 )
23813 {
23814 _res = case_block_var;
23815 if (_n == _children_capacity) {
23816 _children_capacity *= 2;
23817 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23818 if (!_new_children) {
23819 p->error_indicator = 1;
23820 PyErr_NoMemory();
23821 D(p->level--);
23822 return NULL;
23823 }
23824 _children = _new_children;
23825 }
23826 _children[_n++] = _res;
23827 _mark = p->mark;
23828 }
23829 p->mark = _mark;
23830 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23832 }
23833 if (_n == 0 || p->error_indicator) {
23834 PyMem_Free(_children);
23835 D(p->level--);
23836 return NULL;
23837 }
23838 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23839 if (!_seq) {
23840 PyMem_Free(_children);
23841 p->error_indicator = 1;
23842 PyErr_NoMemory();
23843 D(p->level--);
23844 return NULL;
23845 }
23846 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23847 PyMem_Free(_children);
23848 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23849 D(p->level--);
23850 return _seq;
23851}
23852
23853// _loop0_52: '|' closed_pattern
23854static asdl_seq *
23855_loop0_52_rule(Parser *p)
23856{
23857 D(p->level++);
23858 if (p->error_indicator) {
23859 D(p->level--);
23860 return NULL;
23861 }
23862 void *_res = NULL;
23863 int _mark = p->mark;
23864 int _start_mark = p->mark;
23865 void **_children = PyMem_Malloc(sizeof(void *));
23866 if (!_children) {
23867 p->error_indicator = 1;
23868 PyErr_NoMemory();
23869 D(p->level--);
23870 return NULL;
23871 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023872 Py_ssize_t _children_capacity = 1;
23873 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023874 { // '|' closed_pattern
23875 if (p->error_indicator) {
23876 D(p->level--);
23877 return NULL;
23878 }
23879 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23880 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023881 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080023882 while (
23883 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
23884 &&
23885 (elem = closed_pattern_rule(p)) // closed_pattern
23886 )
23887 {
23888 _res = elem;
23889 if (_res == NULL && PyErr_Occurred()) {
23890 p->error_indicator = 1;
23891 PyMem_Free(_children);
23892 D(p->level--);
23893 return NULL;
23894 }
23895 if (_n == _children_capacity) {
23896 _children_capacity *= 2;
23897 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23898 if (!_new_children) {
23899 p->error_indicator = 1;
23900 PyErr_NoMemory();
23901 D(p->level--);
23902 return NULL;
23903 }
23904 _children = _new_children;
23905 }
23906 _children[_n++] = _res;
23907 _mark = p->mark;
23908 }
23909 p->mark = _mark;
23910 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
23911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
23912 }
23913 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23914 if (!_seq) {
23915 PyMem_Free(_children);
23916 p->error_indicator = 1;
23917 PyErr_NoMemory();
23918 D(p->level--);
23919 return NULL;
23920 }
23921 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23922 PyMem_Free(_children);
23923 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
23924 D(p->level--);
23925 return _seq;
23926}
23927
23928// _gather_51: closed_pattern _loop0_52
23929static asdl_seq *
23930_gather_51_rule(Parser *p)
23931{
23932 D(p->level++);
23933 if (p->error_indicator) {
23934 D(p->level--);
23935 return NULL;
23936 }
23937 asdl_seq * _res = NULL;
23938 int _mark = p->mark;
23939 { // closed_pattern _loop0_52
23940 if (p->error_indicator) {
23941 D(p->level--);
23942 return NULL;
23943 }
23944 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023945 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080023946 asdl_seq * seq;
23947 if (
23948 (elem = closed_pattern_rule(p)) // closed_pattern
23949 &&
23950 (seq = _loop0_52_rule(p)) // _loop0_52
23951 )
23952 {
23953 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23954 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23955 goto done;
23956 }
23957 p->mark = _mark;
23958 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
23959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
23960 }
23961 _res = NULL;
23962 done:
23963 D(p->level--);
23964 return _res;
23965}
23966
23967// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023968static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023969_tmp_53_rule(Parser *p)
23970{
23971 D(p->level++);
23972 if (p->error_indicator) {
23973 D(p->level--);
23974 return NULL;
23975 }
23976 void * _res = NULL;
23977 int _mark = p->mark;
23978 { // '+'
23979 if (p->error_indicator) {
23980 D(p->level--);
23981 return NULL;
23982 }
23983 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
23984 Token * _literal;
23985 if (
23986 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
23987 )
23988 {
23989 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
23990 _res = _literal;
23991 goto done;
23992 }
23993 p->mark = _mark;
23994 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
23996 }
23997 { // '-'
23998 if (p->error_indicator) {
23999 D(p->level--);
24000 return NULL;
24001 }
24002 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24003 Token * _literal;
24004 if (
24005 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24006 )
24007 {
24008 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24009 _res = _literal;
24010 goto done;
24011 }
24012 p->mark = _mark;
24013 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24015 }
24016 _res = NULL;
24017 done:
24018 D(p->level--);
24019 return _res;
24020}
24021
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024022// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024023static void *
24024_tmp_54_rule(Parser *p)
24025{
24026 D(p->level++);
24027 if (p->error_indicator) {
24028 D(p->level--);
24029 return NULL;
24030 }
24031 void * _res = NULL;
24032 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024033 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024034 if (p->error_indicator) {
24035 D(p->level--);
24036 return NULL;
24037 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024038 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024039 Token * _literal;
24040 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024041 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024042 )
24043 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024044 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024045 _res = _literal;
24046 goto done;
24047 }
24048 p->mark = _mark;
24049 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024051 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024052 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024053 if (p->error_indicator) {
24054 D(p->level--);
24055 return NULL;
24056 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024057 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024058 Token * _literal;
24059 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024060 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024061 )
24062 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024063 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024064 _res = _literal;
24065 goto done;
24066 }
24067 p->mark = _mark;
24068 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024070 }
24071 _res = NULL;
24072 done:
24073 D(p->level--);
24074 return _res;
24075}
24076
24077// _tmp_55: '.' | '(' | '='
24078static void *
24079_tmp_55_rule(Parser *p)
24080{
24081 D(p->level++);
24082 if (p->error_indicator) {
24083 D(p->level--);
24084 return NULL;
24085 }
24086 void * _res = NULL;
24087 int _mark = p->mark;
24088 { // '.'
24089 if (p->error_indicator) {
24090 D(p->level--);
24091 return NULL;
24092 }
24093 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24094 Token * _literal;
24095 if (
24096 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24097 )
24098 {
24099 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24100 _res = _literal;
24101 goto done;
24102 }
24103 p->mark = _mark;
24104 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24106 }
24107 { // '('
24108 if (p->error_indicator) {
24109 D(p->level--);
24110 return NULL;
24111 }
24112 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24113 Token * _literal;
24114 if (
24115 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24116 )
24117 {
24118 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24119 _res = _literal;
24120 goto done;
24121 }
24122 p->mark = _mark;
24123 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24125 }
24126 { // '='
24127 if (p->error_indicator) {
24128 D(p->level--);
24129 return NULL;
24130 }
24131 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24132 Token * _literal;
24133 if (
24134 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24135 )
24136 {
24137 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24138 _res = _literal;
24139 goto done;
24140 }
24141 p->mark = _mark;
24142 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24144 }
24145 _res = NULL;
24146 done:
24147 D(p->level--);
24148 return _res;
24149}
24150
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024151// _tmp_56: '.' | '(' | '='
24152static void *
24153_tmp_56_rule(Parser *p)
24154{
24155 D(p->level++);
24156 if (p->error_indicator) {
24157 D(p->level--);
24158 return NULL;
24159 }
24160 void * _res = NULL;
24161 int _mark = p->mark;
24162 { // '.'
24163 if (p->error_indicator) {
24164 D(p->level--);
24165 return NULL;
24166 }
24167 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24168 Token * _literal;
24169 if (
24170 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24171 )
24172 {
24173 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24174 _res = _literal;
24175 goto done;
24176 }
24177 p->mark = _mark;
24178 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24180 }
24181 { // '('
24182 if (p->error_indicator) {
24183 D(p->level--);
24184 return NULL;
24185 }
24186 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24187 Token * _literal;
24188 if (
24189 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24190 )
24191 {
24192 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24193 _res = _literal;
24194 goto done;
24195 }
24196 p->mark = _mark;
24197 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24199 }
24200 { // '='
24201 if (p->error_indicator) {
24202 D(p->level--);
24203 return NULL;
24204 }
24205 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24206 Token * _literal;
24207 if (
24208 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24209 )
24210 {
24211 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24212 _res = _literal;
24213 goto done;
24214 }
24215 p->mark = _mark;
24216 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24218 }
24219 _res = NULL;
24220 done:
24221 D(p->level--);
24222 return _res;
24223}
24224
24225// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024226static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024227_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024228{
24229 D(p->level++);
24230 if (p->error_indicator) {
24231 D(p->level--);
24232 return NULL;
24233 }
24234 void *_res = NULL;
24235 int _mark = p->mark;
24236 int _start_mark = p->mark;
24237 void **_children = PyMem_Malloc(sizeof(void *));
24238 if (!_children) {
24239 p->error_indicator = 1;
24240 PyErr_NoMemory();
24241 D(p->level--);
24242 return NULL;
24243 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024244 Py_ssize_t _children_capacity = 1;
24245 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024246 { // ',' maybe_star_pattern
24247 if (p->error_indicator) {
24248 D(p->level--);
24249 return NULL;
24250 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024251 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024252 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024253 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024254 while (
24255 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24256 &&
24257 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24258 )
24259 {
24260 _res = elem;
24261 if (_res == NULL && PyErr_Occurred()) {
24262 p->error_indicator = 1;
24263 PyMem_Free(_children);
24264 D(p->level--);
24265 return NULL;
24266 }
24267 if (_n == _children_capacity) {
24268 _children_capacity *= 2;
24269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24270 if (!_new_children) {
24271 p->error_indicator = 1;
24272 PyErr_NoMemory();
24273 D(p->level--);
24274 return NULL;
24275 }
24276 _children = _new_children;
24277 }
24278 _children[_n++] = _res;
24279 _mark = p->mark;
24280 }
24281 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024282 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24284 }
24285 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24286 if (!_seq) {
24287 PyMem_Free(_children);
24288 p->error_indicator = 1;
24289 PyErr_NoMemory();
24290 D(p->level--);
24291 return NULL;
24292 }
24293 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24294 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024295 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024296 D(p->level--);
24297 return _seq;
24298}
24299
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024300// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024301static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024302_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024303{
24304 D(p->level++);
24305 if (p->error_indicator) {
24306 D(p->level--);
24307 return NULL;
24308 }
24309 asdl_seq * _res = NULL;
24310 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024311 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024312 if (p->error_indicator) {
24313 D(p->level--);
24314 return NULL;
24315 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024316 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24317 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024318 asdl_seq * seq;
24319 if (
24320 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24321 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024322 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024323 )
24324 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024325 D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24327 goto done;
24328 }
24329 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024330 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024332 }
24333 _res = NULL;
24334 done:
24335 D(p->level--);
24336 return _res;
24337}
24338
24339// _loop0_60: ',' key_value_pattern
24340static asdl_seq *
24341_loop0_60_rule(Parser *p)
24342{
24343 D(p->level++);
24344 if (p->error_indicator) {
24345 D(p->level--);
24346 return NULL;
24347 }
24348 void *_res = NULL;
24349 int _mark = p->mark;
24350 int _start_mark = p->mark;
24351 void **_children = PyMem_Malloc(sizeof(void *));
24352 if (!_children) {
24353 p->error_indicator = 1;
24354 PyErr_NoMemory();
24355 D(p->level--);
24356 return NULL;
24357 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024358 Py_ssize_t _children_capacity = 1;
24359 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024360 { // ',' key_value_pattern
24361 if (p->error_indicator) {
24362 D(p->level--);
24363 return NULL;
24364 }
24365 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24366 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024367 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024368 while (
24369 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24370 &&
24371 (elem = key_value_pattern_rule(p)) // key_value_pattern
24372 )
24373 {
24374 _res = elem;
24375 if (_res == NULL && PyErr_Occurred()) {
24376 p->error_indicator = 1;
24377 PyMem_Free(_children);
24378 D(p->level--);
24379 return NULL;
24380 }
24381 if (_n == _children_capacity) {
24382 _children_capacity *= 2;
24383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24384 if (!_new_children) {
24385 p->error_indicator = 1;
24386 PyErr_NoMemory();
24387 D(p->level--);
24388 return NULL;
24389 }
24390 _children = _new_children;
24391 }
24392 _children[_n++] = _res;
24393 _mark = p->mark;
24394 }
24395 p->mark = _mark;
24396 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24398 }
24399 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24400 if (!_seq) {
24401 PyMem_Free(_children);
24402 p->error_indicator = 1;
24403 PyErr_NoMemory();
24404 D(p->level--);
24405 return NULL;
24406 }
24407 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24408 PyMem_Free(_children);
24409 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24410 D(p->level--);
24411 return _seq;
24412}
24413
24414// _gather_59: key_value_pattern _loop0_60
24415static asdl_seq *
24416_gather_59_rule(Parser *p)
24417{
24418 D(p->level++);
24419 if (p->error_indicator) {
24420 D(p->level--);
24421 return NULL;
24422 }
24423 asdl_seq * _res = NULL;
24424 int _mark = p->mark;
24425 { // key_value_pattern _loop0_60
24426 if (p->error_indicator) {
24427 D(p->level--);
24428 return NULL;
24429 }
24430 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024431 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024432 asdl_seq * seq;
24433 if (
24434 (elem = key_value_pattern_rule(p)) // key_value_pattern
24435 &&
24436 (seq = _loop0_60_rule(p)) // _loop0_60
24437 )
24438 {
24439 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24440 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24441 goto done;
24442 }
24443 p->mark = _mark;
24444 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24446 }
24447 _res = NULL;
24448 done:
24449 D(p->level--);
24450 return _res;
24451}
24452
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024453// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024454static void *
24455_tmp_61_rule(Parser *p)
24456{
24457 D(p->level++);
24458 if (p->error_indicator) {
24459 D(p->level--);
24460 return NULL;
24461 }
24462 void * _res = NULL;
24463 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024464 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024465 if (p->error_indicator) {
24466 D(p->level--);
24467 return NULL;
24468 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024469 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24470 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024471 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024472 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024473 )
24474 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024475 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24476 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024477 goto done;
24478 }
24479 p->mark = _mark;
24480 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024482 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024483 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024484 if (p->error_indicator) {
24485 D(p->level--);
24486 return NULL;
24487 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024488 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24489 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024490 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024491 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024492 )
24493 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024494 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24495 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024496 goto done;
24497 }
24498 p->mark = _mark;
24499 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024501 }
24502 _res = NULL;
24503 done:
24504 D(p->level--);
24505 return _res;
24506}
24507
24508// _loop0_63: ',' pattern
24509static asdl_seq *
24510_loop0_63_rule(Parser *p)
24511{
24512 D(p->level++);
24513 if (p->error_indicator) {
24514 D(p->level--);
24515 return NULL;
24516 }
24517 void *_res = NULL;
24518 int _mark = p->mark;
24519 int _start_mark = p->mark;
24520 void **_children = PyMem_Malloc(sizeof(void *));
24521 if (!_children) {
24522 p->error_indicator = 1;
24523 PyErr_NoMemory();
24524 D(p->level--);
24525 return NULL;
24526 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024527 Py_ssize_t _children_capacity = 1;
24528 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024529 { // ',' pattern
24530 if (p->error_indicator) {
24531 D(p->level--);
24532 return NULL;
24533 }
24534 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24535 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024536 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024537 while (
24538 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24539 &&
24540 (elem = pattern_rule(p)) // pattern
24541 )
24542 {
24543 _res = elem;
24544 if (_res == NULL && PyErr_Occurred()) {
24545 p->error_indicator = 1;
24546 PyMem_Free(_children);
24547 D(p->level--);
24548 return NULL;
24549 }
24550 if (_n == _children_capacity) {
24551 _children_capacity *= 2;
24552 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24553 if (!_new_children) {
24554 p->error_indicator = 1;
24555 PyErr_NoMemory();
24556 D(p->level--);
24557 return NULL;
24558 }
24559 _children = _new_children;
24560 }
24561 _children[_n++] = _res;
24562 _mark = p->mark;
24563 }
24564 p->mark = _mark;
24565 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24567 }
24568 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24569 if (!_seq) {
24570 PyMem_Free(_children);
24571 p->error_indicator = 1;
24572 PyErr_NoMemory();
24573 D(p->level--);
24574 return NULL;
24575 }
24576 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24577 PyMem_Free(_children);
24578 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24579 D(p->level--);
24580 return _seq;
24581}
24582
24583// _gather_62: pattern _loop0_63
24584static asdl_seq *
24585_gather_62_rule(Parser *p)
24586{
24587 D(p->level++);
24588 if (p->error_indicator) {
24589 D(p->level--);
24590 return NULL;
24591 }
24592 asdl_seq * _res = NULL;
24593 int _mark = p->mark;
24594 { // pattern _loop0_63
24595 if (p->error_indicator) {
24596 D(p->level--);
24597 return NULL;
24598 }
24599 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024600 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024601 asdl_seq * seq;
24602 if (
24603 (elem = pattern_rule(p)) // pattern
24604 &&
24605 (seq = _loop0_63_rule(p)) // _loop0_63
24606 )
24607 {
24608 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24609 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24610 goto done;
24611 }
24612 p->mark = _mark;
24613 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24615 }
24616 _res = NULL;
24617 done:
24618 D(p->level--);
24619 return _res;
24620}
24621
24622// _loop0_65: ',' keyword_pattern
24623static asdl_seq *
24624_loop0_65_rule(Parser *p)
24625{
24626 D(p->level++);
24627 if (p->error_indicator) {
24628 D(p->level--);
24629 return NULL;
24630 }
24631 void *_res = NULL;
24632 int _mark = p->mark;
24633 int _start_mark = p->mark;
24634 void **_children = PyMem_Malloc(sizeof(void *));
24635 if (!_children) {
24636 p->error_indicator = 1;
24637 PyErr_NoMemory();
24638 D(p->level--);
24639 return NULL;
24640 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024641 Py_ssize_t _children_capacity = 1;
24642 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024643 { // ',' keyword_pattern
24644 if (p->error_indicator) {
24645 D(p->level--);
24646 return NULL;
24647 }
24648 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24649 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024650 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024651 while (
24652 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24653 &&
24654 (elem = keyword_pattern_rule(p)) // keyword_pattern
24655 )
24656 {
24657 _res = elem;
24658 if (_res == NULL && PyErr_Occurred()) {
24659 p->error_indicator = 1;
24660 PyMem_Free(_children);
24661 D(p->level--);
24662 return NULL;
24663 }
24664 if (_n == _children_capacity) {
24665 _children_capacity *= 2;
24666 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24667 if (!_new_children) {
24668 p->error_indicator = 1;
24669 PyErr_NoMemory();
24670 D(p->level--);
24671 return NULL;
24672 }
24673 _children = _new_children;
24674 }
24675 _children[_n++] = _res;
24676 _mark = p->mark;
24677 }
24678 p->mark = _mark;
24679 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24681 }
24682 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24683 if (!_seq) {
24684 PyMem_Free(_children);
24685 p->error_indicator = 1;
24686 PyErr_NoMemory();
24687 D(p->level--);
24688 return NULL;
24689 }
24690 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24691 PyMem_Free(_children);
24692 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24693 D(p->level--);
24694 return _seq;
24695}
24696
24697// _gather_64: keyword_pattern _loop0_65
24698static asdl_seq *
24699_gather_64_rule(Parser *p)
24700{
24701 D(p->level++);
24702 if (p->error_indicator) {
24703 D(p->level--);
24704 return NULL;
24705 }
24706 asdl_seq * _res = NULL;
24707 int _mark = p->mark;
24708 { // keyword_pattern _loop0_65
24709 if (p->error_indicator) {
24710 D(p->level--);
24711 return NULL;
24712 }
24713 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024714 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024715 asdl_seq * seq;
24716 if (
24717 (elem = keyword_pattern_rule(p)) // keyword_pattern
24718 &&
24719 (seq = _loop0_65_rule(p)) // _loop0_65
24720 )
24721 {
24722 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24723 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24724 goto done;
24725 }
24726 p->mark = _mark;
24727 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24729 }
24730 _res = NULL;
24731 done:
24732 D(p->level--);
24733 return _res;
24734}
24735
24736// _tmp_66: 'from' expression
24737static void *
24738_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739{
24740 D(p->level++);
24741 if (p->error_indicator) {
24742 D(p->level--);
24743 return NULL;
24744 }
24745 void * _res = NULL;
24746 int _mark = p->mark;
24747 { // 'from' expression
24748 if (p->error_indicator) {
24749 D(p->level--);
24750 return NULL;
24751 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024752 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024753 Token * _keyword;
24754 expr_ty z;
24755 if (
24756 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24757 &&
24758 (z = expression_rule(p)) // expression
24759 )
24760 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024761 D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024762 _res = z;
24763 if (_res == NULL && PyErr_Occurred()) {
24764 p->error_indicator = 1;
24765 D(p->level--);
24766 return NULL;
24767 }
24768 goto done;
24769 }
24770 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024771 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024773 }
24774 _res = NULL;
24775 done:
24776 D(p->level--);
24777 return _res;
24778}
24779
Brandt Bucher145bf262021-02-26 14:51:55 -080024780// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024781static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024782_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024783{
24784 D(p->level++);
24785 if (p->error_indicator) {
24786 D(p->level--);
24787 return NULL;
24788 }
24789 void * _res = NULL;
24790 int _mark = p->mark;
24791 { // '->' expression
24792 if (p->error_indicator) {
24793 D(p->level--);
24794 return NULL;
24795 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024796 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024797 Token * _literal;
24798 expr_ty z;
24799 if (
24800 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24801 &&
24802 (z = expression_rule(p)) // expression
24803 )
24804 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024805 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024806 _res = z;
24807 if (_res == NULL && PyErr_Occurred()) {
24808 p->error_indicator = 1;
24809 D(p->level--);
24810 return NULL;
24811 }
24812 goto done;
24813 }
24814 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024815 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24817 }
24818 _res = NULL;
24819 done:
24820 D(p->level--);
24821 return _res;
24822}
24823
Brandt Bucher145bf262021-02-26 14:51:55 -080024824// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024825static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024826_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024827{
24828 D(p->level++);
24829 if (p->error_indicator) {
24830 D(p->level--);
24831 return NULL;
24832 }
24833 void * _res = NULL;
24834 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024835 { // '->' expression
24836 if (p->error_indicator) {
24837 D(p->level--);
24838 return NULL;
24839 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024840 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024841 Token * _literal;
24842 expr_ty z;
24843 if (
24844 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24845 &&
24846 (z = expression_rule(p)) // expression
24847 )
24848 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024849 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024850 _res = z;
24851 if (_res == NULL && PyErr_Occurred()) {
24852 p->error_indicator = 1;
24853 D(p->level--);
24854 return NULL;
24855 }
24856 goto done;
24857 }
24858 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024859 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24861 }
24862 _res = NULL;
24863 done:
24864 D(p->level--);
24865 return _res;
24866}
24867
Brandt Bucher145bf262021-02-26 14:51:55 -080024868// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024869static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024870_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024871{
24872 D(p->level++);
24873 if (p->error_indicator) {
24874 D(p->level--);
24875 return NULL;
24876 }
24877 void * _res = NULL;
24878 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024879 { // NEWLINE INDENT
24880 if (p->error_indicator) {
24881 D(p->level--);
24882 return NULL;
24883 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024884 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024885 Token * indent_var;
24886 Token * newline_var;
24887 if (
24888 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24889 &&
24890 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
24891 )
24892 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024893 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024894 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
24895 goto done;
24896 }
24897 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024898 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
24900 }
24901 _res = NULL;
24902 done:
24903 D(p->level--);
24904 return _res;
24905}
24906
Brandt Bucher145bf262021-02-26 14:51:55 -080024907// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024908static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024909_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024910{
24911 D(p->level++);
24912 if (p->error_indicator) {
24913 D(p->level--);
24914 return NULL;
24915 }
24916 void *_res = NULL;
24917 int _mark = p->mark;
24918 int _start_mark = p->mark;
24919 void **_children = PyMem_Malloc(sizeof(void *));
24920 if (!_children) {
24921 p->error_indicator = 1;
24922 PyErr_NoMemory();
24923 D(p->level--);
24924 return NULL;
24925 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024926 Py_ssize_t _children_capacity = 1;
24927 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024928 { // param_no_default
24929 if (p->error_indicator) {
24930 D(p->level--);
24931 return NULL;
24932 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024933 D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024934 arg_ty param_no_default_var;
24935 while (
24936 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24937 )
24938 {
24939 _res = param_no_default_var;
24940 if (_n == _children_capacity) {
24941 _children_capacity *= 2;
24942 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24943 if (!_new_children) {
24944 p->error_indicator = 1;
24945 PyErr_NoMemory();
24946 D(p->level--);
24947 return NULL;
24948 }
24949 _children = _new_children;
24950 }
24951 _children[_n++] = _res;
24952 _mark = p->mark;
24953 }
24954 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024955 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024957 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024958 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024959 if (!_seq) {
24960 PyMem_Free(_children);
24961 p->error_indicator = 1;
24962 PyErr_NoMemory();
24963 D(p->level--);
24964 return NULL;
24965 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024966 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024967 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024968 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024969 D(p->level--);
24970 return _seq;
24971}
24972
Brandt Bucher145bf262021-02-26 14:51:55 -080024973// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024974static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024975_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024976{
24977 D(p->level++);
24978 if (p->error_indicator) {
24979 D(p->level--);
24980 return NULL;
24981 }
24982 void *_res = NULL;
24983 int _mark = p->mark;
24984 int _start_mark = p->mark;
24985 void **_children = PyMem_Malloc(sizeof(void *));
24986 if (!_children) {
24987 p->error_indicator = 1;
24988 PyErr_NoMemory();
24989 D(p->level--);
24990 return NULL;
24991 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024992 Py_ssize_t _children_capacity = 1;
24993 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024994 { // param_with_default
24995 if (p->error_indicator) {
24996 D(p->level--);
24997 return NULL;
24998 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024999 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025000 NameDefaultPair* param_with_default_var;
25001 while (
25002 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25003 )
25004 {
25005 _res = param_with_default_var;
25006 if (_n == _children_capacity) {
25007 _children_capacity *= 2;
25008 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25009 if (!_new_children) {
25010 p->error_indicator = 1;
25011 PyErr_NoMemory();
25012 D(p->level--);
25013 return NULL;
25014 }
25015 _children = _new_children;
25016 }
25017 _children[_n++] = _res;
25018 _mark = p->mark;
25019 }
25020 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025021 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25023 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025024 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025025 if (!_seq) {
25026 PyMem_Free(_children);
25027 p->error_indicator = 1;
25028 PyErr_NoMemory();
25029 D(p->level--);
25030 return NULL;
25031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025032 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025033 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025034 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025035 D(p->level--);
25036 return _seq;
25037}
25038
Brandt Bucher145bf262021-02-26 14:51:55 -080025039// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025040static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025041_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025042{
25043 D(p->level++);
25044 if (p->error_indicator) {
25045 D(p->level--);
25046 return NULL;
25047 }
25048 void *_res = NULL;
25049 int _mark = p->mark;
25050 int _start_mark = p->mark;
25051 void **_children = PyMem_Malloc(sizeof(void *));
25052 if (!_children) {
25053 p->error_indicator = 1;
25054 PyErr_NoMemory();
25055 D(p->level--);
25056 return NULL;
25057 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025058 Py_ssize_t _children_capacity = 1;
25059 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025060 { // param_with_default
25061 if (p->error_indicator) {
25062 D(p->level--);
25063 return NULL;
25064 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025065 D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025066 NameDefaultPair* param_with_default_var;
25067 while (
25068 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25069 )
25070 {
25071 _res = param_with_default_var;
25072 if (_n == _children_capacity) {
25073 _children_capacity *= 2;
25074 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25075 if (!_new_children) {
25076 p->error_indicator = 1;
25077 PyErr_NoMemory();
25078 D(p->level--);
25079 return NULL;
25080 }
25081 _children = _new_children;
25082 }
25083 _children[_n++] = _res;
25084 _mark = p->mark;
25085 }
25086 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025087 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025090 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025091 if (!_seq) {
25092 PyMem_Free(_children);
25093 p->error_indicator = 1;
25094 PyErr_NoMemory();
25095 D(p->level--);
25096 return NULL;
25097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025098 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025099 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025100 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025101 D(p->level--);
25102 return _seq;
25103}
25104
Brandt Bucher145bf262021-02-26 14:51:55 -080025105// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025106static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025107_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025108{
25109 D(p->level++);
25110 if (p->error_indicator) {
25111 D(p->level--);
25112 return NULL;
25113 }
25114 void *_res = NULL;
25115 int _mark = p->mark;
25116 int _start_mark = p->mark;
25117 void **_children = PyMem_Malloc(sizeof(void *));
25118 if (!_children) {
25119 p->error_indicator = 1;
25120 PyErr_NoMemory();
25121 D(p->level--);
25122 return NULL;
25123 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025124 Py_ssize_t _children_capacity = 1;
25125 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025126 { // param_no_default
25127 if (p->error_indicator) {
25128 D(p->level--);
25129 return NULL;
25130 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025131 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025132 arg_ty param_no_default_var;
25133 while (
25134 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25135 )
25136 {
25137 _res = param_no_default_var;
25138 if (_n == _children_capacity) {
25139 _children_capacity *= 2;
25140 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25141 if (!_new_children) {
25142 p->error_indicator = 1;
25143 PyErr_NoMemory();
25144 D(p->level--);
25145 return NULL;
25146 }
25147 _children = _new_children;
25148 }
25149 _children[_n++] = _res;
25150 _mark = p->mark;
25151 }
25152 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025153 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25155 }
25156 if (_n == 0 || p->error_indicator) {
25157 PyMem_Free(_children);
25158 D(p->level--);
25159 return NULL;
25160 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025161 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025162 if (!_seq) {
25163 PyMem_Free(_children);
25164 p->error_indicator = 1;
25165 PyErr_NoMemory();
25166 D(p->level--);
25167 return NULL;
25168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025169 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025170 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025171 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025172 D(p->level--);
25173 return _seq;
25174}
25175
Brandt Bucher145bf262021-02-26 14:51:55 -080025176// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025177static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025178_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025179{
25180 D(p->level++);
25181 if (p->error_indicator) {
25182 D(p->level--);
25183 return NULL;
25184 }
25185 void *_res = NULL;
25186 int _mark = p->mark;
25187 int _start_mark = p->mark;
25188 void **_children = PyMem_Malloc(sizeof(void *));
25189 if (!_children) {
25190 p->error_indicator = 1;
25191 PyErr_NoMemory();
25192 D(p->level--);
25193 return NULL;
25194 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025195 Py_ssize_t _children_capacity = 1;
25196 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025197 { // param_with_default
25198 if (p->error_indicator) {
25199 D(p->level--);
25200 return NULL;
25201 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025202 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025203 NameDefaultPair* param_with_default_var;
25204 while (
25205 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25206 )
25207 {
25208 _res = param_with_default_var;
25209 if (_n == _children_capacity) {
25210 _children_capacity *= 2;
25211 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25212 if (!_new_children) {
25213 p->error_indicator = 1;
25214 PyErr_NoMemory();
25215 D(p->level--);
25216 return NULL;
25217 }
25218 _children = _new_children;
25219 }
25220 _children[_n++] = _res;
25221 _mark = p->mark;
25222 }
25223 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025224 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025227 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025228 if (!_seq) {
25229 PyMem_Free(_children);
25230 p->error_indicator = 1;
25231 PyErr_NoMemory();
25232 D(p->level--);
25233 return NULL;
25234 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025235 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025236 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025237 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025238 D(p->level--);
25239 return _seq;
25240}
25241
Brandt Bucher145bf262021-02-26 14:51:55 -080025242// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025243static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025244_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025245{
25246 D(p->level++);
25247 if (p->error_indicator) {
25248 D(p->level--);
25249 return NULL;
25250 }
25251 void *_res = NULL;
25252 int _mark = p->mark;
25253 int _start_mark = p->mark;
25254 void **_children = PyMem_Malloc(sizeof(void *));
25255 if (!_children) {
25256 p->error_indicator = 1;
25257 PyErr_NoMemory();
25258 D(p->level--);
25259 return NULL;
25260 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025261 Py_ssize_t _children_capacity = 1;
25262 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025263 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025264 if (p->error_indicator) {
25265 D(p->level--);
25266 return NULL;
25267 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025268 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025269 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025270 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025271 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025272 )
25273 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025274 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025275 if (_n == _children_capacity) {
25276 _children_capacity *= 2;
25277 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25278 if (!_new_children) {
25279 p->error_indicator = 1;
25280 PyErr_NoMemory();
25281 D(p->level--);
25282 return NULL;
25283 }
25284 _children = _new_children;
25285 }
25286 _children[_n++] = _res;
25287 _mark = p->mark;
25288 }
25289 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025290 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025292 }
25293 if (_n == 0 || p->error_indicator) {
25294 PyMem_Free(_children);
25295 D(p->level--);
25296 return NULL;
25297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025298 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025299 if (!_seq) {
25300 PyMem_Free(_children);
25301 p->error_indicator = 1;
25302 PyErr_NoMemory();
25303 D(p->level--);
25304 return NULL;
25305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025306 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025307 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025308 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025309 D(p->level--);
25310 return _seq;
25311}
25312
Brandt Bucher145bf262021-02-26 14:51:55 -080025313// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025314static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025315_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025316{
25317 D(p->level++);
25318 if (p->error_indicator) {
25319 D(p->level--);
25320 return NULL;
25321 }
25322 void *_res = NULL;
25323 int _mark = p->mark;
25324 int _start_mark = p->mark;
25325 void **_children = PyMem_Malloc(sizeof(void *));
25326 if (!_children) {
25327 p->error_indicator = 1;
25328 PyErr_NoMemory();
25329 D(p->level--);
25330 return NULL;
25331 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025332 Py_ssize_t _children_capacity = 1;
25333 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025334 { // param_no_default
25335 if (p->error_indicator) {
25336 D(p->level--);
25337 return NULL;
25338 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025339 D(fprintf(stderr, "%*c> _loop1_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025340 arg_ty param_no_default_var;
25341 while (
25342 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25343 )
25344 {
25345 _res = param_no_default_var;
25346 if (_n == _children_capacity) {
25347 _children_capacity *= 2;
25348 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25349 if (!_new_children) {
25350 p->error_indicator = 1;
25351 PyErr_NoMemory();
25352 D(p->level--);
25353 return NULL;
25354 }
25355 _children = _new_children;
25356 }
25357 _children[_n++] = _res;
25358 _mark = p->mark;
25359 }
25360 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025361 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25363 }
25364 if (_n == 0 || p->error_indicator) {
25365 PyMem_Free(_children);
25366 D(p->level--);
25367 return NULL;
25368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025369 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025370 if (!_seq) {
25371 PyMem_Free(_children);
25372 p->error_indicator = 1;
25373 PyErr_NoMemory();
25374 D(p->level--);
25375 return NULL;
25376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025377 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025378 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025379 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025380 D(p->level--);
25381 return _seq;
25382}
25383
Brandt Bucher145bf262021-02-26 14:51:55 -080025384// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025385static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025386_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025387{
25388 D(p->level++);
25389 if (p->error_indicator) {
25390 D(p->level--);
25391 return NULL;
25392 }
25393 void *_res = NULL;
25394 int _mark = p->mark;
25395 int _start_mark = p->mark;
25396 void **_children = PyMem_Malloc(sizeof(void *));
25397 if (!_children) {
25398 p->error_indicator = 1;
25399 PyErr_NoMemory();
25400 D(p->level--);
25401 return NULL;
25402 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025403 Py_ssize_t _children_capacity = 1;
25404 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025405 { // param_no_default
25406 if (p->error_indicator) {
25407 D(p->level--);
25408 return NULL;
25409 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025410 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025411 arg_ty param_no_default_var;
25412 while (
25413 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25414 )
25415 {
25416 _res = param_no_default_var;
25417 if (_n == _children_capacity) {
25418 _children_capacity *= 2;
25419 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25420 if (!_new_children) {
25421 p->error_indicator = 1;
25422 PyErr_NoMemory();
25423 D(p->level--);
25424 return NULL;
25425 }
25426 _children = _new_children;
25427 }
25428 _children[_n++] = _res;
25429 _mark = p->mark;
25430 }
25431 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025432 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25434 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025435 if (_n == 0 || p->error_indicator) {
25436 PyMem_Free(_children);
25437 D(p->level--);
25438 return NULL;
25439 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025440 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025441 if (!_seq) {
25442 PyMem_Free(_children);
25443 p->error_indicator = 1;
25444 PyErr_NoMemory();
25445 D(p->level--);
25446 return NULL;
25447 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025448 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025449 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025450 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025451 D(p->level--);
25452 return _seq;
25453}
25454
Brandt Bucher145bf262021-02-26 14:51:55 -080025455// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025456static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025457_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025458{
25459 D(p->level++);
25460 if (p->error_indicator) {
25461 D(p->level--);
25462 return NULL;
25463 }
25464 void *_res = NULL;
25465 int _mark = p->mark;
25466 int _start_mark = p->mark;
25467 void **_children = PyMem_Malloc(sizeof(void *));
25468 if (!_children) {
25469 p->error_indicator = 1;
25470 PyErr_NoMemory();
25471 D(p->level--);
25472 return NULL;
25473 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025474 Py_ssize_t _children_capacity = 1;
25475 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025476 { // param_no_default
25477 if (p->error_indicator) {
25478 D(p->level--);
25479 return NULL;
25480 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025481 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 arg_ty param_no_default_var;
25483 while (
25484 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25485 )
25486 {
25487 _res = param_no_default_var;
25488 if (_n == _children_capacity) {
25489 _children_capacity *= 2;
25490 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25491 if (!_new_children) {
25492 p->error_indicator = 1;
25493 PyErr_NoMemory();
25494 D(p->level--);
25495 return NULL;
25496 }
25497 _children = _new_children;
25498 }
25499 _children[_n++] = _res;
25500 _mark = p->mark;
25501 }
25502 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025503 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025506 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025507 if (!_seq) {
25508 PyMem_Free(_children);
25509 p->error_indicator = 1;
25510 PyErr_NoMemory();
25511 D(p->level--);
25512 return NULL;
25513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025514 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025515 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025516 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025517 D(p->level--);
25518 return _seq;
25519}
25520
Brandt Bucher145bf262021-02-26 14:51:55 -080025521// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025522static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025523_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025524{
25525 D(p->level++);
25526 if (p->error_indicator) {
25527 D(p->level--);
25528 return NULL;
25529 }
25530 void *_res = NULL;
25531 int _mark = p->mark;
25532 int _start_mark = p->mark;
25533 void **_children = PyMem_Malloc(sizeof(void *));
25534 if (!_children) {
25535 p->error_indicator = 1;
25536 PyErr_NoMemory();
25537 D(p->level--);
25538 return NULL;
25539 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025540 Py_ssize_t _children_capacity = 1;
25541 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025542 { // param_with_default
25543 if (p->error_indicator) {
25544 D(p->level--);
25545 return NULL;
25546 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025547 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025548 NameDefaultPair* param_with_default_var;
25549 while (
25550 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25551 )
25552 {
25553 _res = param_with_default_var;
25554 if (_n == _children_capacity) {
25555 _children_capacity *= 2;
25556 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25557 if (!_new_children) {
25558 p->error_indicator = 1;
25559 PyErr_NoMemory();
25560 D(p->level--);
25561 return NULL;
25562 }
25563 _children = _new_children;
25564 }
25565 _children[_n++] = _res;
25566 _mark = p->mark;
25567 }
25568 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025569 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25571 }
25572 if (_n == 0 || p->error_indicator) {
25573 PyMem_Free(_children);
25574 D(p->level--);
25575 return NULL;
25576 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025577 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025578 if (!_seq) {
25579 PyMem_Free(_children);
25580 p->error_indicator = 1;
25581 PyErr_NoMemory();
25582 D(p->level--);
25583 return NULL;
25584 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025585 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025586 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025587 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025588 D(p->level--);
25589 return _seq;
25590}
25591
Brandt Bucher145bf262021-02-26 14:51:55 -080025592// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025593static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025594_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025595{
25596 D(p->level++);
25597 if (p->error_indicator) {
25598 D(p->level--);
25599 return NULL;
25600 }
25601 void *_res = NULL;
25602 int _mark = p->mark;
25603 int _start_mark = p->mark;
25604 void **_children = PyMem_Malloc(sizeof(void *));
25605 if (!_children) {
25606 p->error_indicator = 1;
25607 PyErr_NoMemory();
25608 D(p->level--);
25609 return NULL;
25610 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025611 Py_ssize_t _children_capacity = 1;
25612 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025613 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025614 if (p->error_indicator) {
25615 D(p->level--);
25616 return NULL;
25617 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025618 D(fprintf(stderr, "%*c> _loop0_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025619 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025620 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025621 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025622 )
25623 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025624 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025625 if (_n == _children_capacity) {
25626 _children_capacity *= 2;
25627 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25628 if (!_new_children) {
25629 p->error_indicator = 1;
25630 PyErr_NoMemory();
25631 D(p->level--);
25632 return NULL;
25633 }
25634 _children = _new_children;
25635 }
25636 _children[_n++] = _res;
25637 _mark = p->mark;
25638 }
25639 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025640 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025643 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025644 if (!_seq) {
25645 PyMem_Free(_children);
25646 p->error_indicator = 1;
25647 PyErr_NoMemory();
25648 D(p->level--);
25649 return NULL;
25650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025651 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025652 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025653 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025654 D(p->level--);
25655 return _seq;
25656}
25657
Brandt Bucher145bf262021-02-26 14:51:55 -080025658// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025659static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025660_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025661{
25662 D(p->level++);
25663 if (p->error_indicator) {
25664 D(p->level--);
25665 return NULL;
25666 }
25667 void *_res = NULL;
25668 int _mark = p->mark;
25669 int _start_mark = p->mark;
25670 void **_children = PyMem_Malloc(sizeof(void *));
25671 if (!_children) {
25672 p->error_indicator = 1;
25673 PyErr_NoMemory();
25674 D(p->level--);
25675 return NULL;
25676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025677 Py_ssize_t _children_capacity = 1;
25678 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025679 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025680 if (p->error_indicator) {
25681 D(p->level--);
25682 return NULL;
25683 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025684 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025685 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025686 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025687 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025688 )
25689 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025690 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025691 if (_n == _children_capacity) {
25692 _children_capacity *= 2;
25693 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25694 if (!_new_children) {
25695 p->error_indicator = 1;
25696 PyErr_NoMemory();
25697 D(p->level--);
25698 return NULL;
25699 }
25700 _children = _new_children;
25701 }
25702 _children[_n++] = _res;
25703 _mark = p->mark;
25704 }
25705 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025706 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025708 }
25709 if (_n == 0 || p->error_indicator) {
25710 PyMem_Free(_children);
25711 D(p->level--);
25712 return NULL;
25713 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025714 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025715 if (!_seq) {
25716 PyMem_Free(_children);
25717 p->error_indicator = 1;
25718 PyErr_NoMemory();
25719 D(p->level--);
25720 return NULL;
25721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025722 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025723 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025724 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025725 D(p->level--);
25726 return _seq;
25727}
25728
Brandt Bucher145bf262021-02-26 14:51:55 -080025729// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025730static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025731_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025732{
25733 D(p->level++);
25734 if (p->error_indicator) {
25735 D(p->level--);
25736 return NULL;
25737 }
25738 void *_res = NULL;
25739 int _mark = p->mark;
25740 int _start_mark = p->mark;
25741 void **_children = PyMem_Malloc(sizeof(void *));
25742 if (!_children) {
25743 p->error_indicator = 1;
25744 PyErr_NoMemory();
25745 D(p->level--);
25746 return NULL;
25747 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025748 Py_ssize_t _children_capacity = 1;
25749 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025750 { // param_maybe_default
25751 if (p->error_indicator) {
25752 D(p->level--);
25753 return NULL;
25754 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025755 D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025756 NameDefaultPair* param_maybe_default_var;
25757 while (
25758 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25759 )
25760 {
25761 _res = param_maybe_default_var;
25762 if (_n == _children_capacity) {
25763 _children_capacity *= 2;
25764 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25765 if (!_new_children) {
25766 p->error_indicator = 1;
25767 PyErr_NoMemory();
25768 D(p->level--);
25769 return NULL;
25770 }
25771 _children = _new_children;
25772 }
25773 _children[_n++] = _res;
25774 _mark = p->mark;
25775 }
25776 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025777 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25779 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025780 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025781 if (!_seq) {
25782 PyMem_Free(_children);
25783 p->error_indicator = 1;
25784 PyErr_NoMemory();
25785 D(p->level--);
25786 return NULL;
25787 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025788 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025789 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025790 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025791 D(p->level--);
25792 return _seq;
25793}
25794
Brandt Bucher145bf262021-02-26 14:51:55 -080025795// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025796static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025797_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025798{
25799 D(p->level++);
25800 if (p->error_indicator) {
25801 D(p->level--);
25802 return NULL;
25803 }
25804 void *_res = NULL;
25805 int _mark = p->mark;
25806 int _start_mark = p->mark;
25807 void **_children = PyMem_Malloc(sizeof(void *));
25808 if (!_children) {
25809 p->error_indicator = 1;
25810 PyErr_NoMemory();
25811 D(p->level--);
25812 return NULL;
25813 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025814 Py_ssize_t _children_capacity = 1;
25815 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025816 { // param_maybe_default
25817 if (p->error_indicator) {
25818 D(p->level--);
25819 return NULL;
25820 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025821 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025822 NameDefaultPair* param_maybe_default_var;
25823 while (
25824 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25825 )
25826 {
25827 _res = param_maybe_default_var;
25828 if (_n == _children_capacity) {
25829 _children_capacity *= 2;
25830 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25831 if (!_new_children) {
25832 p->error_indicator = 1;
25833 PyErr_NoMemory();
25834 D(p->level--);
25835 return NULL;
25836 }
25837 _children = _new_children;
25838 }
25839 _children[_n++] = _res;
25840 _mark = p->mark;
25841 }
25842 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025843 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25845 }
25846 if (_n == 0 || p->error_indicator) {
25847 PyMem_Free(_children);
25848 D(p->level--);
25849 return NULL;
25850 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025851 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025852 if (!_seq) {
25853 PyMem_Free(_children);
25854 p->error_indicator = 1;
25855 PyErr_NoMemory();
25856 D(p->level--);
25857 return NULL;
25858 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025859 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025860 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025861 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025862 D(p->level--);
25863 return _seq;
25864}
25865
Brandt Bucher145bf262021-02-26 14:51:55 -080025866// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025867static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025868_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025869{
25870 D(p->level++);
25871 if (p->error_indicator) {
25872 D(p->level--);
25873 return NULL;
25874 }
25875 void *_res = NULL;
25876 int _mark = p->mark;
25877 int _start_mark = p->mark;
25878 void **_children = PyMem_Malloc(sizeof(void *));
25879 if (!_children) {
25880 p->error_indicator = 1;
25881 PyErr_NoMemory();
25882 D(p->level--);
25883 return NULL;
25884 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025885 Py_ssize_t _children_capacity = 1;
25886 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025887 { // ('@' named_expression NEWLINE)
25888 if (p->error_indicator) {
25889 D(p->level--);
25890 return NULL;
25891 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025892 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010025893 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025894 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010025895 (_tmp_180_var = _tmp_180_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025896 )
25897 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010025898 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025899 if (_n == _children_capacity) {
25900 _children_capacity *= 2;
25901 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25902 if (!_new_children) {
25903 p->error_indicator = 1;
25904 PyErr_NoMemory();
25905 D(p->level--);
25906 return NULL;
25907 }
25908 _children = _new_children;
25909 }
25910 _children[_n++] = _res;
25911 _mark = p->mark;
25912 }
25913 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025914 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25916 }
25917 if (_n == 0 || p->error_indicator) {
25918 PyMem_Free(_children);
25919 D(p->level--);
25920 return NULL;
25921 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025922 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025923 if (!_seq) {
25924 PyMem_Free(_children);
25925 p->error_indicator = 1;
25926 PyErr_NoMemory();
25927 D(p->level--);
25928 return NULL;
25929 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025930 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025931 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025932 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025933 D(p->level--);
25934 return _seq;
25935}
25936
Brandt Bucher145bf262021-02-26 14:51:55 -080025937// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025938static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025939_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025940{
25941 D(p->level++);
25942 if (p->error_indicator) {
25943 D(p->level--);
25944 return NULL;
25945 }
25946 void * _res = NULL;
25947 int _mark = p->mark;
25948 { // '(' arguments? ')'
25949 if (p->error_indicator) {
25950 D(p->level--);
25951 return NULL;
25952 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025953 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025954 Token * _literal;
25955 Token * _literal_1;
25956 void *z;
25957 if (
25958 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25959 &&
25960 (z = arguments_rule(p), 1) // arguments?
25961 &&
25962 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
25963 )
25964 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025965 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025966 _res = z;
25967 if (_res == NULL && PyErr_Occurred()) {
25968 p->error_indicator = 1;
25969 D(p->level--);
25970 return NULL;
25971 }
25972 goto done;
25973 }
25974 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025975 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
25977 }
25978 _res = NULL;
25979 done:
25980 D(p->level--);
25981 return _res;
25982}
25983
Brandt Bucher145bf262021-02-26 14:51:55 -080025984// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025985static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025986_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025987{
25988 D(p->level++);
25989 if (p->error_indicator) {
25990 D(p->level--);
25991 return NULL;
25992 }
25993 void *_res = NULL;
25994 int _mark = p->mark;
25995 int _start_mark = p->mark;
25996 void **_children = PyMem_Malloc(sizeof(void *));
25997 if (!_children) {
25998 p->error_indicator = 1;
25999 PyErr_NoMemory();
26000 D(p->level--);
26001 return NULL;
26002 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026003 Py_ssize_t _children_capacity = 1;
26004 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026005 { // (',' star_expression)
26006 if (p->error_indicator) {
26007 D(p->level--);
26008 return NULL;
26009 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026010 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026011 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026012 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026013 (_tmp_181_var = _tmp_181_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026014 )
26015 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026016 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026017 if (_n == _children_capacity) {
26018 _children_capacity *= 2;
26019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26020 if (!_new_children) {
26021 p->error_indicator = 1;
26022 PyErr_NoMemory();
26023 D(p->level--);
26024 return NULL;
26025 }
26026 _children = _new_children;
26027 }
26028 _children[_n++] = _res;
26029 _mark = p->mark;
26030 }
26031 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026032 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26034 }
26035 if (_n == 0 || p->error_indicator) {
26036 PyMem_Free(_children);
26037 D(p->level--);
26038 return NULL;
26039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026040 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026041 if (!_seq) {
26042 PyMem_Free(_children);
26043 p->error_indicator = 1;
26044 PyErr_NoMemory();
26045 D(p->level--);
26046 return NULL;
26047 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026048 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026049 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026050 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026051 D(p->level--);
26052 return _seq;
26053}
26054
Brandt Bucher145bf262021-02-26 14:51:55 -080026055// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026056static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026057_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026058{
26059 D(p->level++);
26060 if (p->error_indicator) {
26061 D(p->level--);
26062 return NULL;
26063 }
26064 void *_res = NULL;
26065 int _mark = p->mark;
26066 int _start_mark = p->mark;
26067 void **_children = PyMem_Malloc(sizeof(void *));
26068 if (!_children) {
26069 p->error_indicator = 1;
26070 PyErr_NoMemory();
26071 D(p->level--);
26072 return NULL;
26073 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026074 Py_ssize_t _children_capacity = 1;
26075 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026076 { // ',' star_named_expression
26077 if (p->error_indicator) {
26078 D(p->level--);
26079 return NULL;
26080 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026081 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026082 Token * _literal;
26083 expr_ty elem;
26084 while (
26085 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26086 &&
26087 (elem = star_named_expression_rule(p)) // star_named_expression
26088 )
26089 {
26090 _res = elem;
26091 if (_res == NULL && PyErr_Occurred()) {
26092 p->error_indicator = 1;
26093 PyMem_Free(_children);
26094 D(p->level--);
26095 return NULL;
26096 }
26097 if (_n == _children_capacity) {
26098 _children_capacity *= 2;
26099 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26100 if (!_new_children) {
26101 p->error_indicator = 1;
26102 PyErr_NoMemory();
26103 D(p->level--);
26104 return NULL;
26105 }
26106 _children = _new_children;
26107 }
26108 _children[_n++] = _res;
26109 _mark = p->mark;
26110 }
26111 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026112 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26114 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026115 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026116 if (!_seq) {
26117 PyMem_Free(_children);
26118 p->error_indicator = 1;
26119 PyErr_NoMemory();
26120 D(p->level--);
26121 return NULL;
26122 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026123 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026124 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026125 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026126 D(p->level--);
26127 return _seq;
26128}
26129
Brandt Bucher145bf262021-02-26 14:51:55 -080026130// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026131static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026132_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026133{
26134 D(p->level++);
26135 if (p->error_indicator) {
26136 D(p->level--);
26137 return NULL;
26138 }
26139 asdl_seq * _res = NULL;
26140 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026141 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026142 if (p->error_indicator) {
26143 D(p->level--);
26144 return NULL;
26145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026146 D(fprintf(stderr, "%*c> _gather_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026147 expr_ty elem;
26148 asdl_seq * seq;
26149 if (
26150 (elem = star_named_expression_rule(p)) // star_named_expression
26151 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026152 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026153 )
26154 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026155 D(fprintf(stderr, "%*c+ _gather_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026156 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26157 goto done;
26158 }
26159 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026160 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026162 }
26163 _res = NULL;
26164 done:
26165 D(p->level--);
26166 return _res;
26167}
26168
Brandt Bucher145bf262021-02-26 14:51:55 -080026169// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026170static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026171_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026172{
26173 D(p->level++);
26174 if (p->error_indicator) {
26175 D(p->level--);
26176 return NULL;
26177 }
26178 void *_res = NULL;
26179 int _mark = p->mark;
26180 int _start_mark = p->mark;
26181 void **_children = PyMem_Malloc(sizeof(void *));
26182 if (!_children) {
26183 p->error_indicator = 1;
26184 PyErr_NoMemory();
26185 D(p->level--);
26186 return NULL;
26187 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026188 Py_ssize_t _children_capacity = 1;
26189 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026190 { // (',' expression)
26191 if (p->error_indicator) {
26192 D(p->level--);
26193 return NULL;
26194 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026195 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026196 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026197 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026198 (_tmp_182_var = _tmp_182_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026199 )
26200 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026201 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026202 if (_n == _children_capacity) {
26203 _children_capacity *= 2;
26204 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26205 if (!_new_children) {
26206 p->error_indicator = 1;
26207 PyErr_NoMemory();
26208 D(p->level--);
26209 return NULL;
26210 }
26211 _children = _new_children;
26212 }
26213 _children[_n++] = _res;
26214 _mark = p->mark;
26215 }
26216 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026217 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26219 }
26220 if (_n == 0 || p->error_indicator) {
26221 PyMem_Free(_children);
26222 D(p->level--);
26223 return NULL;
26224 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026225 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026226 if (!_seq) {
26227 PyMem_Free(_children);
26228 p->error_indicator = 1;
26229 PyErr_NoMemory();
26230 D(p->level--);
26231 return NULL;
26232 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026233 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026234 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026235 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026236 D(p->level--);
26237 return _seq;
26238}
26239
Brandt Bucher145bf262021-02-26 14:51:55 -080026240// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026242_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026243{
26244 D(p->level++);
26245 if (p->error_indicator) {
26246 D(p->level--);
26247 return NULL;
26248 }
26249 void *_res = NULL;
26250 int _mark = p->mark;
26251 int _start_mark = p->mark;
26252 void **_children = PyMem_Malloc(sizeof(void *));
26253 if (!_children) {
26254 p->error_indicator = 1;
26255 PyErr_NoMemory();
26256 D(p->level--);
26257 return NULL;
26258 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026259 Py_ssize_t _children_capacity = 1;
26260 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026261 { // lambda_param_no_default
26262 if (p->error_indicator) {
26263 D(p->level--);
26264 return NULL;
26265 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026266 D(fprintf(stderr, "%*c> _loop0_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026267 arg_ty lambda_param_no_default_var;
26268 while (
26269 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26270 )
26271 {
26272 _res = lambda_param_no_default_var;
26273 if (_n == _children_capacity) {
26274 _children_capacity *= 2;
26275 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26276 if (!_new_children) {
26277 p->error_indicator = 1;
26278 PyErr_NoMemory();
26279 D(p->level--);
26280 return NULL;
26281 }
26282 _children = _new_children;
26283 }
26284 _children[_n++] = _res;
26285 _mark = p->mark;
26286 }
26287 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026288 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026291 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026292 if (!_seq) {
26293 PyMem_Free(_children);
26294 p->error_indicator = 1;
26295 PyErr_NoMemory();
26296 D(p->level--);
26297 return NULL;
26298 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026299 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026300 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026301 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026302 D(p->level--);
26303 return _seq;
26304}
26305
Brandt Bucher145bf262021-02-26 14:51:55 -080026306// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026307static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026308_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026309{
26310 D(p->level++);
26311 if (p->error_indicator) {
26312 D(p->level--);
26313 return NULL;
26314 }
26315 void *_res = NULL;
26316 int _mark = p->mark;
26317 int _start_mark = p->mark;
26318 void **_children = PyMem_Malloc(sizeof(void *));
26319 if (!_children) {
26320 p->error_indicator = 1;
26321 PyErr_NoMemory();
26322 D(p->level--);
26323 return NULL;
26324 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026325 Py_ssize_t _children_capacity = 1;
26326 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026327 { // lambda_param_with_default
26328 if (p->error_indicator) {
26329 D(p->level--);
26330 return NULL;
26331 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026332 D(fprintf(stderr, "%*c> _loop0_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333 NameDefaultPair* lambda_param_with_default_var;
26334 while (
26335 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26336 )
26337 {
26338 _res = lambda_param_with_default_var;
26339 if (_n == _children_capacity) {
26340 _children_capacity *= 2;
26341 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26342 if (!_new_children) {
26343 p->error_indicator = 1;
26344 PyErr_NoMemory();
26345 D(p->level--);
26346 return NULL;
26347 }
26348 _children = _new_children;
26349 }
26350 _children[_n++] = _res;
26351 _mark = p->mark;
26352 }
26353 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026354 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026357 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 if (!_seq) {
26359 PyMem_Free(_children);
26360 p->error_indicator = 1;
26361 PyErr_NoMemory();
26362 D(p->level--);
26363 return NULL;
26364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026365 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026366 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026367 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026368 D(p->level--);
26369 return _seq;
26370}
26371
Brandt Bucher145bf262021-02-26 14:51:55 -080026372// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026373static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026374_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026375{
26376 D(p->level++);
26377 if (p->error_indicator) {
26378 D(p->level--);
26379 return NULL;
26380 }
26381 void *_res = NULL;
26382 int _mark = p->mark;
26383 int _start_mark = p->mark;
26384 void **_children = PyMem_Malloc(sizeof(void *));
26385 if (!_children) {
26386 p->error_indicator = 1;
26387 PyErr_NoMemory();
26388 D(p->level--);
26389 return NULL;
26390 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026391 Py_ssize_t _children_capacity = 1;
26392 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026393 { // lambda_param_with_default
26394 if (p->error_indicator) {
26395 D(p->level--);
26396 return NULL;
26397 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026398 D(fprintf(stderr, "%*c> _loop0_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026399 NameDefaultPair* lambda_param_with_default_var;
26400 while (
26401 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26402 )
26403 {
26404 _res = lambda_param_with_default_var;
26405 if (_n == _children_capacity) {
26406 _children_capacity *= 2;
26407 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26408 if (!_new_children) {
26409 p->error_indicator = 1;
26410 PyErr_NoMemory();
26411 D(p->level--);
26412 return NULL;
26413 }
26414 _children = _new_children;
26415 }
26416 _children[_n++] = _res;
26417 _mark = p->mark;
26418 }
26419 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026420 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26422 }
26423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26424 if (!_seq) {
26425 PyMem_Free(_children);
26426 p->error_indicator = 1;
26427 PyErr_NoMemory();
26428 D(p->level--);
26429 return NULL;
26430 }
26431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26432 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026433 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026434 D(p->level--);
26435 return _seq;
26436}
26437
Brandt Bucher145bf262021-02-26 14:51:55 -080026438// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026439static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026440_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026441{
26442 D(p->level++);
26443 if (p->error_indicator) {
26444 D(p->level--);
26445 return NULL;
26446 }
26447 void *_res = NULL;
26448 int _mark = p->mark;
26449 int _start_mark = p->mark;
26450 void **_children = PyMem_Malloc(sizeof(void *));
26451 if (!_children) {
26452 p->error_indicator = 1;
26453 PyErr_NoMemory();
26454 D(p->level--);
26455 return NULL;
26456 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026457 Py_ssize_t _children_capacity = 1;
26458 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026459 { // lambda_param_no_default
26460 if (p->error_indicator) {
26461 D(p->level--);
26462 return NULL;
26463 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026464 D(fprintf(stderr, "%*c> _loop1_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026465 arg_ty lambda_param_no_default_var;
26466 while (
26467 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26468 )
26469 {
26470 _res = lambda_param_no_default_var;
26471 if (_n == _children_capacity) {
26472 _children_capacity *= 2;
26473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26474 if (!_new_children) {
26475 p->error_indicator = 1;
26476 PyErr_NoMemory();
26477 D(p->level--);
26478 return NULL;
26479 }
26480 _children = _new_children;
26481 }
26482 _children[_n++] = _res;
26483 _mark = p->mark;
26484 }
26485 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026486 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26488 }
26489 if (_n == 0 || p->error_indicator) {
26490 PyMem_Free(_children);
26491 D(p->level--);
26492 return NULL;
26493 }
26494 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26495 if (!_seq) {
26496 PyMem_Free(_children);
26497 p->error_indicator = 1;
26498 PyErr_NoMemory();
26499 D(p->level--);
26500 return NULL;
26501 }
26502 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26503 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026504 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026505 D(p->level--);
26506 return _seq;
26507}
26508
Brandt Bucher145bf262021-02-26 14:51:55 -080026509// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026510static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026511_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026512{
26513 D(p->level++);
26514 if (p->error_indicator) {
26515 D(p->level--);
26516 return NULL;
26517 }
26518 void *_res = NULL;
26519 int _mark = p->mark;
26520 int _start_mark = p->mark;
26521 void **_children = PyMem_Malloc(sizeof(void *));
26522 if (!_children) {
26523 p->error_indicator = 1;
26524 PyErr_NoMemory();
26525 D(p->level--);
26526 return NULL;
26527 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026528 Py_ssize_t _children_capacity = 1;
26529 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026530 { // lambda_param_with_default
26531 if (p->error_indicator) {
26532 D(p->level--);
26533 return NULL;
26534 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026535 D(fprintf(stderr, "%*c> _loop0_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026536 NameDefaultPair* lambda_param_with_default_var;
26537 while (
26538 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26539 )
26540 {
26541 _res = lambda_param_with_default_var;
26542 if (_n == _children_capacity) {
26543 _children_capacity *= 2;
26544 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26545 if (!_new_children) {
26546 p->error_indicator = 1;
26547 PyErr_NoMemory();
26548 D(p->level--);
26549 return NULL;
26550 }
26551 _children = _new_children;
26552 }
26553 _children[_n++] = _res;
26554 _mark = p->mark;
26555 }
26556 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026557 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026560 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026561 if (!_seq) {
26562 PyMem_Free(_children);
26563 p->error_indicator = 1;
26564 PyErr_NoMemory();
26565 D(p->level--);
26566 return NULL;
26567 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026568 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026569 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026570 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026571 D(p->level--);
26572 return _seq;
26573}
26574
Brandt Bucher145bf262021-02-26 14:51:55 -080026575// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026576static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026577_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026578{
26579 D(p->level++);
26580 if (p->error_indicator) {
26581 D(p->level--);
26582 return NULL;
26583 }
26584 void *_res = NULL;
26585 int _mark = p->mark;
26586 int _start_mark = p->mark;
26587 void **_children = PyMem_Malloc(sizeof(void *));
26588 if (!_children) {
26589 p->error_indicator = 1;
26590 PyErr_NoMemory();
26591 D(p->level--);
26592 return NULL;
26593 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026594 Py_ssize_t _children_capacity = 1;
26595 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026596 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026597 if (p->error_indicator) {
26598 D(p->level--);
26599 return NULL;
26600 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026601 D(fprintf(stderr, "%*c> _loop1_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026602 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026603 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026604 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026605 )
26606 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026607 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026608 if (_n == _children_capacity) {
26609 _children_capacity *= 2;
26610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26611 if (!_new_children) {
26612 p->error_indicator = 1;
26613 PyErr_NoMemory();
26614 D(p->level--);
26615 return NULL;
26616 }
26617 _children = _new_children;
26618 }
26619 _children[_n++] = _res;
26620 _mark = p->mark;
26621 }
26622 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026623 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026625 }
26626 if (_n == 0 || p->error_indicator) {
26627 PyMem_Free(_children);
26628 D(p->level--);
26629 return NULL;
26630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026631 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026632 if (!_seq) {
26633 PyMem_Free(_children);
26634 p->error_indicator = 1;
26635 PyErr_NoMemory();
26636 D(p->level--);
26637 return NULL;
26638 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026639 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026640 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026641 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026642 D(p->level--);
26643 return _seq;
26644}
26645
Brandt Bucher145bf262021-02-26 14:51:55 -080026646// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026647static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026648_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026649{
26650 D(p->level++);
26651 if (p->error_indicator) {
26652 D(p->level--);
26653 return NULL;
26654 }
26655 void *_res = NULL;
26656 int _mark = p->mark;
26657 int _start_mark = p->mark;
26658 void **_children = PyMem_Malloc(sizeof(void *));
26659 if (!_children) {
26660 p->error_indicator = 1;
26661 PyErr_NoMemory();
26662 D(p->level--);
26663 return NULL;
26664 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026665 Py_ssize_t _children_capacity = 1;
26666 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026667 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026668 if (p->error_indicator) {
26669 D(p->level--);
26670 return NULL;
26671 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026672 D(fprintf(stderr, "%*c> _loop1_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026673 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026674 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026675 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026676 )
26677 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026678 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026679 if (_n == _children_capacity) {
26680 _children_capacity *= 2;
26681 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26682 if (!_new_children) {
26683 p->error_indicator = 1;
26684 PyErr_NoMemory();
26685 D(p->level--);
26686 return NULL;
26687 }
26688 _children = _new_children;
26689 }
26690 _children[_n++] = _res;
26691 _mark = p->mark;
26692 }
26693 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026694 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26696 }
26697 if (_n == 0 || p->error_indicator) {
26698 PyMem_Free(_children);
26699 D(p->level--);
26700 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026702 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026703 if (!_seq) {
26704 PyMem_Free(_children);
26705 p->error_indicator = 1;
26706 PyErr_NoMemory();
26707 D(p->level--);
26708 return NULL;
26709 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026710 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026711 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026712 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026713 D(p->level--);
26714 return _seq;
26715}
26716
Brandt Bucher145bf262021-02-26 14:51:55 -080026717// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026718static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026719_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026720{
26721 D(p->level++);
26722 if (p->error_indicator) {
26723 D(p->level--);
26724 return NULL;
26725 }
26726 void *_res = NULL;
26727 int _mark = p->mark;
26728 int _start_mark = p->mark;
26729 void **_children = PyMem_Malloc(sizeof(void *));
26730 if (!_children) {
26731 p->error_indicator = 1;
26732 PyErr_NoMemory();
26733 D(p->level--);
26734 return NULL;
26735 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026736 Py_ssize_t _children_capacity = 1;
26737 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026738 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026739 if (p->error_indicator) {
26740 D(p->level--);
26741 return NULL;
26742 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026743 D(fprintf(stderr, "%*c> _loop1_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026744 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026745 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026746 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026747 )
26748 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026749 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026750 if (_n == _children_capacity) {
26751 _children_capacity *= 2;
26752 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26753 if (!_new_children) {
26754 p->error_indicator = 1;
26755 PyErr_NoMemory();
26756 D(p->level--);
26757 return NULL;
26758 }
26759 _children = _new_children;
26760 }
26761 _children[_n++] = _res;
26762 _mark = p->mark;
26763 }
26764 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026765 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767 }
26768 if (_n == 0 || p->error_indicator) {
26769 PyMem_Free(_children);
26770 D(p->level--);
26771 return NULL;
26772 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026773 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026774 if (!_seq) {
26775 PyMem_Free(_children);
26776 p->error_indicator = 1;
26777 PyErr_NoMemory();
26778 D(p->level--);
26779 return NULL;
26780 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026781 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026782 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026783 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026784 D(p->level--);
26785 return _seq;
26786}
26787
Brandt Bucher145bf262021-02-26 14:51:55 -080026788// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026789static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026790_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026791{
26792 D(p->level++);
26793 if (p->error_indicator) {
26794 D(p->level--);
26795 return NULL;
26796 }
26797 void *_res = NULL;
26798 int _mark = p->mark;
26799 int _start_mark = p->mark;
26800 void **_children = PyMem_Malloc(sizeof(void *));
26801 if (!_children) {
26802 p->error_indicator = 1;
26803 PyErr_NoMemory();
26804 D(p->level--);
26805 return NULL;
26806 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026807 Py_ssize_t _children_capacity = 1;
26808 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026809 { // lambda_param_no_default
26810 if (p->error_indicator) {
26811 D(p->level--);
26812 return NULL;
26813 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026814 D(fprintf(stderr, "%*c> _loop0_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026815 arg_ty lambda_param_no_default_var;
26816 while (
26817 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26818 )
26819 {
26820 _res = lambda_param_no_default_var;
26821 if (_n == _children_capacity) {
26822 _children_capacity *= 2;
26823 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26824 if (!_new_children) {
26825 p->error_indicator = 1;
26826 PyErr_NoMemory();
26827 D(p->level--);
26828 return NULL;
26829 }
26830 _children = _new_children;
26831 }
26832 _children[_n++] = _res;
26833 _mark = p->mark;
26834 }
26835 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026836 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26838 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026839 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026840 if (!_seq) {
26841 PyMem_Free(_children);
26842 p->error_indicator = 1;
26843 PyErr_NoMemory();
26844 D(p->level--);
26845 return NULL;
26846 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026847 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026848 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026849 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026850 D(p->level--);
26851 return _seq;
26852}
26853
Brandt Bucher145bf262021-02-26 14:51:55 -080026854// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026855static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026856_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026857{
26858 D(p->level++);
26859 if (p->error_indicator) {
26860 D(p->level--);
26861 return NULL;
26862 }
26863 void *_res = NULL;
26864 int _mark = p->mark;
26865 int _start_mark = p->mark;
26866 void **_children = PyMem_Malloc(sizeof(void *));
26867 if (!_children) {
26868 p->error_indicator = 1;
26869 PyErr_NoMemory();
26870 D(p->level--);
26871 return NULL;
26872 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026873 Py_ssize_t _children_capacity = 1;
26874 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026875 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026876 if (p->error_indicator) {
26877 D(p->level--);
26878 return NULL;
26879 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026880 D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026881 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026882 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026883 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026884 )
26885 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026886 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026887 if (_n == _children_capacity) {
26888 _children_capacity *= 2;
26889 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26890 if (!_new_children) {
26891 p->error_indicator = 1;
26892 PyErr_NoMemory();
26893 D(p->level--);
26894 return NULL;
26895 }
26896 _children = _new_children;
26897 }
26898 _children[_n++] = _res;
26899 _mark = p->mark;
26900 }
26901 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026902 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026904 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026905 if (_n == 0 || p->error_indicator) {
26906 PyMem_Free(_children);
26907 D(p->level--);
26908 return NULL;
26909 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026910 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026911 if (!_seq) {
26912 PyMem_Free(_children);
26913 p->error_indicator = 1;
26914 PyErr_NoMemory();
26915 D(p->level--);
26916 return NULL;
26917 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026918 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026919 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026920 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026921 D(p->level--);
26922 return _seq;
26923}
26924
Brandt Bucher145bf262021-02-26 14:51:55 -080026925// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026926static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026927_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026928{
26929 D(p->level++);
26930 if (p->error_indicator) {
26931 D(p->level--);
26932 return NULL;
26933 }
26934 void *_res = NULL;
26935 int _mark = p->mark;
26936 int _start_mark = p->mark;
26937 void **_children = PyMem_Malloc(sizeof(void *));
26938 if (!_children) {
26939 p->error_indicator = 1;
26940 PyErr_NoMemory();
26941 D(p->level--);
26942 return NULL;
26943 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026944 Py_ssize_t _children_capacity = 1;
26945 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026946 { // lambda_param_no_default
26947 if (p->error_indicator) {
26948 D(p->level--);
26949 return NULL;
26950 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026951 D(fprintf(stderr, "%*c> _loop0_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026952 arg_ty lambda_param_no_default_var;
26953 while (
26954 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26955 )
26956 {
26957 _res = lambda_param_no_default_var;
26958 if (_n == _children_capacity) {
26959 _children_capacity *= 2;
26960 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26961 if (!_new_children) {
26962 p->error_indicator = 1;
26963 PyErr_NoMemory();
26964 D(p->level--);
26965 return NULL;
26966 }
26967 _children = _new_children;
26968 }
26969 _children[_n++] = _res;
26970 _mark = p->mark;
26971 }
26972 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026973 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026976 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977 if (!_seq) {
26978 PyMem_Free(_children);
26979 p->error_indicator = 1;
26980 PyErr_NoMemory();
26981 D(p->level--);
26982 return NULL;
26983 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026984 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026985 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026986 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026987 D(p->level--);
26988 return _seq;
26989}
26990
Brandt Bucher145bf262021-02-26 14:51:55 -080026991// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026992static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026993_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026994{
26995 D(p->level++);
26996 if (p->error_indicator) {
26997 D(p->level--);
26998 return NULL;
26999 }
27000 void *_res = NULL;
27001 int _mark = p->mark;
27002 int _start_mark = p->mark;
27003 void **_children = PyMem_Malloc(sizeof(void *));
27004 if (!_children) {
27005 p->error_indicator = 1;
27006 PyErr_NoMemory();
27007 D(p->level--);
27008 return NULL;
27009 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027010 Py_ssize_t _children_capacity = 1;
27011 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027012 { // lambda_param_with_default
27013 if (p->error_indicator) {
27014 D(p->level--);
27015 return NULL;
27016 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027017 D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027018 NameDefaultPair* lambda_param_with_default_var;
27019 while (
27020 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27021 )
27022 {
27023 _res = lambda_param_with_default_var;
27024 if (_n == _children_capacity) {
27025 _children_capacity *= 2;
27026 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27027 if (!_new_children) {
27028 p->error_indicator = 1;
27029 PyErr_NoMemory();
27030 D(p->level--);
27031 return NULL;
27032 }
27033 _children = _new_children;
27034 }
27035 _children[_n++] = _res;
27036 _mark = p->mark;
27037 }
27038 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027039 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27041 }
27042 if (_n == 0 || p->error_indicator) {
27043 PyMem_Free(_children);
27044 D(p->level--);
27045 return NULL;
27046 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027047 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027048 if (!_seq) {
27049 PyMem_Free(_children);
27050 p->error_indicator = 1;
27051 PyErr_NoMemory();
27052 D(p->level--);
27053 return NULL;
27054 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027055 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027056 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027057 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027058 D(p->level--);
27059 return _seq;
27060}
27061
Brandt Bucher145bf262021-02-26 14:51:55 -080027062// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027063static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027064_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027065{
27066 D(p->level++);
27067 if (p->error_indicator) {
27068 D(p->level--);
27069 return NULL;
27070 }
27071 void *_res = NULL;
27072 int _mark = p->mark;
27073 int _start_mark = p->mark;
27074 void **_children = PyMem_Malloc(sizeof(void *));
27075 if (!_children) {
27076 p->error_indicator = 1;
27077 PyErr_NoMemory();
27078 D(p->level--);
27079 return NULL;
27080 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027081 Py_ssize_t _children_capacity = 1;
27082 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027083 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027084 if (p->error_indicator) {
27085 D(p->level--);
27086 return NULL;
27087 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027088 D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027089 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027090 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027091 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027092 )
27093 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027094 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027095 if (_n == _children_capacity) {
27096 _children_capacity *= 2;
27097 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27098 if (!_new_children) {
27099 p->error_indicator = 1;
27100 PyErr_NoMemory();
27101 D(p->level--);
27102 return NULL;
27103 }
27104 _children = _new_children;
27105 }
27106 _children[_n++] = _res;
27107 _mark = p->mark;
27108 }
27109 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027110 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027113 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027114 if (!_seq) {
27115 PyMem_Free(_children);
27116 p->error_indicator = 1;
27117 PyErr_NoMemory();
27118 D(p->level--);
27119 return NULL;
27120 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027121 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027122 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027123 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027124 D(p->level--);
27125 return _seq;
27126}
27127
Brandt Bucher145bf262021-02-26 14:51:55 -080027128// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027129static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027130_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027131{
27132 D(p->level++);
27133 if (p->error_indicator) {
27134 D(p->level--);
27135 return NULL;
27136 }
27137 void *_res = NULL;
27138 int _mark = p->mark;
27139 int _start_mark = p->mark;
27140 void **_children = PyMem_Malloc(sizeof(void *));
27141 if (!_children) {
27142 p->error_indicator = 1;
27143 PyErr_NoMemory();
27144 D(p->level--);
27145 return NULL;
27146 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027147 Py_ssize_t _children_capacity = 1;
27148 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027149 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027150 if (p->error_indicator) {
27151 D(p->level--);
27152 return NULL;
27153 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027154 D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027155 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027156 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027157 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027158 )
27159 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027160 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027161 if (_n == _children_capacity) {
27162 _children_capacity *= 2;
27163 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27164 if (!_new_children) {
27165 p->error_indicator = 1;
27166 PyErr_NoMemory();
27167 D(p->level--);
27168 return NULL;
27169 }
27170 _children = _new_children;
27171 }
27172 _children[_n++] = _res;
27173 _mark = p->mark;
27174 }
27175 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027176 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178 }
27179 if (_n == 0 || p->error_indicator) {
27180 PyMem_Free(_children);
27181 D(p->level--);
27182 return NULL;
27183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027184 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185 if (!_seq) {
27186 PyMem_Free(_children);
27187 p->error_indicator = 1;
27188 PyErr_NoMemory();
27189 D(p->level--);
27190 return NULL;
27191 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027192 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027193 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027194 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027195 D(p->level--);
27196 return _seq;
27197}
27198
Brandt Bucher145bf262021-02-26 14:51:55 -080027199// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027200static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027201_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027202{
27203 D(p->level++);
27204 if (p->error_indicator) {
27205 D(p->level--);
27206 return NULL;
27207 }
27208 void *_res = NULL;
27209 int _mark = p->mark;
27210 int _start_mark = p->mark;
27211 void **_children = PyMem_Malloc(sizeof(void *));
27212 if (!_children) {
27213 p->error_indicator = 1;
27214 PyErr_NoMemory();
27215 D(p->level--);
27216 return NULL;
27217 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027218 Py_ssize_t _children_capacity = 1;
27219 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027220 { // ('or' conjunction)
27221 if (p->error_indicator) {
27222 D(p->level--);
27223 return NULL;
27224 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027225 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027226 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027227 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027228 (_tmp_183_var = _tmp_183_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027229 )
27230 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027231 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027232 if (_n == _children_capacity) {
27233 _children_capacity *= 2;
27234 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27235 if (!_new_children) {
27236 p->error_indicator = 1;
27237 PyErr_NoMemory();
27238 D(p->level--);
27239 return NULL;
27240 }
27241 _children = _new_children;
27242 }
27243 _children[_n++] = _res;
27244 _mark = p->mark;
27245 }
27246 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027247 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27249 }
27250 if (_n == 0 || p->error_indicator) {
27251 PyMem_Free(_children);
27252 D(p->level--);
27253 return NULL;
27254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027255 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027256 if (!_seq) {
27257 PyMem_Free(_children);
27258 p->error_indicator = 1;
27259 PyErr_NoMemory();
27260 D(p->level--);
27261 return NULL;
27262 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027263 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027264 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027265 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027266 D(p->level--);
27267 return _seq;
27268}
27269
Brandt Bucher145bf262021-02-26 14:51:55 -080027270// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027271static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027272_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027273{
27274 D(p->level++);
27275 if (p->error_indicator) {
27276 D(p->level--);
27277 return NULL;
27278 }
27279 void *_res = NULL;
27280 int _mark = p->mark;
27281 int _start_mark = p->mark;
27282 void **_children = PyMem_Malloc(sizeof(void *));
27283 if (!_children) {
27284 p->error_indicator = 1;
27285 PyErr_NoMemory();
27286 D(p->level--);
27287 return NULL;
27288 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027289 Py_ssize_t _children_capacity = 1;
27290 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027291 { // ('and' inversion)
27292 if (p->error_indicator) {
27293 D(p->level--);
27294 return NULL;
27295 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027296 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027297 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027298 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027299 (_tmp_184_var = _tmp_184_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027300 )
27301 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027302 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027303 if (_n == _children_capacity) {
27304 _children_capacity *= 2;
27305 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27306 if (!_new_children) {
27307 p->error_indicator = 1;
27308 PyErr_NoMemory();
27309 D(p->level--);
27310 return NULL;
27311 }
27312 _children = _new_children;
27313 }
27314 _children[_n++] = _res;
27315 _mark = p->mark;
27316 }
27317 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027318 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27320 }
27321 if (_n == 0 || p->error_indicator) {
27322 PyMem_Free(_children);
27323 D(p->level--);
27324 return NULL;
27325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027326 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027327 if (!_seq) {
27328 PyMem_Free(_children);
27329 p->error_indicator = 1;
27330 PyErr_NoMemory();
27331 D(p->level--);
27332 return NULL;
27333 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027334 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027335 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027336 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027337 D(p->level--);
27338 return _seq;
27339}
27340
Brandt Bucher145bf262021-02-26 14:51:55 -080027341// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027342static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027343_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027344{
27345 D(p->level++);
27346 if (p->error_indicator) {
27347 D(p->level--);
27348 return NULL;
27349 }
27350 void *_res = NULL;
27351 int _mark = p->mark;
27352 int _start_mark = p->mark;
27353 void **_children = PyMem_Malloc(sizeof(void *));
27354 if (!_children) {
27355 p->error_indicator = 1;
27356 PyErr_NoMemory();
27357 D(p->level--);
27358 return NULL;
27359 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027360 Py_ssize_t _children_capacity = 1;
27361 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027362 { // compare_op_bitwise_or_pair
27363 if (p->error_indicator) {
27364 D(p->level--);
27365 return NULL;
27366 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027367 D(fprintf(stderr, "%*c> _loop1_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027368 CmpopExprPair* compare_op_bitwise_or_pair_var;
27369 while (
27370 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27371 )
27372 {
27373 _res = compare_op_bitwise_or_pair_var;
27374 if (_n == _children_capacity) {
27375 _children_capacity *= 2;
27376 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27377 if (!_new_children) {
27378 p->error_indicator = 1;
27379 PyErr_NoMemory();
27380 D(p->level--);
27381 return NULL;
27382 }
27383 _children = _new_children;
27384 }
27385 _children[_n++] = _res;
27386 _mark = p->mark;
27387 }
27388 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027389 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27391 }
27392 if (_n == 0 || p->error_indicator) {
27393 PyMem_Free(_children);
27394 D(p->level--);
27395 return NULL;
27396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027397 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027398 if (!_seq) {
27399 PyMem_Free(_children);
27400 p->error_indicator = 1;
27401 PyErr_NoMemory();
27402 D(p->level--);
27403 return NULL;
27404 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027405 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027406 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027407 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027408 D(p->level--);
27409 return _seq;
27410}
27411
Brandt Bucher145bf262021-02-26 14:51:55 -080027412// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027414_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027415{
27416 D(p->level++);
27417 if (p->error_indicator) {
27418 D(p->level--);
27419 return NULL;
27420 }
27421 void * _res = NULL;
27422 int _mark = p->mark;
27423 { // '!='
27424 if (p->error_indicator) {
27425 D(p->level--);
27426 return NULL;
27427 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027428 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027429 Token * tok;
27430 if (
27431 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27432 )
27433 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027434 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027435 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027436 if (_res == NULL && PyErr_Occurred()) {
27437 p->error_indicator = 1;
27438 D(p->level--);
27439 return NULL;
27440 }
27441 goto done;
27442 }
27443 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027444 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27446 }
27447 _res = NULL;
27448 done:
27449 D(p->level--);
27450 return _res;
27451}
27452
Brandt Bucher145bf262021-02-26 14:51:55 -080027453// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027454static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027455_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027456{
27457 D(p->level++);
27458 if (p->error_indicator) {
27459 D(p->level--);
27460 return NULL;
27461 }
27462 void *_res = NULL;
27463 int _mark = p->mark;
27464 int _start_mark = p->mark;
27465 void **_children = PyMem_Malloc(sizeof(void *));
27466 if (!_children) {
27467 p->error_indicator = 1;
27468 PyErr_NoMemory();
27469 D(p->level--);
27470 return NULL;
27471 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027472 Py_ssize_t _children_capacity = 1;
27473 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027474 { // ',' slice
27475 if (p->error_indicator) {
27476 D(p->level--);
27477 return NULL;
27478 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027479 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027480 Token * _literal;
27481 expr_ty elem;
27482 while (
27483 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27484 &&
27485 (elem = slice_rule(p)) // slice
27486 )
27487 {
27488 _res = elem;
27489 if (_res == NULL && PyErr_Occurred()) {
27490 p->error_indicator = 1;
27491 PyMem_Free(_children);
27492 D(p->level--);
27493 return NULL;
27494 }
27495 if (_n == _children_capacity) {
27496 _children_capacity *= 2;
27497 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27498 if (!_new_children) {
27499 p->error_indicator = 1;
27500 PyErr_NoMemory();
27501 D(p->level--);
27502 return NULL;
27503 }
27504 _children = _new_children;
27505 }
27506 _children[_n++] = _res;
27507 _mark = p->mark;
27508 }
27509 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027510 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27512 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027513 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027514 if (!_seq) {
27515 PyMem_Free(_children);
27516 p->error_indicator = 1;
27517 PyErr_NoMemory();
27518 D(p->level--);
27519 return NULL;
27520 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027521 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027522 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027523 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027524 D(p->level--);
27525 return _seq;
27526}
27527
Brandt Bucher145bf262021-02-26 14:51:55 -080027528// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027529static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027530_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027531{
27532 D(p->level++);
27533 if (p->error_indicator) {
27534 D(p->level--);
27535 return NULL;
27536 }
27537 asdl_seq * _res = NULL;
27538 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027539 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027540 if (p->error_indicator) {
27541 D(p->level--);
27542 return NULL;
27543 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027544 D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027545 expr_ty elem;
27546 asdl_seq * seq;
27547 if (
27548 (elem = slice_rule(p)) // slice
27549 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027550 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027551 )
27552 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027553 D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027554 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27555 goto done;
27556 }
27557 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027558 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027560 }
27561 _res = NULL;
27562 done:
27563 D(p->level--);
27564 return _res;
27565}
27566
Brandt Bucher145bf262021-02-26 14:51:55 -080027567// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027568static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027569_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027570{
27571 D(p->level++);
27572 if (p->error_indicator) {
27573 D(p->level--);
27574 return NULL;
27575 }
27576 void * _res = NULL;
27577 int _mark = p->mark;
27578 { // ':' expression?
27579 if (p->error_indicator) {
27580 D(p->level--);
27581 return NULL;
27582 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027583 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027584 Token * _literal;
27585 void *d;
27586 if (
27587 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27588 &&
27589 (d = expression_rule(p), 1) // expression?
27590 )
27591 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027592 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027593 _res = d;
27594 if (_res == NULL && PyErr_Occurred()) {
27595 p->error_indicator = 1;
27596 D(p->level--);
27597 return NULL;
27598 }
27599 goto done;
27600 }
27601 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027602 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27604 }
27605 _res = NULL;
27606 done:
27607 D(p->level--);
27608 return _res;
27609}
27610
Brandt Bucher145bf262021-02-26 14:51:55 -080027611// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027613_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027614{
27615 D(p->level++);
27616 if (p->error_indicator) {
27617 D(p->level--);
27618 return NULL;
27619 }
27620 void * _res = NULL;
27621 int _mark = p->mark;
27622 { // tuple
27623 if (p->error_indicator) {
27624 D(p->level--);
27625 return NULL;
27626 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027627 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027628 expr_ty tuple_var;
27629 if (
27630 (tuple_var = tuple_rule(p)) // tuple
27631 )
27632 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027633 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027634 _res = tuple_var;
27635 goto done;
27636 }
27637 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027638 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27640 }
27641 { // group
27642 if (p->error_indicator) {
27643 D(p->level--);
27644 return NULL;
27645 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027646 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027647 expr_ty group_var;
27648 if (
27649 (group_var = group_rule(p)) // group
27650 )
27651 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027652 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027653 _res = group_var;
27654 goto done;
27655 }
27656 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027657 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27659 }
27660 { // genexp
27661 if (p->error_indicator) {
27662 D(p->level--);
27663 return NULL;
27664 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027665 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027666 expr_ty genexp_var;
27667 if (
27668 (genexp_var = genexp_rule(p)) // genexp
27669 )
27670 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027671 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027672 _res = genexp_var;
27673 goto done;
27674 }
27675 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027676 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27678 }
27679 _res = NULL;
27680 done:
27681 D(p->level--);
27682 return _res;
27683}
27684
Brandt Bucher145bf262021-02-26 14:51:55 -080027685// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027686static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027687_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027688{
27689 D(p->level++);
27690 if (p->error_indicator) {
27691 D(p->level--);
27692 return NULL;
27693 }
27694 void * _res = NULL;
27695 int _mark = p->mark;
27696 { // list
27697 if (p->error_indicator) {
27698 D(p->level--);
27699 return NULL;
27700 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027701 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027702 expr_ty list_var;
27703 if (
27704 (list_var = list_rule(p)) // list
27705 )
27706 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027707 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027708 _res = list_var;
27709 goto done;
27710 }
27711 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027712 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27714 }
27715 { // listcomp
27716 if (p->error_indicator) {
27717 D(p->level--);
27718 return NULL;
27719 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027720 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027721 expr_ty listcomp_var;
27722 if (
27723 (listcomp_var = listcomp_rule(p)) // listcomp
27724 )
27725 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027726 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027727 _res = listcomp_var;
27728 goto done;
27729 }
27730 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027731 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27733 }
27734 _res = NULL;
27735 done:
27736 D(p->level--);
27737 return _res;
27738}
27739
Brandt Bucher145bf262021-02-26 14:51:55 -080027740// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027741static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027742_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027743{
27744 D(p->level++);
27745 if (p->error_indicator) {
27746 D(p->level--);
27747 return NULL;
27748 }
27749 void * _res = NULL;
27750 int _mark = p->mark;
27751 { // dict
27752 if (p->error_indicator) {
27753 D(p->level--);
27754 return NULL;
27755 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027756 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027757 expr_ty dict_var;
27758 if (
27759 (dict_var = dict_rule(p)) // dict
27760 )
27761 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027762 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027763 _res = dict_var;
27764 goto done;
27765 }
27766 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027767 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27769 }
27770 { // set
27771 if (p->error_indicator) {
27772 D(p->level--);
27773 return NULL;
27774 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027775 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027776 expr_ty set_var;
27777 if (
27778 (set_var = set_rule(p)) // set
27779 )
27780 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027781 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027782 _res = set_var;
27783 goto done;
27784 }
27785 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027786 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27788 }
27789 { // dictcomp
27790 if (p->error_indicator) {
27791 D(p->level--);
27792 return NULL;
27793 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027794 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027795 expr_ty dictcomp_var;
27796 if (
27797 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27798 )
27799 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027800 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027801 _res = dictcomp_var;
27802 goto done;
27803 }
27804 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027805 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27807 }
27808 { // setcomp
27809 if (p->error_indicator) {
27810 D(p->level--);
27811 return NULL;
27812 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027813 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027814 expr_ty setcomp_var;
27815 if (
27816 (setcomp_var = setcomp_rule(p)) // setcomp
27817 )
27818 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027819 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027820 _res = setcomp_var;
27821 goto done;
27822 }
27823 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027824 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27826 }
27827 _res = NULL;
27828 done:
27829 D(p->level--);
27830 return _res;
27831}
27832
Brandt Bucher145bf262021-02-26 14:51:55 -080027833// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027834static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027835_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027836{
27837 D(p->level++);
27838 if (p->error_indicator) {
27839 D(p->level--);
27840 return NULL;
27841 }
27842 void *_res = NULL;
27843 int _mark = p->mark;
27844 int _start_mark = p->mark;
27845 void **_children = PyMem_Malloc(sizeof(void *));
27846 if (!_children) {
27847 p->error_indicator = 1;
27848 PyErr_NoMemory();
27849 D(p->level--);
27850 return NULL;
27851 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027852 Py_ssize_t _children_capacity = 1;
27853 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027854 { // STRING
27855 if (p->error_indicator) {
27856 D(p->level--);
27857 return NULL;
27858 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027859 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027860 expr_ty string_var;
27861 while (
27862 (string_var = _PyPegen_string_token(p)) // STRING
27863 )
27864 {
27865 _res = string_var;
27866 if (_n == _children_capacity) {
27867 _children_capacity *= 2;
27868 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27869 if (!_new_children) {
27870 p->error_indicator = 1;
27871 PyErr_NoMemory();
27872 D(p->level--);
27873 return NULL;
27874 }
27875 _children = _new_children;
27876 }
27877 _children[_n++] = _res;
27878 _mark = p->mark;
27879 }
27880 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027881 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
27883 }
27884 if (_n == 0 || p->error_indicator) {
27885 PyMem_Free(_children);
27886 D(p->level--);
27887 return NULL;
27888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027889 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027890 if (!_seq) {
27891 PyMem_Free(_children);
27892 p->error_indicator = 1;
27893 PyErr_NoMemory();
27894 D(p->level--);
27895 return NULL;
27896 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027897 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027898 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027899 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027900 D(p->level--);
27901 return _seq;
27902}
27903
Brandt Bucher145bf262021-02-26 14:51:55 -080027904// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027905static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027906_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027907{
27908 D(p->level++);
27909 if (p->error_indicator) {
27910 D(p->level--);
27911 return NULL;
27912 }
27913 void * _res = NULL;
27914 int _mark = p->mark;
27915 { // star_named_expression ',' star_named_expressions?
27916 if (p->error_indicator) {
27917 D(p->level--);
27918 return NULL;
27919 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027920 D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027921 Token * _literal;
27922 expr_ty y;
27923 void *z;
27924 if (
27925 (y = star_named_expression_rule(p)) // star_named_expression
27926 &&
27927 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27928 &&
27929 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
27930 )
27931 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027932 D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027933 _res = _PyPegen_seq_insert_in_front ( p , y , z );
27934 if (_res == NULL && PyErr_Occurred()) {
27935 p->error_indicator = 1;
27936 D(p->level--);
27937 return NULL;
27938 }
27939 goto done;
27940 }
27941 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027942 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
27944 }
27945 _res = NULL;
27946 done:
27947 D(p->level--);
27948 return _res;
27949}
27950
Brandt Bucher145bf262021-02-26 14:51:55 -080027951// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027952static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027953_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027954{
27955 D(p->level++);
27956 if (p->error_indicator) {
27957 D(p->level--);
27958 return NULL;
27959 }
27960 void * _res = NULL;
27961 int _mark = p->mark;
27962 { // yield_expr
27963 if (p->error_indicator) {
27964 D(p->level--);
27965 return NULL;
27966 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027967 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027968 expr_ty yield_expr_var;
27969 if (
27970 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27971 )
27972 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027973 D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027974 _res = yield_expr_var;
27975 goto done;
27976 }
27977 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027978 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27980 }
27981 { // named_expression
27982 if (p->error_indicator) {
27983 D(p->level--);
27984 return NULL;
27985 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027986 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027987 expr_ty named_expression_var;
27988 if (
27989 (named_expression_var = named_expression_rule(p)) // named_expression
27990 )
27991 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027992 D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027993 _res = named_expression_var;
27994 goto done;
27995 }
27996 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027997 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
27999 }
28000 _res = NULL;
28001 done:
28002 D(p->level--);
28003 return _res;
28004}
28005
Brandt Bucher145bf262021-02-26 14:51:55 -080028006// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028007static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028008_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028009{
28010 D(p->level++);
28011 if (p->error_indicator) {
28012 D(p->level--);
28013 return NULL;
28014 }
28015 void *_res = NULL;
28016 int _mark = p->mark;
28017 int _start_mark = p->mark;
28018 void **_children = PyMem_Malloc(sizeof(void *));
28019 if (!_children) {
28020 p->error_indicator = 1;
28021 PyErr_NoMemory();
28022 D(p->level--);
28023 return NULL;
28024 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028025 Py_ssize_t _children_capacity = 1;
28026 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028027 { // ',' double_starred_kvpair
28028 if (p->error_indicator) {
28029 D(p->level--);
28030 return NULL;
28031 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028032 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028033 Token * _literal;
28034 KeyValuePair* elem;
28035 while (
28036 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28037 &&
28038 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28039 )
28040 {
28041 _res = elem;
28042 if (_res == NULL && PyErr_Occurred()) {
28043 p->error_indicator = 1;
28044 PyMem_Free(_children);
28045 D(p->level--);
28046 return NULL;
28047 }
28048 if (_n == _children_capacity) {
28049 _children_capacity *= 2;
28050 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28051 if (!_new_children) {
28052 p->error_indicator = 1;
28053 PyErr_NoMemory();
28054 D(p->level--);
28055 return NULL;
28056 }
28057 _children = _new_children;
28058 }
28059 _children[_n++] = _res;
28060 _mark = p->mark;
28061 }
28062 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028063 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028067 if (!_seq) {
28068 PyMem_Free(_children);
28069 p->error_indicator = 1;
28070 PyErr_NoMemory();
28071 D(p->level--);
28072 return NULL;
28073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028075 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028076 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028077 D(p->level--);
28078 return _seq;
28079}
28080
Brandt Bucher145bf262021-02-26 14:51:55 -080028081// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028082static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028083_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028084{
28085 D(p->level++);
28086 if (p->error_indicator) {
28087 D(p->level--);
28088 return NULL;
28089 }
28090 asdl_seq * _res = NULL;
28091 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028092 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028093 if (p->error_indicator) {
28094 D(p->level--);
28095 return NULL;
28096 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028097 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028098 KeyValuePair* elem;
28099 asdl_seq * seq;
28100 if (
28101 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28102 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028103 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028104 )
28105 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028106 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028107 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28108 goto done;
28109 }
28110 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028111 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
28112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028113 }
28114 _res = NULL;
28115 done:
28116 D(p->level--);
28117 return _res;
28118}
28119
Brandt Bucher145bf262021-02-26 14:51:55 -080028120// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028121static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028122_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028123{
28124 D(p->level++);
28125 if (p->error_indicator) {
28126 D(p->level--);
28127 return NULL;
28128 }
28129 void *_res = NULL;
28130 int _mark = p->mark;
28131 int _start_mark = p->mark;
28132 void **_children = PyMem_Malloc(sizeof(void *));
28133 if (!_children) {
28134 p->error_indicator = 1;
28135 PyErr_NoMemory();
28136 D(p->level--);
28137 return NULL;
28138 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028139 Py_ssize_t _children_capacity = 1;
28140 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028141 { // for_if_clause
28142 if (p->error_indicator) {
28143 D(p->level--);
28144 return NULL;
28145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028146 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028147 comprehension_ty for_if_clause_var;
28148 while (
28149 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28150 )
28151 {
28152 _res = for_if_clause_var;
28153 if (_n == _children_capacity) {
28154 _children_capacity *= 2;
28155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28156 if (!_new_children) {
28157 p->error_indicator = 1;
28158 PyErr_NoMemory();
28159 D(p->level--);
28160 return NULL;
28161 }
28162 _children = _new_children;
28163 }
28164 _children[_n++] = _res;
28165 _mark = p->mark;
28166 }
28167 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028168 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28170 }
28171 if (_n == 0 || p->error_indicator) {
28172 PyMem_Free(_children);
28173 D(p->level--);
28174 return NULL;
28175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028176 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028177 if (!_seq) {
28178 PyMem_Free(_children);
28179 p->error_indicator = 1;
28180 PyErr_NoMemory();
28181 D(p->level--);
28182 return NULL;
28183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028184 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028185 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028186 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028187 D(p->level--);
28188 return _seq;
28189}
28190
Brandt Bucher145bf262021-02-26 14:51:55 -080028191// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028192static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028193_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028194{
28195 D(p->level++);
28196 if (p->error_indicator) {
28197 D(p->level--);
28198 return NULL;
28199 }
28200 void *_res = NULL;
28201 int _mark = p->mark;
28202 int _start_mark = p->mark;
28203 void **_children = PyMem_Malloc(sizeof(void *));
28204 if (!_children) {
28205 p->error_indicator = 1;
28206 PyErr_NoMemory();
28207 D(p->level--);
28208 return NULL;
28209 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028210 Py_ssize_t _children_capacity = 1;
28211 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028212 { // ('if' disjunction)
28213 if (p->error_indicator) {
28214 D(p->level--);
28215 return NULL;
28216 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028217 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028218 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028219 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028220 (_tmp_185_var = _tmp_185_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028221 )
28222 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028223 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028224 if (_n == _children_capacity) {
28225 _children_capacity *= 2;
28226 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28227 if (!_new_children) {
28228 p->error_indicator = 1;
28229 PyErr_NoMemory();
28230 D(p->level--);
28231 return NULL;
28232 }
28233 _children = _new_children;
28234 }
28235 _children[_n++] = _res;
28236 _mark = p->mark;
28237 }
28238 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028239 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28241 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028242 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243 if (!_seq) {
28244 PyMem_Free(_children);
28245 p->error_indicator = 1;
28246 PyErr_NoMemory();
28247 D(p->level--);
28248 return NULL;
28249 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028250 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028251 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028252 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028253 D(p->level--);
28254 return _seq;
28255}
28256
Brandt Bucher145bf262021-02-26 14:51:55 -080028257// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028258static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028259_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028260{
28261 D(p->level++);
28262 if (p->error_indicator) {
28263 D(p->level--);
28264 return NULL;
28265 }
28266 void *_res = NULL;
28267 int _mark = p->mark;
28268 int _start_mark = p->mark;
28269 void **_children = PyMem_Malloc(sizeof(void *));
28270 if (!_children) {
28271 p->error_indicator = 1;
28272 PyErr_NoMemory();
28273 D(p->level--);
28274 return NULL;
28275 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028276 Py_ssize_t _children_capacity = 1;
28277 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028278 { // ('if' disjunction)
28279 if (p->error_indicator) {
28280 D(p->level--);
28281 return NULL;
28282 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028283 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028284 void *_tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028285 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028286 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028287 )
28288 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028289 _res = _tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028290 if (_n == _children_capacity) {
28291 _children_capacity *= 2;
28292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28293 if (!_new_children) {
28294 p->error_indicator = 1;
28295 PyErr_NoMemory();
28296 D(p->level--);
28297 return NULL;
28298 }
28299 _children = _new_children;
28300 }
28301 _children[_n++] = _res;
28302 _mark = p->mark;
28303 }
28304 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028305 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28307 }
28308 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28309 if (!_seq) {
28310 PyMem_Free(_children);
28311 p->error_indicator = 1;
28312 PyErr_NoMemory();
28313 D(p->level--);
28314 return NULL;
28315 }
28316 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28317 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028318 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028319 D(p->level--);
28320 return _seq;
28321}
28322
Pablo Galindod9151cb2021-04-13 02:32:33 +010028323// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028324static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028325_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028326{
28327 D(p->level++);
28328 if (p->error_indicator) {
28329 D(p->level--);
28330 return NULL;
28331 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028332 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028333 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028334 int _start_mark = p->mark;
28335 void **_children = PyMem_Malloc(sizeof(void *));
28336 if (!_children) {
28337 p->error_indicator = 1;
28338 PyErr_NoMemory();
28339 D(p->level--);
28340 return NULL;
28341 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028342 Py_ssize_t _children_capacity = 1;
28343 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028344 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010028345 if (p->error_indicator) {
28346 D(p->level--);
28347 return NULL;
28348 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028349 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028350 Token * _literal;
28351 void *elem;
28352 while (
28353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28354 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010028355 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028356 )
28357 {
28358 _res = elem;
28359 if (_res == NULL && PyErr_Occurred()) {
28360 p->error_indicator = 1;
28361 PyMem_Free(_children);
28362 D(p->level--);
28363 return NULL;
28364 }
28365 if (_n == _children_capacity) {
28366 _children_capacity *= 2;
28367 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28368 if (!_new_children) {
28369 p->error_indicator = 1;
28370 PyErr_NoMemory();
28371 D(p->level--);
28372 return NULL;
28373 }
28374 _children = _new_children;
28375 }
28376 _children[_n++] = _res;
28377 _mark = p->mark;
28378 }
28379 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028380 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028382 }
28383 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28384 if (!_seq) {
28385 PyMem_Free(_children);
28386 p->error_indicator = 1;
28387 PyErr_NoMemory();
28388 D(p->level--);
28389 return NULL;
28390 }
28391 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28392 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028393 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028394 D(p->level--);
28395 return _seq;
28396}
28397
Pablo Galindod9151cb2021-04-13 02:32:33 +010028398// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028399static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028400_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028401{
28402 D(p->level++);
28403 if (p->error_indicator) {
28404 D(p->level--);
28405 return NULL;
28406 }
28407 asdl_seq * _res = NULL;
28408 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028409 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028410 if (p->error_indicator) {
28411 D(p->level--);
28412 return NULL;
28413 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028414 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028415 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028416 asdl_seq * seq;
28417 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028418 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028419 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028420 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028421 )
28422 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010028423 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028424 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28425 goto done;
28426 }
28427 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028428 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028430 }
28431 _res = NULL;
28432 done:
28433 D(p->level--);
28434 return _res;
28435}
28436
Brandt Bucher145bf262021-02-26 14:51:55 -080028437// _tmp_124: ',' kwargs
28438static void *
28439_tmp_124_rule(Parser *p)
28440{
28441 D(p->level++);
28442 if (p->error_indicator) {
28443 D(p->level--);
28444 return NULL;
28445 }
28446 void * _res = NULL;
28447 int _mark = p->mark;
28448 { // ',' kwargs
28449 if (p->error_indicator) {
28450 D(p->level--);
28451 return NULL;
28452 }
28453 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28454 Token * _literal;
28455 asdl_seq* k;
28456 if (
28457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28458 &&
28459 (k = kwargs_rule(p)) // kwargs
28460 )
28461 {
28462 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28463 _res = k;
28464 if (_res == NULL && PyErr_Occurred()) {
28465 p->error_indicator = 1;
28466 D(p->level--);
28467 return NULL;
28468 }
28469 goto done;
28470 }
28471 p->mark = _mark;
28472 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
28473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28474 }
28475 _res = NULL;
28476 done:
28477 D(p->level--);
28478 return _res;
28479}
28480
28481// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028482static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028483_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028484{
28485 D(p->level++);
28486 if (p->error_indicator) {
28487 D(p->level--);
28488 return NULL;
28489 }
28490 void *_res = NULL;
28491 int _mark = p->mark;
28492 int _start_mark = p->mark;
28493 void **_children = PyMem_Malloc(sizeof(void *));
28494 if (!_children) {
28495 p->error_indicator = 1;
28496 PyErr_NoMemory();
28497 D(p->level--);
28498 return NULL;
28499 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028500 Py_ssize_t _children_capacity = 1;
28501 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028502 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028503 if (p->error_indicator) {
28504 D(p->level--);
28505 return NULL;
28506 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028507 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028508 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028509 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028510 while (
28511 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28512 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028513 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028514 )
28515 {
28516 _res = elem;
28517 if (_res == NULL && PyErr_Occurred()) {
28518 p->error_indicator = 1;
28519 PyMem_Free(_children);
28520 D(p->level--);
28521 return NULL;
28522 }
28523 if (_n == _children_capacity) {
28524 _children_capacity *= 2;
28525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28526 if (!_new_children) {
28527 p->error_indicator = 1;
28528 PyErr_NoMemory();
28529 D(p->level--);
28530 return NULL;
28531 }
28532 _children = _new_children;
28533 }
28534 _children[_n++] = _res;
28535 _mark = p->mark;
28536 }
28537 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028538 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
28539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028540 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028541 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028542 if (!_seq) {
28543 PyMem_Free(_children);
28544 p->error_indicator = 1;
28545 PyErr_NoMemory();
28546 D(p->level--);
28547 return NULL;
28548 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028549 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028550 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028551 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028552 D(p->level--);
28553 return _seq;
28554}
28555
Brandt Bucher145bf262021-02-26 14:51:55 -080028556// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028557static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028558_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028559{
28560 D(p->level++);
28561 if (p->error_indicator) {
28562 D(p->level--);
28563 return NULL;
28564 }
28565 asdl_seq * _res = NULL;
28566 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028567 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028568 if (p->error_indicator) {
28569 D(p->level--);
28570 return NULL;
28571 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028572 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
28573 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028574 asdl_seq * seq;
28575 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028576 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028577 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028578 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028579 )
28580 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028581 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028582 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28583 goto done;
28584 }
28585 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028586 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
28587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028588 }
28589 _res = NULL;
28590 done:
28591 D(p->level--);
28592 return _res;
28593}
28594
Brandt Bucher145bf262021-02-26 14:51:55 -080028595// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028596static asdl_seq *
28597_loop0_128_rule(Parser *p)
28598{
28599 D(p->level++);
28600 if (p->error_indicator) {
28601 D(p->level--);
28602 return NULL;
28603 }
28604 void *_res = NULL;
28605 int _mark = p->mark;
28606 int _start_mark = p->mark;
28607 void **_children = PyMem_Malloc(sizeof(void *));
28608 if (!_children) {
28609 p->error_indicator = 1;
28610 PyErr_NoMemory();
28611 D(p->level--);
28612 return NULL;
28613 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028614 Py_ssize_t _children_capacity = 1;
28615 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028616 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028617 if (p->error_indicator) {
28618 D(p->level--);
28619 return NULL;
28620 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028621 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28622 Token * _literal;
28623 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028624 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028625 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28626 &&
28627 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028628 )
28629 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028630 _res = elem;
28631 if (_res == NULL && PyErr_Occurred()) {
28632 p->error_indicator = 1;
28633 PyMem_Free(_children);
28634 D(p->level--);
28635 return NULL;
28636 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028637 if (_n == _children_capacity) {
28638 _children_capacity *= 2;
28639 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28640 if (!_new_children) {
28641 p->error_indicator = 1;
28642 PyErr_NoMemory();
28643 D(p->level--);
28644 return NULL;
28645 }
28646 _children = _new_children;
28647 }
28648 _children[_n++] = _res;
28649 _mark = p->mark;
28650 }
28651 p->mark = _mark;
28652 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028654 }
28655 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28656 if (!_seq) {
28657 PyMem_Free(_children);
28658 p->error_indicator = 1;
28659 PyErr_NoMemory();
28660 D(p->level--);
28661 return NULL;
28662 }
28663 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28664 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028665 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028666 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028667 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028668}
28669
Brandt Bucher145bf262021-02-26 14:51:55 -080028670// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028671static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028672_gather_127_rule(Parser *p)
28673{
28674 D(p->level++);
28675 if (p->error_indicator) {
28676 D(p->level--);
28677 return NULL;
28678 }
28679 asdl_seq * _res = NULL;
28680 int _mark = p->mark;
28681 { // kwarg_or_double_starred _loop0_128
28682 if (p->error_indicator) {
28683 D(p->level--);
28684 return NULL;
28685 }
28686 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28687 KeywordOrStarred* elem;
28688 asdl_seq * seq;
28689 if (
28690 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28691 &&
28692 (seq = _loop0_128_rule(p)) // _loop0_128
28693 )
28694 {
28695 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28696 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28697 goto done;
28698 }
28699 p->mark = _mark;
28700 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
28701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28702 }
28703 _res = NULL;
28704 done:
28705 D(p->level--);
28706 return _res;
28707}
28708
28709// _loop0_130: ',' kwarg_or_starred
28710static asdl_seq *
28711_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028712{
28713 D(p->level++);
28714 if (p->error_indicator) {
28715 D(p->level--);
28716 return NULL;
28717 }
28718 void *_res = NULL;
28719 int _mark = p->mark;
28720 int _start_mark = p->mark;
28721 void **_children = PyMem_Malloc(sizeof(void *));
28722 if (!_children) {
28723 p->error_indicator = 1;
28724 PyErr_NoMemory();
28725 D(p->level--);
28726 return NULL;
28727 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028728 Py_ssize_t _children_capacity = 1;
28729 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028730 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028731 if (p->error_indicator) {
28732 D(p->level--);
28733 return NULL;
28734 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028735 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
28736 Token * _literal;
28737 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028738 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028739 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28740 &&
28741 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028742 )
28743 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028744 _res = elem;
28745 if (_res == NULL && PyErr_Occurred()) {
28746 p->error_indicator = 1;
28747 PyMem_Free(_children);
28748 D(p->level--);
28749 return NULL;
28750 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028751 if (_n == _children_capacity) {
28752 _children_capacity *= 2;
28753 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28754 if (!_new_children) {
28755 p->error_indicator = 1;
28756 PyErr_NoMemory();
28757 D(p->level--);
28758 return NULL;
28759 }
28760 _children = _new_children;
28761 }
28762 _children[_n++] = _res;
28763 _mark = p->mark;
28764 }
28765 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028766 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
28767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028768 }
28769 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28770 if (!_seq) {
28771 PyMem_Free(_children);
28772 p->error_indicator = 1;
28773 PyErr_NoMemory();
28774 D(p->level--);
28775 return NULL;
28776 }
28777 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28778 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028779 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028780 D(p->level--);
28781 return _seq;
28782}
28783
Brandt Bucher145bf262021-02-26 14:51:55 -080028784// _gather_129: kwarg_or_starred _loop0_130
28785static asdl_seq *
28786_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028787{
28788 D(p->level++);
28789 if (p->error_indicator) {
28790 D(p->level--);
28791 return NULL;
28792 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028793 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028794 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028795 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028796 if (p->error_indicator) {
28797 D(p->level--);
28798 return NULL;
28799 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028800 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28801 KeywordOrStarred* elem;
28802 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028803 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028804 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28805 &&
28806 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028807 )
28808 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028809 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28810 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028811 goto done;
28812 }
28813 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028814 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
28815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028816 }
28817 _res = NULL;
28818 done:
28819 D(p->level--);
28820 return _res;
28821}
28822
Brandt Bucher145bf262021-02-26 14:51:55 -080028823// _loop0_132: ',' kwarg_or_double_starred
28824static asdl_seq *
28825_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028826{
28827 D(p->level++);
28828 if (p->error_indicator) {
28829 D(p->level--);
28830 return NULL;
28831 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028832 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028833 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028834 int _start_mark = p->mark;
28835 void **_children = PyMem_Malloc(sizeof(void *));
28836 if (!_children) {
28837 p->error_indicator = 1;
28838 PyErr_NoMemory();
28839 D(p->level--);
28840 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028841 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028842 Py_ssize_t _children_capacity = 1;
28843 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028844 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028845 if (p->error_indicator) {
28846 D(p->level--);
28847 return NULL;
28848 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028849 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028850 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028851 KeywordOrStarred* elem;
28852 while (
28853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28854 &&
28855 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028856 )
28857 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028858 _res = elem;
28859 if (_res == NULL && PyErr_Occurred()) {
28860 p->error_indicator = 1;
28861 PyMem_Free(_children);
28862 D(p->level--);
28863 return NULL;
28864 }
28865 if (_n == _children_capacity) {
28866 _children_capacity *= 2;
28867 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28868 if (!_new_children) {
28869 p->error_indicator = 1;
28870 PyErr_NoMemory();
28871 D(p->level--);
28872 return NULL;
28873 }
28874 _children = _new_children;
28875 }
28876 _children[_n++] = _res;
28877 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028878 }
28879 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028880 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
28881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028882 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028883 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28884 if (!_seq) {
28885 PyMem_Free(_children);
28886 p->error_indicator = 1;
28887 PyErr_NoMemory();
28888 D(p->level--);
28889 return NULL;
28890 }
28891 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28892 PyMem_Free(_children);
28893 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
28894 D(p->level--);
28895 return _seq;
28896}
28897
28898// _gather_131: kwarg_or_double_starred _loop0_132
28899static asdl_seq *
28900_gather_131_rule(Parser *p)
28901{
28902 D(p->level++);
28903 if (p->error_indicator) {
28904 D(p->level--);
28905 return NULL;
28906 }
28907 asdl_seq * _res = NULL;
28908 int _mark = p->mark;
28909 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028910 if (p->error_indicator) {
28911 D(p->level--);
28912 return NULL;
28913 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028914 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28915 KeywordOrStarred* elem;
28916 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028917 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028918 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28919 &&
28920 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 )
28922 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028923 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
28924 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028925 goto done;
28926 }
28927 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028928 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
28929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028930 }
28931 _res = NULL;
28932 done:
28933 D(p->level--);
28934 return _res;
28935}
28936
Brandt Bucher145bf262021-02-26 14:51:55 -080028937// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028938static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028939_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028940{
28941 D(p->level++);
28942 if (p->error_indicator) {
28943 D(p->level--);
28944 return NULL;
28945 }
28946 void *_res = NULL;
28947 int _mark = p->mark;
28948 int _start_mark = p->mark;
28949 void **_children = PyMem_Malloc(sizeof(void *));
28950 if (!_children) {
28951 p->error_indicator = 1;
28952 PyErr_NoMemory();
28953 D(p->level--);
28954 return NULL;
28955 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028956 Py_ssize_t _children_capacity = 1;
28957 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028958 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028959 if (p->error_indicator) {
28960 D(p->level--);
28961 return NULL;
28962 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028963 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028964 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028965 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028966 (_tmp_188_var = _tmp_188_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028967 )
28968 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028969 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028970 if (_n == _children_capacity) {
28971 _children_capacity *= 2;
28972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28973 if (!_new_children) {
28974 p->error_indicator = 1;
28975 PyErr_NoMemory();
28976 D(p->level--);
28977 return NULL;
28978 }
28979 _children = _new_children;
28980 }
28981 _children[_n++] = _res;
28982 _mark = p->mark;
28983 }
28984 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028985 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028987 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028988 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028989 if (!_seq) {
28990 PyMem_Free(_children);
28991 p->error_indicator = 1;
28992 PyErr_NoMemory();
28993 D(p->level--);
28994 return NULL;
28995 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028996 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028997 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000028998 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028999 D(p->level--);
29000 return _seq;
29001}
29002
Brandt Bucher145bf262021-02-26 14:51:55 -080029003// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029004static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029005_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029006{
29007 D(p->level++);
29008 if (p->error_indicator) {
29009 D(p->level--);
29010 return NULL;
29011 }
29012 void *_res = NULL;
29013 int _mark = p->mark;
29014 int _start_mark = p->mark;
29015 void **_children = PyMem_Malloc(sizeof(void *));
29016 if (!_children) {
29017 p->error_indicator = 1;
29018 PyErr_NoMemory();
29019 D(p->level--);
29020 return NULL;
29021 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029022 Py_ssize_t _children_capacity = 1;
29023 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029024 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029025 if (p->error_indicator) {
29026 D(p->level--);
29027 return NULL;
29028 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029029 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29030 Token * _literal;
29031 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029032 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029033 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29034 &&
29035 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029036 )
29037 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029038 _res = elem;
29039 if (_res == NULL && PyErr_Occurred()) {
29040 p->error_indicator = 1;
29041 PyMem_Free(_children);
29042 D(p->level--);
29043 return NULL;
29044 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029045 if (_n == _children_capacity) {
29046 _children_capacity *= 2;
29047 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29048 if (!_new_children) {
29049 p->error_indicator = 1;
29050 PyErr_NoMemory();
29051 D(p->level--);
29052 return NULL;
29053 }
29054 _children = _new_children;
29055 }
29056 _children[_n++] = _res;
29057 _mark = p->mark;
29058 }
29059 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029060 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029062 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029063 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029064 if (!_seq) {
29065 PyMem_Free(_children);
29066 p->error_indicator = 1;
29067 PyErr_NoMemory();
29068 D(p->level--);
29069 return NULL;
29070 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029071 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029072 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029073 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029074 D(p->level--);
29075 return _seq;
29076}
29077
Brandt Bucher145bf262021-02-26 14:51:55 -080029078// _gather_134: star_target _loop0_135
29079static asdl_seq *
29080_gather_134_rule(Parser *p)
29081{
29082 D(p->level++);
29083 if (p->error_indicator) {
29084 D(p->level--);
29085 return NULL;
29086 }
29087 asdl_seq * _res = NULL;
29088 int _mark = p->mark;
29089 { // star_target _loop0_135
29090 if (p->error_indicator) {
29091 D(p->level--);
29092 return NULL;
29093 }
29094 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29095 expr_ty elem;
29096 asdl_seq * seq;
29097 if (
29098 (elem = star_target_rule(p)) // star_target
29099 &&
29100 (seq = _loop0_135_rule(p)) // _loop0_135
29101 )
29102 {
29103 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29104 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29105 goto done;
29106 }
29107 p->mark = _mark;
29108 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
29109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
29110 }
29111 _res = NULL;
29112 done:
29113 D(p->level--);
29114 return _res;
29115}
29116
29117// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029118static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029119_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029120{
29121 D(p->level++);
29122 if (p->error_indicator) {
29123 D(p->level--);
29124 return NULL;
29125 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029126 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029127 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029128 int _start_mark = p->mark;
29129 void **_children = PyMem_Malloc(sizeof(void *));
29130 if (!_children) {
29131 p->error_indicator = 1;
29132 PyErr_NoMemory();
29133 D(p->level--);
29134 return NULL;
29135 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029136 Py_ssize_t _children_capacity = 1;
29137 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029138 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029139 if (p->error_indicator) {
29140 D(p->level--);
29141 return NULL;
29142 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029143 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029144 void *_tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029145 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029146 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029147 )
29148 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029149 _res = _tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029150 if (_n == _children_capacity) {
29151 _children_capacity *= 2;
29152 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29153 if (!_new_children) {
29154 p->error_indicator = 1;
29155 PyErr_NoMemory();
29156 D(p->level--);
29157 return NULL;
29158 }
29159 _children = _new_children;
29160 }
29161 _children[_n++] = _res;
29162 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029163 }
29164 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029165 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029167 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029168 if (_n == 0 || p->error_indicator) {
29169 PyMem_Free(_children);
29170 D(p->level--);
29171 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029172 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029173 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29174 if (!_seq) {
29175 PyMem_Free(_children);
29176 p->error_indicator = 1;
29177 PyErr_NoMemory();
29178 D(p->level--);
29179 return NULL;
29180 }
29181 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29182 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029183 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029184 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029185 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029186}
29187
Brandt Bucher145bf262021-02-26 14:51:55 -080029188// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029189static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029190_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029191{
29192 D(p->level++);
29193 if (p->error_indicator) {
29194 D(p->level--);
29195 return NULL;
29196 }
29197 void * _res = NULL;
29198 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029199 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029200 if (p->error_indicator) {
29201 D(p->level--);
29202 return NULL;
29203 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029204 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29205 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029206 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029207 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029208 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029209 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029210 )
29211 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029212 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29213 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029214 goto done;
29215 }
29216 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029217 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029219 }
29220 _res = NULL;
29221 done:
29222 D(p->level--);
29223 return _res;
29224}
29225
Brandt Bucher145bf262021-02-26 14:51:55 -080029226// _loop0_139: ',' del_target
29227static asdl_seq *
29228_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029229{
29230 D(p->level++);
29231 if (p->error_indicator) {
29232 D(p->level--);
29233 return NULL;
29234 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029235 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029236 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029237 int _start_mark = p->mark;
29238 void **_children = PyMem_Malloc(sizeof(void *));
29239 if (!_children) {
29240 p->error_indicator = 1;
29241 PyErr_NoMemory();
29242 D(p->level--);
29243 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029244 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029245 Py_ssize_t _children_capacity = 1;
29246 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029247 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029248 if (p->error_indicator) {
29249 D(p->level--);
29250 return NULL;
29251 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029252 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029253 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029254 expr_ty elem;
29255 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029256 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29257 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029258 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029259 )
29260 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029261 _res = elem;
29262 if (_res == NULL && PyErr_Occurred()) {
29263 p->error_indicator = 1;
29264 PyMem_Free(_children);
29265 D(p->level--);
29266 return NULL;
29267 }
29268 if (_n == _children_capacity) {
29269 _children_capacity *= 2;
29270 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29271 if (!_new_children) {
29272 p->error_indicator = 1;
29273 PyErr_NoMemory();
29274 D(p->level--);
29275 return NULL;
29276 }
29277 _children = _new_children;
29278 }
29279 _children[_n++] = _res;
29280 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029281 }
29282 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029283 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
29284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029285 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029286 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29287 if (!_seq) {
29288 PyMem_Free(_children);
29289 p->error_indicator = 1;
29290 PyErr_NoMemory();
29291 D(p->level--);
29292 return NULL;
29293 }
29294 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29295 PyMem_Free(_children);
29296 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029297 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029298 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029299}
29300
Brandt Bucher145bf262021-02-26 14:51:55 -080029301// _gather_138: del_target _loop0_139
29302static asdl_seq *
29303_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029304{
29305 D(p->level++);
29306 if (p->error_indicator) {
29307 D(p->level--);
29308 return NULL;
29309 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029310 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029311 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029312 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029313 if (p->error_indicator) {
29314 D(p->level--);
29315 return NULL;
29316 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029317 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29318 expr_ty elem;
29319 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029320 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029321 (elem = del_target_rule(p)) // del_target
29322 &&
29323 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029324 )
29325 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029326 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29327 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029328 goto done;
29329 }
29330 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029331 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
29332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029333 }
29334 _res = NULL;
29335 done:
29336 D(p->level--);
29337 return _res;
29338}
29339
Brandt Bucher145bf262021-02-26 14:51:55 -080029340// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029341static asdl_seq *
29342_loop0_141_rule(Parser *p)
29343{
29344 D(p->level++);
29345 if (p->error_indicator) {
29346 D(p->level--);
29347 return NULL;
29348 }
29349 void *_res = NULL;
29350 int _mark = p->mark;
29351 int _start_mark = p->mark;
29352 void **_children = PyMem_Malloc(sizeof(void *));
29353 if (!_children) {
29354 p->error_indicator = 1;
29355 PyErr_NoMemory();
29356 D(p->level--);
29357 return NULL;
29358 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029359 Py_ssize_t _children_capacity = 1;
29360 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029361 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029362 if (p->error_indicator) {
29363 D(p->level--);
29364 return NULL;
29365 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029366 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029367 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029368 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029369 while (
29370 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29371 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029372 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029373 )
29374 {
29375 _res = elem;
29376 if (_res == NULL && PyErr_Occurred()) {
29377 p->error_indicator = 1;
29378 PyMem_Free(_children);
29379 D(p->level--);
29380 return NULL;
29381 }
29382 if (_n == _children_capacity) {
29383 _children_capacity *= 2;
29384 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29385 if (!_new_children) {
29386 p->error_indicator = 1;
29387 PyErr_NoMemory();
29388 D(p->level--);
29389 return NULL;
29390 }
29391 _children = _new_children;
29392 }
29393 _children[_n++] = _res;
29394 _mark = p->mark;
29395 }
29396 p->mark = _mark;
29397 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029399 }
29400 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29401 if (!_seq) {
29402 PyMem_Free(_children);
29403 p->error_indicator = 1;
29404 PyErr_NoMemory();
29405 D(p->level--);
29406 return NULL;
29407 }
29408 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29409 PyMem_Free(_children);
29410 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
29411 D(p->level--);
29412 return _seq;
29413}
29414
Brandt Bucher145bf262021-02-26 14:51:55 -080029415// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029416static asdl_seq *
29417_gather_140_rule(Parser *p)
29418{
29419 D(p->level++);
29420 if (p->error_indicator) {
29421 D(p->level--);
29422 return NULL;
29423 }
29424 asdl_seq * _res = NULL;
29425 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029426 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029427 if (p->error_indicator) {
29428 D(p->level--);
29429 return NULL;
29430 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029431 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
29432 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029433 asdl_seq * seq;
29434 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029435 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029436 &&
29437 (seq = _loop0_141_rule(p)) // _loop0_141
29438 )
29439 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029440 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029441 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29442 goto done;
29443 }
29444 p->mark = _mark;
29445 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029447 }
29448 _res = NULL;
29449 done:
29450 D(p->level--);
29451 return _res;
29452}
29453
Brandt Bucher145bf262021-02-26 14:51:55 -080029454// _tmp_142: args | expression for_if_clauses
29455static void *
29456_tmp_142_rule(Parser *p)
29457{
29458 D(p->level++);
29459 if (p->error_indicator) {
29460 D(p->level--);
29461 return NULL;
29462 }
29463 void * _res = NULL;
29464 int _mark = p->mark;
29465 { // args
29466 if (p->error_indicator) {
29467 D(p->level--);
29468 return NULL;
29469 }
29470 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
29471 expr_ty args_var;
29472 if (
29473 (args_var = args_rule(p)) // args
29474 )
29475 {
29476 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
29477 _res = args_var;
29478 goto done;
29479 }
29480 p->mark = _mark;
29481 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29483 }
29484 { // expression for_if_clauses
29485 if (p->error_indicator) {
29486 D(p->level--);
29487 return NULL;
29488 }
29489 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29490 expr_ty expression_var;
29491 asdl_comprehension_seq* for_if_clauses_var;
29492 if (
29493 (expression_var = expression_rule(p)) // expression
29494 &&
29495 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29496 )
29497 {
29498 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29499 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29500 goto done;
29501 }
29502 p->mark = _mark;
29503 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29505 }
29506 _res = NULL;
29507 done:
29508 D(p->level--);
29509 return _res;
29510}
29511
Pablo Galindob2802482021-04-15 21:38:45 +010029512// _tmp_143: NAME STRING | SOFT_KEYWORD
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029513static void *
29514_tmp_143_rule(Parser *p)
29515{
29516 D(p->level++);
29517 if (p->error_indicator) {
29518 D(p->level--);
29519 return NULL;
29520 }
29521 void * _res = NULL;
29522 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029523 { // NAME STRING
29524 if (p->error_indicator) {
29525 D(p->level--);
29526 return NULL;
29527 }
29528 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
29529 expr_ty name_var;
29530 expr_ty string_var;
29531 if (
29532 (name_var = _PyPegen_name_token(p)) // NAME
29533 &&
29534 (string_var = _PyPegen_string_token(p)) // STRING
29535 )
29536 {
29537 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
29538 _res = _PyPegen_dummy_name(p, name_var, string_var);
29539 goto done;
29540 }
29541 p->mark = _mark;
29542 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29544 }
29545 { // SOFT_KEYWORD
29546 if (p->error_indicator) {
29547 D(p->level--);
29548 return NULL;
29549 }
29550 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29551 expr_ty soft_keyword_var;
29552 if (
29553 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29554 )
29555 {
29556 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29557 _res = soft_keyword_var;
29558 goto done;
29559 }
29560 p->mark = _mark;
29561 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29563 }
29564 _res = NULL;
29565 done:
29566 D(p->level--);
29567 return _res;
29568}
29569
29570// _tmp_144: '=' | ':=' | ','
29571static void *
29572_tmp_144_rule(Parser *p)
29573{
29574 D(p->level++);
29575 if (p->error_indicator) {
29576 D(p->level--);
29577 return NULL;
29578 }
29579 void * _res = NULL;
29580 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029581 { // '='
29582 if (p->error_indicator) {
29583 D(p->level--);
29584 return NULL;
29585 }
Pablo Galindob2802482021-04-15 21:38:45 +010029586 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029587 Token * _literal;
29588 if (
29589 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29590 )
29591 {
Pablo Galindob2802482021-04-15 21:38:45 +010029592 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029593 _res = _literal;
29594 goto done;
29595 }
29596 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029597 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29599 }
29600 { // ':='
29601 if (p->error_indicator) {
29602 D(p->level--);
29603 return NULL;
29604 }
Pablo Galindob2802482021-04-15 21:38:45 +010029605 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029606 Token * _literal;
29607 if (
29608 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29609 )
29610 {
Pablo Galindob2802482021-04-15 21:38:45 +010029611 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029612 _res = _literal;
29613 goto done;
29614 }
29615 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029616 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29618 }
29619 { // ','
29620 if (p->error_indicator) {
29621 D(p->level--);
29622 return NULL;
29623 }
Pablo Galindob2802482021-04-15 21:38:45 +010029624 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029625 Token * _literal;
29626 if (
29627 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29628 )
29629 {
Pablo Galindob2802482021-04-15 21:38:45 +010029630 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029631 _res = _literal;
29632 goto done;
29633 }
29634 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029635 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29637 }
29638 _res = NULL;
29639 done:
29640 D(p->level--);
29641 return _res;
29642}
29643
Pablo Galindob2802482021-04-15 21:38:45 +010029644// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029645static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029646_tmp_145_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029647{
29648 D(p->level++);
29649 if (p->error_indicator) {
29650 D(p->level--);
29651 return NULL;
29652 }
29653 void * _res = NULL;
29654 int _mark = p->mark;
29655 { // list
29656 if (p->error_indicator) {
29657 D(p->level--);
29658 return NULL;
29659 }
Pablo Galindob2802482021-04-15 21:38:45 +010029660 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029661 expr_ty list_var;
29662 if (
29663 (list_var = list_rule(p)) // list
29664 )
29665 {
Pablo Galindob2802482021-04-15 21:38:45 +010029666 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029667 _res = list_var;
29668 goto done;
29669 }
29670 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029671 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29673 }
29674 { // tuple
29675 if (p->error_indicator) {
29676 D(p->level--);
29677 return NULL;
29678 }
Pablo Galindob2802482021-04-15 21:38:45 +010029679 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029680 expr_ty tuple_var;
29681 if (
29682 (tuple_var = tuple_rule(p)) // tuple
29683 )
29684 {
Pablo Galindob2802482021-04-15 21:38:45 +010029685 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029686 _res = tuple_var;
29687 goto done;
29688 }
29689 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029690 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29692 }
29693 { // genexp
29694 if (p->error_indicator) {
29695 D(p->level--);
29696 return NULL;
29697 }
Pablo Galindob2802482021-04-15 21:38:45 +010029698 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029699 expr_ty genexp_var;
29700 if (
29701 (genexp_var = genexp_rule(p)) // genexp
29702 )
29703 {
Pablo Galindob2802482021-04-15 21:38:45 +010029704 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029705 _res = genexp_var;
29706 goto done;
29707 }
29708 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029709 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29711 }
29712 { // 'True'
29713 if (p->error_indicator) {
29714 D(p->level--);
29715 return NULL;
29716 }
Pablo Galindob2802482021-04-15 21:38:45 +010029717 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029718 Token * _keyword;
29719 if (
29720 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29721 )
29722 {
Pablo Galindob2802482021-04-15 21:38:45 +010029723 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029724 _res = _keyword;
29725 goto done;
29726 }
29727 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029728 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29730 }
29731 { // 'None'
29732 if (p->error_indicator) {
29733 D(p->level--);
29734 return NULL;
29735 }
Pablo Galindob2802482021-04-15 21:38:45 +010029736 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029737 Token * _keyword;
29738 if (
29739 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29740 )
29741 {
Pablo Galindob2802482021-04-15 21:38:45 +010029742 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029743 _res = _keyword;
29744 goto done;
29745 }
29746 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029747 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29749 }
29750 { // 'False'
29751 if (p->error_indicator) {
29752 D(p->level--);
29753 return NULL;
29754 }
Pablo Galindob2802482021-04-15 21:38:45 +010029755 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029756 Token * _keyword;
29757 if (
29758 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29759 )
29760 {
Pablo Galindob2802482021-04-15 21:38:45 +010029761 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029762 _res = _keyword;
29763 goto done;
29764 }
29765 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029766 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29768 }
29769 _res = NULL;
29770 done:
29771 D(p->level--);
29772 return _res;
29773}
29774
Pablo Galindob2802482021-04-15 21:38:45 +010029775// _tmp_146: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029776static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029777_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029778{
29779 D(p->level++);
29780 if (p->error_indicator) {
29781 D(p->level--);
29782 return NULL;
29783 }
29784 void * _res = NULL;
29785 int _mark = p->mark;
29786 { // '='
29787 if (p->error_indicator) {
29788 D(p->level--);
29789 return NULL;
29790 }
Pablo Galindob2802482021-04-15 21:38:45 +010029791 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029792 Token * _literal;
29793 if (
29794 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29795 )
29796 {
Pablo Galindob2802482021-04-15 21:38:45 +010029797 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029798 _res = _literal;
29799 goto done;
29800 }
29801 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029802 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29804 }
29805 { // ':='
29806 if (p->error_indicator) {
29807 D(p->level--);
29808 return NULL;
29809 }
Pablo Galindob2802482021-04-15 21:38:45 +010029810 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029811 Token * _literal;
29812 if (
29813 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29814 )
29815 {
Pablo Galindob2802482021-04-15 21:38:45 +010029816 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029817 _res = _literal;
29818 goto done;
29819 }
29820 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029821 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29823 }
29824 { // ','
29825 if (p->error_indicator) {
29826 D(p->level--);
29827 return NULL;
29828 }
Pablo Galindob2802482021-04-15 21:38:45 +010029829 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029830 Token * _literal;
29831 if (
29832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29833 )
29834 {
Pablo Galindob2802482021-04-15 21:38:45 +010029835 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029836 _res = _literal;
29837 goto done;
29838 }
29839 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029840 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29842 }
29843 _res = NULL;
29844 done:
29845 D(p->level--);
29846 return _res;
29847}
29848
Pablo Galindob2802482021-04-15 21:38:45 +010029849// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029850static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029851_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029852{
29853 D(p->level++);
29854 if (p->error_indicator) {
29855 D(p->level--);
29856 return NULL;
29857 }
29858 void *_res = NULL;
29859 int _mark = p->mark;
29860 int _start_mark = p->mark;
29861 void **_children = PyMem_Malloc(sizeof(void *));
29862 if (!_children) {
29863 p->error_indicator = 1;
29864 PyErr_NoMemory();
29865 D(p->level--);
29866 return NULL;
29867 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029868 Py_ssize_t _children_capacity = 1;
29869 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029870 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029871 if (p->error_indicator) {
29872 D(p->level--);
29873 return NULL;
29874 }
Pablo Galindob2802482021-04-15 21:38:45 +010029875 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029876 asdl_expr_seq* star_named_expressions_var;
29877 while (
29878 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29879 )
29880 {
29881 _res = star_named_expressions_var;
29882 if (_n == _children_capacity) {
29883 _children_capacity *= 2;
29884 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29885 if (!_new_children) {
29886 p->error_indicator = 1;
29887 PyErr_NoMemory();
29888 D(p->level--);
29889 return NULL;
29890 }
29891 _children = _new_children;
29892 }
29893 _children[_n++] = _res;
29894 _mark = p->mark;
29895 }
29896 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029897 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029899 }
29900 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29901 if (!_seq) {
29902 PyMem_Free(_children);
29903 p->error_indicator = 1;
29904 PyErr_NoMemory();
29905 D(p->level--);
29906 return NULL;
29907 }
29908 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29909 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029910 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029911 D(p->level--);
29912 return _seq;
29913}
29914
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029915// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080029916static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029917_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029918{
29919 D(p->level++);
29920 if (p->error_indicator) {
29921 D(p->level--);
29922 return NULL;
29923 }
29924 void *_res = NULL;
29925 int _mark = p->mark;
29926 int _start_mark = p->mark;
29927 void **_children = PyMem_Malloc(sizeof(void *));
29928 if (!_children) {
29929 p->error_indicator = 1;
29930 PyErr_NoMemory();
29931 D(p->level--);
29932 return NULL;
29933 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029934 Py_ssize_t _children_capacity = 1;
29935 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029936 { // (star_targets '=')
29937 if (p->error_indicator) {
29938 D(p->level--);
29939 return NULL;
29940 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029941 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029942 void *_tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029943 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029944 (_tmp_190_var = _tmp_190_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080029945 )
29946 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029947 _res = _tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029948 if (_n == _children_capacity) {
29949 _children_capacity *= 2;
29950 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29951 if (!_new_children) {
29952 p->error_indicator = 1;
29953 PyErr_NoMemory();
29954 D(p->level--);
29955 return NULL;
29956 }
29957 _children = _new_children;
29958 }
29959 _children[_n++] = _res;
29960 _mark = p->mark;
29961 }
29962 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029963 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29965 }
29966 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29967 if (!_seq) {
29968 PyMem_Free(_children);
29969 p->error_indicator = 1;
29970 PyErr_NoMemory();
29971 D(p->level--);
29972 return NULL;
29973 }
29974 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29975 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029976 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029977 D(p->level--);
29978 return _seq;
29979}
29980
Pablo Galindob2802482021-04-15 21:38:45 +010029981// _loop0_149: (star_targets '=')
29982static asdl_seq *
29983_loop0_149_rule(Parser *p)
29984{
29985 D(p->level++);
29986 if (p->error_indicator) {
29987 D(p->level--);
29988 return NULL;
29989 }
29990 void *_res = NULL;
29991 int _mark = p->mark;
29992 int _start_mark = p->mark;
29993 void **_children = PyMem_Malloc(sizeof(void *));
29994 if (!_children) {
29995 p->error_indicator = 1;
29996 PyErr_NoMemory();
29997 D(p->level--);
29998 return NULL;
29999 }
30000 Py_ssize_t _children_capacity = 1;
30001 Py_ssize_t _n = 0;
30002 { // (star_targets '=')
30003 if (p->error_indicator) {
30004 D(p->level--);
30005 return NULL;
30006 }
30007 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030008 void *_tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030009 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030010 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010030011 )
30012 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030013 _res = _tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030014 if (_n == _children_capacity) {
30015 _children_capacity *= 2;
30016 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30017 if (!_new_children) {
30018 p->error_indicator = 1;
30019 PyErr_NoMemory();
30020 D(p->level--);
30021 return NULL;
30022 }
30023 _children = _new_children;
30024 }
30025 _children[_n++] = _res;
30026 _mark = p->mark;
30027 }
30028 p->mark = _mark;
30029 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30031 }
30032 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30033 if (!_seq) {
30034 PyMem_Free(_children);
30035 p->error_indicator = 1;
30036 PyErr_NoMemory();
30037 D(p->level--);
30038 return NULL;
30039 }
30040 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30041 PyMem_Free(_children);
30042 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30043 D(p->level--);
30044 return _seq;
30045}
30046
30047// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030048static void *
Pablo Galindob2802482021-04-15 21:38:45 +010030049_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030050{
30051 D(p->level++);
30052 if (p->error_indicator) {
30053 D(p->level--);
30054 return NULL;
30055 }
30056 void * _res = NULL;
30057 int _mark = p->mark;
30058 { // yield_expr
30059 if (p->error_indicator) {
30060 D(p->level--);
30061 return NULL;
30062 }
Pablo Galindob2802482021-04-15 21:38:45 +010030063 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030064 expr_ty yield_expr_var;
30065 if (
30066 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30067 )
30068 {
Pablo Galindob2802482021-04-15 21:38:45 +010030069 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030070 _res = yield_expr_var;
30071 goto done;
30072 }
30073 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030074 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30076 }
30077 { // star_expressions
30078 if (p->error_indicator) {
30079 D(p->level--);
30080 return NULL;
30081 }
Pablo Galindob2802482021-04-15 21:38:45 +010030082 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030083 expr_ty star_expressions_var;
30084 if (
30085 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30086 )
30087 {
Pablo Galindob2802482021-04-15 21:38:45 +010030088 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030089 _res = star_expressions_var;
30090 goto done;
30091 }
30092 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030093 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30095 }
30096 _res = NULL;
30097 done:
30098 D(p->level--);
30099 return _res;
30100}
30101
Pablo Galindob2802482021-04-15 21:38:45 +010030102// _tmp_151: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080030103static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030104_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030105{
30106 D(p->level++);
30107 if (p->error_indicator) {
30108 D(p->level--);
30109 return NULL;
30110 }
30111 void * _res = NULL;
30112 int _mark = p->mark;
30113 { // '['
30114 if (p->error_indicator) {
30115 D(p->level--);
30116 return NULL;
30117 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030118 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030119 Token * _literal;
30120 if (
30121 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30122 )
30123 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030124 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030125 _res = _literal;
30126 goto done;
30127 }
30128 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030129 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30131 }
Pablo Galindob2802482021-04-15 21:38:45 +010030132 { // '('
30133 if (p->error_indicator) {
30134 D(p->level--);
30135 return NULL;
30136 }
30137 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30138 Token * _literal;
30139 if (
30140 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30141 )
30142 {
30143 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30144 _res = _literal;
30145 goto done;
30146 }
30147 p->mark = _mark;
30148 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30150 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030151 { // '{'
30152 if (p->error_indicator) {
30153 D(p->level--);
30154 return NULL;
30155 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030156 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030157 Token * _literal;
30158 if (
30159 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30160 )
30161 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030162 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030163 _res = _literal;
30164 goto done;
30165 }
30166 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030167 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30169 }
30170 _res = NULL;
30171 done:
30172 D(p->level--);
30173 return _res;
30174}
30175
Pablo Galindob2802482021-04-15 21:38:45 +010030176// _tmp_152: '[' | '{'
30177static void *
30178_tmp_152_rule(Parser *p)
30179{
30180 D(p->level++);
30181 if (p->error_indicator) {
30182 D(p->level--);
30183 return NULL;
30184 }
30185 void * _res = NULL;
30186 int _mark = p->mark;
30187 { // '['
30188 if (p->error_indicator) {
30189 D(p->level--);
30190 return NULL;
30191 }
30192 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30193 Token * _literal;
30194 if (
30195 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30196 )
30197 {
30198 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30199 _res = _literal;
30200 goto done;
30201 }
30202 p->mark = _mark;
30203 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30205 }
30206 { // '{'
30207 if (p->error_indicator) {
30208 D(p->level--);
30209 return NULL;
30210 }
30211 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30212 Token * _literal;
30213 if (
30214 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30215 )
30216 {
30217 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30218 _res = _literal;
30219 goto done;
30220 }
30221 p->mark = _mark;
30222 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30224 }
30225 _res = NULL;
30226 done:
30227 D(p->level--);
30228 return _res;
30229}
30230
Pablo Galindoa77aac42021-04-23 14:27:05 +010030231// _tmp_153: '[' | '{'
30232static void *
30233_tmp_153_rule(Parser *p)
30234{
30235 D(p->level++);
30236 if (p->error_indicator) {
30237 D(p->level--);
30238 return NULL;
30239 }
30240 void * _res = NULL;
30241 int _mark = p->mark;
30242 { // '['
30243 if (p->error_indicator) {
30244 D(p->level--);
30245 return NULL;
30246 }
30247 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30248 Token * _literal;
30249 if (
30250 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30251 )
30252 {
30253 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30254 _res = _literal;
30255 goto done;
30256 }
30257 p->mark = _mark;
30258 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30260 }
30261 { // '{'
30262 if (p->error_indicator) {
30263 D(p->level--);
30264 return NULL;
30265 }
30266 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30267 Token * _literal;
30268 if (
30269 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30270 )
30271 {
30272 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30273 _res = _literal;
30274 goto done;
30275 }
30276 p->mark = _mark;
30277 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30279 }
30280 _res = NULL;
30281 done:
30282 D(p->level--);
30283 return _res;
30284}
30285
30286// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030287static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030288_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030289{
30290 D(p->level++);
30291 if (p->error_indicator) {
30292 D(p->level--);
30293 return NULL;
30294 }
30295 void *_res = NULL;
30296 int _mark = p->mark;
30297 int _start_mark = p->mark;
30298 void **_children = PyMem_Malloc(sizeof(void *));
30299 if (!_children) {
30300 p->error_indicator = 1;
30301 PyErr_NoMemory();
30302 D(p->level--);
30303 return NULL;
30304 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030305 Py_ssize_t _children_capacity = 1;
30306 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030307 { // param_no_default
30308 if (p->error_indicator) {
30309 D(p->level--);
30310 return NULL;
30311 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030312 D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030313 arg_ty param_no_default_var;
30314 while (
30315 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30316 )
30317 {
30318 _res = param_no_default_var;
30319 if (_n == _children_capacity) {
30320 _children_capacity *= 2;
30321 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30322 if (!_new_children) {
30323 p->error_indicator = 1;
30324 PyErr_NoMemory();
30325 D(p->level--);
30326 return NULL;
30327 }
30328 _children = _new_children;
30329 }
30330 _children[_n++] = _res;
30331 _mark = p->mark;
30332 }
30333 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030334 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30336 }
30337 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30338 if (!_seq) {
30339 PyMem_Free(_children);
30340 p->error_indicator = 1;
30341 PyErr_NoMemory();
30342 D(p->level--);
30343 return NULL;
30344 }
30345 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30346 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030347 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030348 D(p->level--);
30349 return _seq;
30350}
30351
Pablo Galindoa77aac42021-04-23 14:27:05 +010030352// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030353static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030354_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030355{
30356 D(p->level++);
30357 if (p->error_indicator) {
30358 D(p->level--);
30359 return NULL;
30360 }
30361 void *_res = NULL;
30362 int _mark = p->mark;
30363 int _start_mark = p->mark;
30364 void **_children = PyMem_Malloc(sizeof(void *));
30365 if (!_children) {
30366 p->error_indicator = 1;
30367 PyErr_NoMemory();
30368 D(p->level--);
30369 return NULL;
30370 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030371 Py_ssize_t _children_capacity = 1;
30372 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030373 { // param_with_default
30374 if (p->error_indicator) {
30375 D(p->level--);
30376 return NULL;
30377 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030378 D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030379 NameDefaultPair* param_with_default_var;
30380 while (
30381 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30382 )
30383 {
30384 _res = param_with_default_var;
30385 if (_n == _children_capacity) {
30386 _children_capacity *= 2;
30387 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30388 if (!_new_children) {
30389 p->error_indicator = 1;
30390 PyErr_NoMemory();
30391 D(p->level--);
30392 return NULL;
30393 }
30394 _children = _new_children;
30395 }
30396 _children[_n++] = _res;
30397 _mark = p->mark;
30398 }
30399 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030400 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30402 }
30403 if (_n == 0 || p->error_indicator) {
30404 PyMem_Free(_children);
30405 D(p->level--);
30406 return NULL;
30407 }
30408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30409 if (!_seq) {
30410 PyMem_Free(_children);
30411 p->error_indicator = 1;
30412 PyErr_NoMemory();
30413 D(p->level--);
30414 return NULL;
30415 }
30416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30417 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030418 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030419 D(p->level--);
30420 return _seq;
30421}
30422
Pablo Galindoa77aac42021-04-23 14:27:05 +010030423// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030424static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030425_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030426{
30427 D(p->level++);
30428 if (p->error_indicator) {
30429 D(p->level--);
30430 return NULL;
30431 }
30432 void *_res = NULL;
30433 int _mark = p->mark;
30434 int _start_mark = p->mark;
30435 void **_children = PyMem_Malloc(sizeof(void *));
30436 if (!_children) {
30437 p->error_indicator = 1;
30438 PyErr_NoMemory();
30439 D(p->level--);
30440 return NULL;
30441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030442 Py_ssize_t _children_capacity = 1;
30443 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030444 { // lambda_param_no_default
30445 if (p->error_indicator) {
30446 D(p->level--);
30447 return NULL;
30448 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030449 D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030450 arg_ty lambda_param_no_default_var;
30451 while (
30452 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30453 )
30454 {
30455 _res = lambda_param_no_default_var;
30456 if (_n == _children_capacity) {
30457 _children_capacity *= 2;
30458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30459 if (!_new_children) {
30460 p->error_indicator = 1;
30461 PyErr_NoMemory();
30462 D(p->level--);
30463 return NULL;
30464 }
30465 _children = _new_children;
30466 }
30467 _children[_n++] = _res;
30468 _mark = p->mark;
30469 }
30470 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030471 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30473 }
30474 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30475 if (!_seq) {
30476 PyMem_Free(_children);
30477 p->error_indicator = 1;
30478 PyErr_NoMemory();
30479 D(p->level--);
30480 return NULL;
30481 }
30482 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30483 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030484 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030485 D(p->level--);
30486 return _seq;
30487}
30488
Pablo Galindoa77aac42021-04-23 14:27:05 +010030489// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030490static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030491_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030492{
30493 D(p->level++);
30494 if (p->error_indicator) {
30495 D(p->level--);
30496 return NULL;
30497 }
30498 void *_res = NULL;
30499 int _mark = p->mark;
30500 int _start_mark = p->mark;
30501 void **_children = PyMem_Malloc(sizeof(void *));
30502 if (!_children) {
30503 p->error_indicator = 1;
30504 PyErr_NoMemory();
30505 D(p->level--);
30506 return NULL;
30507 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030508 Py_ssize_t _children_capacity = 1;
30509 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030510 { // lambda_param_with_default
30511 if (p->error_indicator) {
30512 D(p->level--);
30513 return NULL;
30514 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030515 D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030516 NameDefaultPair* lambda_param_with_default_var;
30517 while (
30518 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30519 )
30520 {
30521 _res = lambda_param_with_default_var;
30522 if (_n == _children_capacity) {
30523 _children_capacity *= 2;
30524 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30525 if (!_new_children) {
30526 p->error_indicator = 1;
30527 PyErr_NoMemory();
30528 D(p->level--);
30529 return NULL;
30530 }
30531 _children = _new_children;
30532 }
30533 _children[_n++] = _res;
30534 _mark = p->mark;
30535 }
30536 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030537 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30539 }
30540 if (_n == 0 || p->error_indicator) {
30541 PyMem_Free(_children);
30542 D(p->level--);
30543 return NULL;
30544 }
30545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30546 if (!_seq) {
30547 PyMem_Free(_children);
30548 p->error_indicator = 1;
30549 PyErr_NoMemory();
30550 D(p->level--);
30551 return NULL;
30552 }
30553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30554 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030555 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030556 D(p->level--);
30557 return _seq;
30558}
30559
Pablo Galindoa77aac42021-04-23 14:27:05 +010030560// _tmp_158: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030561static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030562_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030563{
30564 D(p->level++);
30565 if (p->error_indicator) {
30566 D(p->level--);
30567 return NULL;
30568 }
30569 void * _res = NULL;
30570 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030571 { // ')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030572 if (p->error_indicator) {
30573 D(p->level--);
30574 return NULL;
30575 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030576 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030577 Token * _literal;
30578 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030579 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030580 )
30581 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030582 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030583 _res = _literal;
30584 goto done;
30585 }
30586 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030587 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030589 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030590 { // ',' (')' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030591 if (p->error_indicator) {
30592 D(p->level--);
30593 return NULL;
30594 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030595 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030596 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030597 void *_tmp_192_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030598 if (
30599 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30600 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030601 (_tmp_192_var = _tmp_192_rule(p)) // ')' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010030602 )
30603 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030604 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030605 _res = _PyPegen_dummy_name(p, _literal, _tmp_192_var);
Pablo Galindob2802482021-04-15 21:38:45 +010030606 goto done;
30607 }
30608 p->mark = _mark;
30609 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030611 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030612 _res = NULL;
30613 done:
30614 D(p->level--);
30615 return _res;
30616}
30617
Pablo Galindoa77aac42021-04-23 14:27:05 +010030618// _tmp_159: ':' | ',' (':' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030619static void *
30620_tmp_159_rule(Parser *p)
30621{
30622 D(p->level++);
30623 if (p->error_indicator) {
30624 D(p->level--);
30625 return NULL;
30626 }
30627 void * _res = NULL;
30628 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030629 { // ':'
30630 if (p->error_indicator) {
30631 D(p->level--);
30632 return NULL;
30633 }
30634 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30635 Token * _literal;
30636 if (
30637 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30638 )
30639 {
30640 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30641 _res = _literal;
30642 goto done;
30643 }
30644 p->mark = _mark;
30645 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30647 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030648 { // ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030649 if (p->error_indicator) {
30650 D(p->level--);
30651 return NULL;
30652 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030653 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030654 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030655 void *_tmp_193_var;
30656 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000030657 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30658 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030659 (_tmp_193_var = _tmp_193_rule(p)) // ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000030660 )
30661 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030662 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30663 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080030664 goto done;
30665 }
30666 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030667 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030669 }
30670 _res = NULL;
30671 done:
30672 D(p->level--);
30673 return _res;
30674}
30675
Pablo Galindoa77aac42021-04-23 14:27:05 +010030676// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030677static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030678_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030679{
30680 D(p->level++);
30681 if (p->error_indicator) {
30682 D(p->level--);
30683 return NULL;
30684 }
30685 void * _res = NULL;
30686 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030687 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030688 if (p->error_indicator) {
30689 D(p->level--);
30690 return NULL;
30691 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030692 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30693 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030694 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030695 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030696 )
30697 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030698 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30699 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030700 goto done;
30701 }
30702 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030703 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30705 }
30706 { // ')'
30707 if (p->error_indicator) {
30708 D(p->level--);
30709 return NULL;
30710 }
30711 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30712 Token * _literal;
30713 if (
30714 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30715 )
30716 {
30717 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30718 _res = _literal;
30719 goto done;
30720 }
30721 p->mark = _mark;
30722 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30724 }
30725 { // ':'
30726 if (p->error_indicator) {
30727 D(p->level--);
30728 return NULL;
30729 }
30730 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30731 Token * _literal;
30732 if (
30733 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30734 )
30735 {
30736 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30737 _res = _literal;
30738 goto done;
30739 }
30740 p->mark = _mark;
30741 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30743 }
30744 _res = NULL;
30745 done:
30746 D(p->level--);
30747 return _res;
30748}
30749
30750// _loop0_162: ',' (expression ['as' star_target])
30751static asdl_seq *
30752_loop0_162_rule(Parser *p)
30753{
30754 D(p->level++);
30755 if (p->error_indicator) {
30756 D(p->level--);
30757 return NULL;
30758 }
30759 void *_res = NULL;
30760 int _mark = p->mark;
30761 int _start_mark = p->mark;
30762 void **_children = PyMem_Malloc(sizeof(void *));
30763 if (!_children) {
30764 p->error_indicator = 1;
30765 PyErr_NoMemory();
30766 D(p->level--);
30767 return NULL;
30768 }
30769 Py_ssize_t _children_capacity = 1;
30770 Py_ssize_t _n = 0;
30771 { // ',' (expression ['as' star_target])
30772 if (p->error_indicator) {
30773 D(p->level--);
30774 return NULL;
30775 }
30776 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30777 Token * _literal;
30778 void *elem;
30779 while (
30780 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30781 &&
30782 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30783 )
30784 {
30785 _res = elem;
30786 if (_res == NULL && PyErr_Occurred()) {
30787 p->error_indicator = 1;
30788 PyMem_Free(_children);
30789 D(p->level--);
30790 return NULL;
30791 }
30792 if (_n == _children_capacity) {
30793 _children_capacity *= 2;
30794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30795 if (!_new_children) {
30796 p->error_indicator = 1;
30797 PyErr_NoMemory();
30798 D(p->level--);
30799 return NULL;
30800 }
30801 _children = _new_children;
30802 }
30803 _children[_n++] = _res;
30804 _mark = p->mark;
30805 }
30806 p->mark = _mark;
30807 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30809 }
30810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30811 if (!_seq) {
30812 PyMem_Free(_children);
30813 p->error_indicator = 1;
30814 PyErr_NoMemory();
30815 D(p->level--);
30816 return NULL;
30817 }
30818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30819 PyMem_Free(_children);
30820 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30821 D(p->level--);
30822 return _seq;
30823}
30824
30825// _gather_161: (expression ['as' star_target]) _loop0_162
30826static asdl_seq *
30827_gather_161_rule(Parser *p)
30828{
30829 D(p->level++);
30830 if (p->error_indicator) {
30831 D(p->level--);
30832 return NULL;
30833 }
30834 asdl_seq * _res = NULL;
30835 int _mark = p->mark;
30836 { // (expression ['as' star_target]) _loop0_162
30837 if (p->error_indicator) {
30838 D(p->level--);
30839 return NULL;
30840 }
30841 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30842 void *elem;
30843 asdl_seq * seq;
30844 if (
30845 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30846 &&
30847 (seq = _loop0_162_rule(p)) // _loop0_162
30848 )
30849 {
30850 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30851 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30852 goto done;
30853 }
30854 p->mark = _mark;
30855 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30857 }
30858 _res = NULL;
30859 done:
30860 D(p->level--);
30861 return _res;
30862}
30863
30864// _loop0_164: ',' (expressions ['as' star_target])
30865static asdl_seq *
30866_loop0_164_rule(Parser *p)
30867{
30868 D(p->level++);
30869 if (p->error_indicator) {
30870 D(p->level--);
30871 return NULL;
30872 }
30873 void *_res = NULL;
30874 int _mark = p->mark;
30875 int _start_mark = p->mark;
30876 void **_children = PyMem_Malloc(sizeof(void *));
30877 if (!_children) {
30878 p->error_indicator = 1;
30879 PyErr_NoMemory();
30880 D(p->level--);
30881 return NULL;
30882 }
30883 Py_ssize_t _children_capacity = 1;
30884 Py_ssize_t _n = 0;
30885 { // ',' (expressions ['as' star_target])
30886 if (p->error_indicator) {
30887 D(p->level--);
30888 return NULL;
30889 }
30890 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30891 Token * _literal;
30892 void *elem;
30893 while (
30894 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30895 &&
30896 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
30897 )
30898 {
30899 _res = elem;
30900 if (_res == NULL && PyErr_Occurred()) {
30901 p->error_indicator = 1;
30902 PyMem_Free(_children);
30903 D(p->level--);
30904 return NULL;
30905 }
30906 if (_n == _children_capacity) {
30907 _children_capacity *= 2;
30908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30909 if (!_new_children) {
30910 p->error_indicator = 1;
30911 PyErr_NoMemory();
30912 D(p->level--);
30913 return NULL;
30914 }
30915 _children = _new_children;
30916 }
30917 _children[_n++] = _res;
30918 _mark = p->mark;
30919 }
30920 p->mark = _mark;
30921 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
30922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
30923 }
30924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30925 if (!_seq) {
30926 PyMem_Free(_children);
30927 p->error_indicator = 1;
30928 PyErr_NoMemory();
30929 D(p->level--);
30930 return NULL;
30931 }
30932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30933 PyMem_Free(_children);
30934 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
30935 D(p->level--);
30936 return _seq;
30937}
30938
30939// _gather_163: (expressions ['as' star_target]) _loop0_164
30940static asdl_seq *
30941_gather_163_rule(Parser *p)
30942{
30943 D(p->level++);
30944 if (p->error_indicator) {
30945 D(p->level--);
30946 return NULL;
30947 }
30948 asdl_seq * _res = NULL;
30949 int _mark = p->mark;
30950 { // (expressions ['as' star_target]) _loop0_164
30951 if (p->error_indicator) {
30952 D(p->level--);
30953 return NULL;
30954 }
30955 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30956 void *elem;
30957 asdl_seq * seq;
30958 if (
30959 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
30960 &&
30961 (seq = _loop0_164_rule(p)) // _loop0_164
30962 )
30963 {
30964 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30965 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30966 goto done;
30967 }
30968 p->mark = _mark;
30969 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
30970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
30971 }
30972 _res = NULL;
30973 done:
30974 D(p->level--);
30975 return _res;
30976}
30977
30978// _loop0_166: ',' (expression ['as' star_target])
30979static asdl_seq *
30980_loop0_166_rule(Parser *p)
30981{
30982 D(p->level++);
30983 if (p->error_indicator) {
30984 D(p->level--);
30985 return NULL;
30986 }
30987 void *_res = NULL;
30988 int _mark = p->mark;
30989 int _start_mark = p->mark;
30990 void **_children = PyMem_Malloc(sizeof(void *));
30991 if (!_children) {
30992 p->error_indicator = 1;
30993 PyErr_NoMemory();
30994 D(p->level--);
30995 return NULL;
30996 }
30997 Py_ssize_t _children_capacity = 1;
30998 Py_ssize_t _n = 0;
30999 { // ',' (expression ['as' star_target])
31000 if (p->error_indicator) {
31001 D(p->level--);
31002 return NULL;
31003 }
31004 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31005 Token * _literal;
31006 void *elem;
31007 while (
31008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31009 &&
31010 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31011 )
31012 {
31013 _res = elem;
31014 if (_res == NULL && PyErr_Occurred()) {
31015 p->error_indicator = 1;
31016 PyMem_Free(_children);
31017 D(p->level--);
31018 return NULL;
31019 }
31020 if (_n == _children_capacity) {
31021 _children_capacity *= 2;
31022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31023 if (!_new_children) {
31024 p->error_indicator = 1;
31025 PyErr_NoMemory();
31026 D(p->level--);
31027 return NULL;
31028 }
31029 _children = _new_children;
31030 }
31031 _children[_n++] = _res;
31032 _mark = p->mark;
31033 }
31034 p->mark = _mark;
31035 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31037 }
31038 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31039 if (!_seq) {
31040 PyMem_Free(_children);
31041 p->error_indicator = 1;
31042 PyErr_NoMemory();
31043 D(p->level--);
31044 return NULL;
31045 }
31046 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31047 PyMem_Free(_children);
31048 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31049 D(p->level--);
31050 return _seq;
31051}
31052
31053// _gather_165: (expression ['as' star_target]) _loop0_166
31054static asdl_seq *
31055_gather_165_rule(Parser *p)
31056{
31057 D(p->level++);
31058 if (p->error_indicator) {
31059 D(p->level--);
31060 return NULL;
31061 }
31062 asdl_seq * _res = NULL;
31063 int _mark = p->mark;
31064 { // (expression ['as' star_target]) _loop0_166
31065 if (p->error_indicator) {
31066 D(p->level--);
31067 return NULL;
31068 }
31069 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31070 void *elem;
31071 asdl_seq * seq;
31072 if (
31073 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31074 &&
31075 (seq = _loop0_166_rule(p)) // _loop0_166
31076 )
31077 {
31078 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31080 goto done;
31081 }
31082 p->mark = _mark;
31083 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31085 }
31086 _res = NULL;
31087 done:
31088 D(p->level--);
31089 return _res;
31090}
31091
31092// _loop0_168: ',' (expressions ['as' star_target])
31093static asdl_seq *
31094_loop0_168_rule(Parser *p)
31095{
31096 D(p->level++);
31097 if (p->error_indicator) {
31098 D(p->level--);
31099 return NULL;
31100 }
31101 void *_res = NULL;
31102 int _mark = p->mark;
31103 int _start_mark = p->mark;
31104 void **_children = PyMem_Malloc(sizeof(void *));
31105 if (!_children) {
31106 p->error_indicator = 1;
31107 PyErr_NoMemory();
31108 D(p->level--);
31109 return NULL;
31110 }
31111 Py_ssize_t _children_capacity = 1;
31112 Py_ssize_t _n = 0;
31113 { // ',' (expressions ['as' star_target])
31114 if (p->error_indicator) {
31115 D(p->level--);
31116 return NULL;
31117 }
31118 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31119 Token * _literal;
31120 void *elem;
31121 while (
31122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31123 &&
31124 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31125 )
31126 {
31127 _res = elem;
31128 if (_res == NULL && PyErr_Occurred()) {
31129 p->error_indicator = 1;
31130 PyMem_Free(_children);
31131 D(p->level--);
31132 return NULL;
31133 }
31134 if (_n == _children_capacity) {
31135 _children_capacity *= 2;
31136 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31137 if (!_new_children) {
31138 p->error_indicator = 1;
31139 PyErr_NoMemory();
31140 D(p->level--);
31141 return NULL;
31142 }
31143 _children = _new_children;
31144 }
31145 _children[_n++] = _res;
31146 _mark = p->mark;
31147 }
31148 p->mark = _mark;
31149 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31151 }
31152 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31153 if (!_seq) {
31154 PyMem_Free(_children);
31155 p->error_indicator = 1;
31156 PyErr_NoMemory();
31157 D(p->level--);
31158 return NULL;
31159 }
31160 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31161 PyMem_Free(_children);
31162 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31163 D(p->level--);
31164 return _seq;
31165}
31166
31167// _gather_167: (expressions ['as' star_target]) _loop0_168
31168static asdl_seq *
31169_gather_167_rule(Parser *p)
31170{
31171 D(p->level++);
31172 if (p->error_indicator) {
31173 D(p->level--);
31174 return NULL;
31175 }
31176 asdl_seq * _res = NULL;
31177 int _mark = p->mark;
31178 { // (expressions ['as' star_target]) _loop0_168
31179 if (p->error_indicator) {
31180 D(p->level--);
31181 return NULL;
31182 }
31183 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
31184 void *elem;
31185 asdl_seq * seq;
31186 if (
31187 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31188 &&
31189 (seq = _loop0_168_rule(p)) // _loop0_168
31190 )
31191 {
31192 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
31193 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31194 goto done;
31195 }
31196 p->mark = _mark;
31197 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031199 }
31200 _res = NULL;
31201 done:
31202 D(p->level--);
31203 return _res;
31204}
31205
31206// _tmp_169: 'as' NAME
31207static void *
31208_tmp_169_rule(Parser *p)
31209{
31210 D(p->level++);
31211 if (p->error_indicator) {
31212 D(p->level--);
31213 return NULL;
31214 }
31215 void * _res = NULL;
31216 int _mark = p->mark;
31217 { // 'as' NAME
31218 if (p->error_indicator) {
31219 D(p->level--);
31220 return NULL;
31221 }
31222 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31223 Token * _keyword;
31224 expr_ty name_var;
31225 if (
31226 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31227 &&
31228 (name_var = _PyPegen_name_token(p)) // NAME
31229 )
31230 {
31231 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31232 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31233 goto done;
31234 }
31235 p->mark = _mark;
31236 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
31237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31238 }
31239 _res = NULL;
31240 done:
31241 D(p->level--);
31242 return _res;
31243}
31244
31245// _tmp_170: 'as' NAME
31246static void *
31247_tmp_170_rule(Parser *p)
31248{
31249 D(p->level++);
31250 if (p->error_indicator) {
31251 D(p->level--);
31252 return NULL;
31253 }
31254 void * _res = NULL;
31255 int _mark = p->mark;
31256 { // 'as' NAME
31257 if (p->error_indicator) {
31258 D(p->level--);
31259 return NULL;
31260 }
31261 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31262 Token * _keyword;
31263 expr_ty name_var;
31264 if (
31265 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31266 &&
31267 (name_var = _PyPegen_name_token(p)) // NAME
31268 )
31269 {
31270 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31271 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31272 goto done;
31273 }
31274 p->mark = _mark;
31275 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31277 }
31278 _res = NULL;
31279 done:
31280 D(p->level--);
31281 return _res;
31282}
31283
Pablo Galindoa77aac42021-04-23 14:27:05 +010031284// _tmp_171: 'as' NAME
Pablo Galindo56c95df2021-04-21 15:28:21 +010031285static void *
31286_tmp_171_rule(Parser *p)
31287{
31288 D(p->level++);
31289 if (p->error_indicator) {
31290 D(p->level--);
31291 return NULL;
31292 }
31293 void * _res = NULL;
31294 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031295 { // 'as' NAME
31296 if (p->error_indicator) {
31297 D(p->level--);
31298 return NULL;
31299 }
31300 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31301 Token * _keyword;
31302 expr_ty name_var;
31303 if (
31304 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31305 &&
31306 (name_var = _PyPegen_name_token(p)) // NAME
31307 )
31308 {
31309 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31310 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31311 goto done;
31312 }
31313 p->mark = _mark;
31314 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31316 }
31317 _res = NULL;
31318 done:
31319 D(p->level--);
31320 return _res;
31321}
31322
31323// _tmp_172: '->' expression
31324static void *
31325_tmp_172_rule(Parser *p)
31326{
31327 D(p->level++);
31328 if (p->error_indicator) {
31329 D(p->level--);
31330 return NULL;
31331 }
31332 void * _res = NULL;
31333 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031334 { // '->' expression
31335 if (p->error_indicator) {
31336 D(p->level--);
31337 return NULL;
31338 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031339 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031340 Token * _literal;
31341 expr_ty expression_var;
31342 if (
31343 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31344 &&
31345 (expression_var = expression_rule(p)) // expression
31346 )
31347 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031348 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031349 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31350 goto done;
31351 }
31352 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031353 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31355 }
31356 _res = NULL;
31357 done:
31358 D(p->level--);
31359 return _res;
31360}
31361
Pablo Galindoa77aac42021-04-23 14:27:05 +010031362// _tmp_173: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031363static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031364_tmp_173_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031365{
31366 D(p->level++);
31367 if (p->error_indicator) {
31368 D(p->level--);
31369 return NULL;
31370 }
31371 void * _res = NULL;
31372 int _mark = p->mark;
31373 { // '(' arguments? ')'
31374 if (p->error_indicator) {
31375 D(p->level--);
31376 return NULL;
31377 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031378 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031379 Token * _literal;
31380 Token * _literal_1;
31381 void *_opt_var;
31382 UNUSED(_opt_var); // Silence compiler warnings
31383 if (
31384 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31385 &&
31386 (_opt_var = arguments_rule(p), 1) // arguments?
31387 &&
31388 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31389 )
31390 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031391 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031392 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31393 goto done;
31394 }
31395 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031396 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31398 }
31399 _res = NULL;
31400 done:
31401 D(p->level--);
31402 return _res;
31403}
31404
Pablo Galindoa77aac42021-04-23 14:27:05 +010031405// _loop0_175: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031406static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031407_loop0_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031408{
31409 D(p->level++);
31410 if (p->error_indicator) {
31411 D(p->level--);
31412 return NULL;
31413 }
31414 void *_res = NULL;
31415 int _mark = p->mark;
31416 int _start_mark = p->mark;
31417 void **_children = PyMem_Malloc(sizeof(void *));
31418 if (!_children) {
31419 p->error_indicator = 1;
31420 PyErr_NoMemory();
31421 D(p->level--);
31422 return NULL;
31423 }
31424 Py_ssize_t _children_capacity = 1;
31425 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031426 { // ',' double_starred_kvpair
31427 if (p->error_indicator) {
31428 D(p->level--);
31429 return NULL;
31430 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031431 D(fprintf(stderr, "%*c> _loop0_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031432 Token * _literal;
31433 KeyValuePair* elem;
31434 while (
31435 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31436 &&
31437 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31438 )
31439 {
31440 _res = elem;
31441 if (_res == NULL && PyErr_Occurred()) {
31442 p->error_indicator = 1;
31443 PyMem_Free(_children);
31444 D(p->level--);
31445 return NULL;
31446 }
31447 if (_n == _children_capacity) {
31448 _children_capacity *= 2;
31449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31450 if (!_new_children) {
31451 p->error_indicator = 1;
31452 PyErr_NoMemory();
31453 D(p->level--);
31454 return NULL;
31455 }
31456 _children = _new_children;
31457 }
31458 _children[_n++] = _res;
31459 _mark = p->mark;
31460 }
31461 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031462 D(fprintf(stderr, "%*c%s _loop0_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31464 }
31465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31466 if (!_seq) {
31467 PyMem_Free(_children);
31468 p->error_indicator = 1;
31469 PyErr_NoMemory();
31470 D(p->level--);
31471 return NULL;
31472 }
31473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31474 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010031475 _PyPegen_insert_memo(p, _start_mark, _loop0_175_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031476 D(p->level--);
31477 return _seq;
31478}
31479
Pablo Galindoa77aac42021-04-23 14:27:05 +010031480// _gather_174: double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031481static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031482_gather_174_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031483{
31484 D(p->level++);
31485 if (p->error_indicator) {
31486 D(p->level--);
31487 return NULL;
31488 }
31489 asdl_seq * _res = NULL;
31490 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031491 { // double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031492 if (p->error_indicator) {
31493 D(p->level--);
31494 return NULL;
31495 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031496 D(fprintf(stderr, "%*c> _gather_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031497 KeyValuePair* elem;
31498 asdl_seq * seq;
31499 if (
31500 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31501 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031502 (seq = _loop0_175_rule(p)) // _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031503 )
31504 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031505 D(fprintf(stderr, "%*c+ _gather_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031506 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31507 goto done;
31508 }
31509 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031510 D(fprintf(stderr, "%*c%s _gather_174[%d-%d]: %s failed!\n", p->level, ' ',
31511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031512 }
31513 _res = NULL;
31514 done:
31515 D(p->level--);
31516 return _res;
31517}
31518
Pablo Galindoa77aac42021-04-23 14:27:05 +010031519// _tmp_176: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031520static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031521_tmp_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031522{
31523 D(p->level++);
31524 if (p->error_indicator) {
31525 D(p->level--);
31526 return NULL;
31527 }
31528 void * _res = NULL;
31529 int _mark = p->mark;
31530 { // '}'
31531 if (p->error_indicator) {
31532 D(p->level--);
31533 return NULL;
31534 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031535 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031536 Token * _literal;
31537 if (
31538 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31539 )
31540 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031541 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031542 _res = _literal;
31543 goto done;
31544 }
31545 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031546 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31548 }
31549 { // ','
31550 if (p->error_indicator) {
31551 D(p->level--);
31552 return NULL;
31553 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031554 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031555 Token * _literal;
31556 if (
31557 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31558 )
31559 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031560 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031561 _res = _literal;
31562 goto done;
31563 }
31564 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031565 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31567 }
31568 _res = NULL;
31569 done:
31570 D(p->level--);
31571 return _res;
31572}
31573
Pablo Galindoa77aac42021-04-23 14:27:05 +010031574// _tmp_177: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031575static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031576_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031577{
31578 D(p->level++);
31579 if (p->error_indicator) {
31580 D(p->level--);
31581 return NULL;
31582 }
31583 void * _res = NULL;
31584 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031585 { // star_targets '='
31586 if (p->error_indicator) {
31587 D(p->level--);
31588 return NULL;
31589 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031590 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031591 Token * _literal;
31592 expr_ty z;
31593 if (
31594 (z = star_targets_rule(p)) // star_targets
31595 &&
31596 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31597 )
31598 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031599 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031600 _res = z;
31601 if (_res == NULL && PyErr_Occurred()) {
31602 p->error_indicator = 1;
31603 D(p->level--);
31604 return NULL;
31605 }
31606 goto done;
31607 }
31608 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031609 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31611 }
31612 _res = NULL;
31613 done:
31614 D(p->level--);
31615 return _res;
31616}
31617
Pablo Galindo56c95df2021-04-21 15:28:21 +010031618// _tmp_178: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000031619static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031620_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031621{
31622 D(p->level++);
31623 if (p->error_indicator) {
31624 D(p->level--);
31625 return NULL;
31626 }
31627 void * _res = NULL;
31628 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031629 { // '.'
31630 if (p->error_indicator) {
31631 D(p->level--);
31632 return NULL;
31633 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031634 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031635 Token * _literal;
31636 if (
31637 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31638 )
31639 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031640 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031641 _res = _literal;
31642 goto done;
31643 }
31644 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031645 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31647 }
31648 { // '...'
31649 if (p->error_indicator) {
31650 D(p->level--);
31651 return NULL;
31652 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031653 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031654 Token * _literal;
31655 if (
31656 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31657 )
31658 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031659 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031660 _res = _literal;
31661 goto done;
31662 }
31663 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031664 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31666 }
31667 _res = NULL;
31668 done:
31669 D(p->level--);
31670 return _res;
31671}
31672
Pablo Galindoa77aac42021-04-23 14:27:05 +010031673// _tmp_179: '.' | '...'
Pablo Galindob2802482021-04-15 21:38:45 +010031674static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031675_tmp_179_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031676{
31677 D(p->level++);
31678 if (p->error_indicator) {
31679 D(p->level--);
31680 return NULL;
31681 }
31682 void * _res = NULL;
31683 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031684 { // '.'
31685 if (p->error_indicator) {
31686 D(p->level--);
31687 return NULL;
31688 }
31689 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31690 Token * _literal;
31691 if (
31692 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31693 )
31694 {
31695 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31696 _res = _literal;
31697 goto done;
31698 }
31699 p->mark = _mark;
31700 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31702 }
31703 { // '...'
31704 if (p->error_indicator) {
31705 D(p->level--);
31706 return NULL;
31707 }
31708 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31709 Token * _literal;
31710 if (
31711 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31712 )
31713 {
31714 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31715 _res = _literal;
31716 goto done;
31717 }
31718 p->mark = _mark;
31719 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31721 }
31722 _res = NULL;
31723 done:
31724 D(p->level--);
31725 return _res;
31726}
31727
31728// _tmp_180: '@' named_expression NEWLINE
31729static void *
31730_tmp_180_rule(Parser *p)
31731{
31732 D(p->level++);
31733 if (p->error_indicator) {
31734 D(p->level--);
31735 return NULL;
31736 }
31737 void * _res = NULL;
31738 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031739 { // '@' named_expression NEWLINE
31740 if (p->error_indicator) {
31741 D(p->level--);
31742 return NULL;
31743 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031744 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031745 Token * _literal;
31746 expr_ty f;
31747 Token * newline_var;
31748 if (
31749 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31750 &&
31751 (f = named_expression_rule(p)) // named_expression
31752 &&
31753 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31754 )
31755 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031756 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031757 _res = f;
31758 if (_res == NULL && PyErr_Occurred()) {
31759 p->error_indicator = 1;
31760 D(p->level--);
31761 return NULL;
31762 }
31763 goto done;
31764 }
31765 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031766 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31768 }
31769 _res = NULL;
31770 done:
31771 D(p->level--);
31772 return _res;
31773}
31774
Pablo Galindoa77aac42021-04-23 14:27:05 +010031775// _tmp_181: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031776static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031777_tmp_181_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031778{
31779 D(p->level++);
31780 if (p->error_indicator) {
31781 D(p->level--);
31782 return NULL;
31783 }
31784 void * _res = NULL;
31785 int _mark = p->mark;
31786 { // ',' star_expression
31787 if (p->error_indicator) {
31788 D(p->level--);
31789 return NULL;
31790 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031791 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031792 Token * _literal;
31793 expr_ty c;
31794 if (
31795 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31796 &&
31797 (c = star_expression_rule(p)) // star_expression
31798 )
31799 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031800 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031801 _res = c;
31802 if (_res == NULL && PyErr_Occurred()) {
31803 p->error_indicator = 1;
31804 D(p->level--);
31805 return NULL;
31806 }
31807 goto done;
31808 }
31809 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031810 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31812 }
31813 _res = NULL;
31814 done:
31815 D(p->level--);
31816 return _res;
31817}
31818
Pablo Galindoa77aac42021-04-23 14:27:05 +010031819// _tmp_182: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031820static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031821_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031822{
31823 D(p->level++);
31824 if (p->error_indicator) {
31825 D(p->level--);
31826 return NULL;
31827 }
31828 void * _res = NULL;
31829 int _mark = p->mark;
31830 { // ',' expression
31831 if (p->error_indicator) {
31832 D(p->level--);
31833 return NULL;
31834 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031835 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031836 Token * _literal;
31837 expr_ty c;
31838 if (
31839 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31840 &&
31841 (c = expression_rule(p)) // expression
31842 )
31843 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031844 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031845 _res = c;
31846 if (_res == NULL && PyErr_Occurred()) {
31847 p->error_indicator = 1;
31848 D(p->level--);
31849 return NULL;
31850 }
31851 goto done;
31852 }
31853 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031854 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31856 }
31857 _res = NULL;
31858 done:
31859 D(p->level--);
31860 return _res;
31861}
31862
Pablo Galindoa77aac42021-04-23 14:27:05 +010031863// _tmp_183: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031864static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031865_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031866{
31867 D(p->level++);
31868 if (p->error_indicator) {
31869 D(p->level--);
31870 return NULL;
31871 }
31872 void * _res = NULL;
31873 int _mark = p->mark;
31874 { // 'or' conjunction
31875 if (p->error_indicator) {
31876 D(p->level--);
31877 return NULL;
31878 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031879 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031880 Token * _keyword;
31881 expr_ty c;
31882 if (
31883 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
31884 &&
31885 (c = conjunction_rule(p)) // conjunction
31886 )
31887 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031888 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031889 _res = c;
31890 if (_res == NULL && PyErr_Occurred()) {
31891 p->error_indicator = 1;
31892 D(p->level--);
31893 return NULL;
31894 }
31895 goto done;
31896 }
31897 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031898 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
31900 }
31901 _res = NULL;
31902 done:
31903 D(p->level--);
31904 return _res;
31905}
31906
Pablo Galindoa77aac42021-04-23 14:27:05 +010031907// _tmp_184: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031908static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031909_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031910{
31911 D(p->level++);
31912 if (p->error_indicator) {
31913 D(p->level--);
31914 return NULL;
31915 }
31916 void * _res = NULL;
31917 int _mark = p->mark;
31918 { // 'and' inversion
31919 if (p->error_indicator) {
31920 D(p->level--);
31921 return NULL;
31922 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031923 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031924 Token * _keyword;
31925 expr_ty c;
31926 if (
31927 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
31928 &&
31929 (c = inversion_rule(p)) // inversion
31930 )
31931 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031932 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031933 _res = c;
31934 if (_res == NULL && PyErr_Occurred()) {
31935 p->error_indicator = 1;
31936 D(p->level--);
31937 return NULL;
31938 }
31939 goto done;
31940 }
31941 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031942 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010031943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000031944 }
31945 _res = NULL;
31946 done:
31947 D(p->level--);
31948 return _res;
31949}
31950
Pablo Galindo56c95df2021-04-21 15:28:21 +010031951// _tmp_185: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000031952static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031953_tmp_185_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031954{
31955 D(p->level++);
31956 if (p->error_indicator) {
31957 D(p->level--);
31958 return NULL;
31959 }
31960 void * _res = NULL;
31961 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031962 { // 'if' disjunction
31963 if (p->error_indicator) {
31964 D(p->level--);
31965 return NULL;
31966 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031967 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031968 Token * _keyword;
31969 expr_ty z;
31970 if (
31971 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31972 &&
31973 (z = disjunction_rule(p)) // disjunction
31974 )
31975 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031976 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010031977 _res = z;
31978 if (_res == NULL && PyErr_Occurred()) {
31979 p->error_indicator = 1;
31980 D(p->level--);
31981 return NULL;
31982 }
31983 goto done;
31984 }
31985 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031986 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31988 }
31989 _res = NULL;
31990 done:
31991 D(p->level--);
31992 return _res;
31993}
31994
Pablo Galindoa77aac42021-04-23 14:27:05 +010031995// _tmp_186: 'if' disjunction
Pablo Galindob2802482021-04-15 21:38:45 +010031996static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031997_tmp_186_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031998{
31999 D(p->level++);
32000 if (p->error_indicator) {
32001 D(p->level--);
32002 return NULL;
32003 }
32004 void * _res = NULL;
32005 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032006 { // 'if' disjunction
32007 if (p->error_indicator) {
32008 D(p->level--);
32009 return NULL;
32010 }
32011 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32012 Token * _keyword;
32013 expr_ty z;
32014 if (
32015 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32016 &&
32017 (z = disjunction_rule(p)) // disjunction
32018 )
32019 {
32020 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32021 _res = z;
32022 if (_res == NULL && PyErr_Occurred()) {
32023 p->error_indicator = 1;
32024 D(p->level--);
32025 return NULL;
32026 }
32027 goto done;
32028 }
32029 p->mark = _mark;
32030 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
32031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32032 }
32033 _res = NULL;
32034 done:
32035 D(p->level--);
32036 return _res;
32037}
32038
32039// _tmp_187: starred_expression | direct_named_expression !'='
32040static void *
32041_tmp_187_rule(Parser *p)
32042{
32043 D(p->level++);
32044 if (p->error_indicator) {
32045 D(p->level--);
32046 return NULL;
32047 }
32048 void * _res = NULL;
32049 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032050 { // starred_expression
32051 if (p->error_indicator) {
32052 D(p->level--);
32053 return NULL;
32054 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032055 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032056 expr_ty starred_expression_var;
32057 if (
32058 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32059 )
32060 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032061 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032062 _res = starred_expression_var;
32063 goto done;
32064 }
32065 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032066 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32068 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010032069 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032070 if (p->error_indicator) {
32071 D(p->level--);
32072 return NULL;
32073 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032074 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032075 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032076 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010032077 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010032078 &&
32079 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32080 )
32081 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032082 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032083 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032084 goto done;
32085 }
32086 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032087 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010032089 }
32090 _res = NULL;
32091 done:
32092 D(p->level--);
32093 return _res;
32094}
32095
Pablo Galindo56c95df2021-04-21 15:28:21 +010032096// _tmp_188: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032097static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032098_tmp_188_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032099{
32100 D(p->level++);
32101 if (p->error_indicator) {
32102 D(p->level--);
32103 return NULL;
32104 }
32105 void * _res = NULL;
32106 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010032107 { // ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032108 if (p->error_indicator) {
32109 D(p->level--);
32110 return NULL;
32111 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032112 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032113 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010032114 expr_ty c;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032115 if (
Pablo Galindob2802482021-04-15 21:38:45 +010032116 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032117 &&
Pablo Galindob2802482021-04-15 21:38:45 +010032118 (c = star_target_rule(p)) // star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032119 )
32120 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032121 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032122 _res = c;
32123 if (_res == NULL && PyErr_Occurred()) {
32124 p->error_indicator = 1;
32125 D(p->level--);
32126 return NULL;
32127 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032128 goto done;
32129 }
32130 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032131 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032133 }
32134 _res = NULL;
32135 done:
32136 D(p->level--);
32137 return _res;
32138}
32139
Pablo Galindoa77aac42021-04-23 14:27:05 +010032140// _tmp_189: ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032141static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032142_tmp_189_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032143{
32144 D(p->level++);
32145 if (p->error_indicator) {
32146 D(p->level--);
32147 return NULL;
32148 }
32149 void * _res = NULL;
32150 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032151 { // ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032152 if (p->error_indicator) {
32153 D(p->level--);
32154 return NULL;
32155 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032156 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032157 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032158 expr_ty c;
Pablo Galindoda743502021-04-15 14:06:39 +010032159 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010032160 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoda743502021-04-15 14:06:39 +010032161 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032162 (c = star_target_rule(p)) // star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032163 )
32164 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032165 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32166 _res = c;
32167 if (_res == NULL && PyErr_Occurred()) {
32168 p->error_indicator = 1;
32169 D(p->level--);
32170 return NULL;
32171 }
Pablo Galindoda743502021-04-15 14:06:39 +010032172 goto done;
32173 }
32174 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032175 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032177 }
32178 _res = NULL;
32179 done:
32180 D(p->level--);
32181 return _res;
32182}
32183
Pablo Galindo56c95df2021-04-21 15:28:21 +010032184// _tmp_190: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010032185static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032186_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000032187{
32188 D(p->level++);
32189 if (p->error_indicator) {
32190 D(p->level--);
32191 return NULL;
32192 }
32193 void * _res = NULL;
32194 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010032195 { // star_targets '='
32196 if (p->error_indicator) {
32197 D(p->level--);
32198 return NULL;
32199 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032200 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032201 Token * _literal;
32202 expr_ty star_targets_var;
32203 if (
32204 (star_targets_var = star_targets_rule(p)) // star_targets
32205 &&
32206 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32207 )
32208 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032209 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032210 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32211 goto done;
32212 }
32213 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032214 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32216 }
32217 _res = NULL;
32218 done:
32219 D(p->level--);
32220 return _res;
32221}
32222
Pablo Galindoa77aac42021-04-23 14:27:05 +010032223// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010032224static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032225_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032226{
32227 D(p->level++);
32228 if (p->error_indicator) {
32229 D(p->level--);
32230 return NULL;
32231 }
32232 void * _res = NULL;
32233 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032234 { // star_targets '='
32235 if (p->error_indicator) {
32236 D(p->level--);
32237 return NULL;
32238 }
32239 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32240 Token * _literal;
32241 expr_ty star_targets_var;
32242 if (
32243 (star_targets_var = star_targets_rule(p)) // star_targets
32244 &&
32245 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32246 )
32247 {
32248 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32249 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32250 goto done;
32251 }
32252 p->mark = _mark;
32253 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
32254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32255 }
32256 _res = NULL;
32257 done:
32258 D(p->level--);
32259 return _res;
32260}
32261
32262// _tmp_192: ')' | '**'
32263static void *
32264_tmp_192_rule(Parser *p)
32265{
32266 D(p->level++);
32267 if (p->error_indicator) {
32268 D(p->level--);
32269 return NULL;
32270 }
32271 void * _res = NULL;
32272 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032273 { // ')'
32274 if (p->error_indicator) {
32275 D(p->level--);
32276 return NULL;
32277 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032278 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032279 Token * _literal;
32280 if (
32281 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32282 )
32283 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032284 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032285 _res = _literal;
32286 goto done;
32287 }
32288 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032289 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032291 }
32292 { // '**'
32293 if (p->error_indicator) {
32294 D(p->level--);
32295 return NULL;
32296 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032297 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032298 Token * _literal;
32299 if (
32300 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32301 )
32302 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032303 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032304 _res = _literal;
32305 goto done;
32306 }
32307 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032308 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
32310 }
32311 _res = NULL;
32312 done:
32313 D(p->level--);
32314 return _res;
32315}
32316
Pablo Galindoa77aac42021-04-23 14:27:05 +010032317// _tmp_193: ':' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010032318static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032319_tmp_193_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032320{
32321 D(p->level++);
32322 if (p->error_indicator) {
32323 D(p->level--);
32324 return NULL;
32325 }
32326 void * _res = NULL;
32327 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032328 { // ':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000032329 if (p->error_indicator) {
32330 D(p->level--);
32331 return NULL;
32332 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032333 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32334 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032335 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010032336 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000032337 )
32338 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032339 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32340 _res = _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032341 goto done;
32342 }
32343 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032344 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32346 }
32347 { // '**'
32348 if (p->error_indicator) {
32349 D(p->level--);
32350 return NULL;
32351 }
32352 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32353 Token * _literal;
32354 if (
32355 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32356 )
32357 {
32358 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32359 _res = _literal;
32360 goto done;
32361 }
32362 p->mark = _mark;
32363 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032365 }
32366 _res = NULL;
32367 done:
32368 D(p->level--);
32369 return _res;
32370}
32371
Pablo Galindoa77aac42021-04-23 14:27:05 +010032372// _tmp_194: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032373static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032374_tmp_194_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000032375{
32376 D(p->level++);
32377 if (p->error_indicator) {
32378 D(p->level--);
32379 return NULL;
32380 }
32381 void * _res = NULL;
32382 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032383 { // expression ['as' star_target]
32384 if (p->error_indicator) {
32385 D(p->level--);
32386 return NULL;
32387 }
32388 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32389 void *_opt_var;
32390 UNUSED(_opt_var); // Silence compiler warnings
32391 expr_ty expression_var;
32392 if (
32393 (expression_var = expression_rule(p)) // expression
32394 &&
32395 (_opt_var = _tmp_198_rule(p), 1) // ['as' star_target]
32396 )
32397 {
32398 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32399 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32400 goto done;
32401 }
32402 p->mark = _mark;
32403 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32405 }
32406 _res = NULL;
32407 done:
32408 D(p->level--);
32409 return _res;
32410}
32411
32412// _tmp_195: expressions ['as' star_target]
32413static void *
32414_tmp_195_rule(Parser *p)
32415{
32416 D(p->level++);
32417 if (p->error_indicator) {
32418 D(p->level--);
32419 return NULL;
32420 }
32421 void * _res = NULL;
32422 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032423 { // expressions ['as' star_target]
32424 if (p->error_indicator) {
32425 D(p->level--);
32426 return NULL;
32427 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032428 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032429 void *_opt_var;
32430 UNUSED(_opt_var); // Silence compiler warnings
32431 expr_ty expressions_var;
32432 if (
32433 (expressions_var = expressions_rule(p)) // expressions
32434 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032435 (_opt_var = _tmp_199_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032436 )
32437 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032438 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032439 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32440 goto done;
32441 }
32442 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032443 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032445 }
32446 _res = NULL;
32447 done:
32448 D(p->level--);
32449 return _res;
32450}
32451
Pablo Galindoa77aac42021-04-23 14:27:05 +010032452// _tmp_196: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032453static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032454_tmp_196_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032455{
32456 D(p->level++);
32457 if (p->error_indicator) {
32458 D(p->level--);
32459 return NULL;
32460 }
32461 void * _res = NULL;
32462 int _mark = p->mark;
32463 { // expression ['as' star_target]
32464 if (p->error_indicator) {
32465 D(p->level--);
32466 return NULL;
32467 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032468 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032469 void *_opt_var;
32470 UNUSED(_opt_var); // Silence compiler warnings
32471 expr_ty expression_var;
32472 if (
32473 (expression_var = expression_rule(p)) // expression
32474 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032475 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032476 )
32477 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032478 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032479 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32480 goto done;
32481 }
32482 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032483 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010032484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32485 }
32486 _res = NULL;
32487 done:
32488 D(p->level--);
32489 return _res;
32490}
32491
Pablo Galindoa77aac42021-04-23 14:27:05 +010032492// _tmp_197: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032493static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032494_tmp_197_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032495{
32496 D(p->level++);
32497 if (p->error_indicator) {
32498 D(p->level--);
32499 return NULL;
32500 }
32501 void * _res = NULL;
32502 int _mark = p->mark;
32503 { // expressions ['as' star_target]
32504 if (p->error_indicator) {
32505 D(p->level--);
32506 return NULL;
32507 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032508 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032509 void *_opt_var;
32510 UNUSED(_opt_var); // Silence compiler warnings
32511 expr_ty expressions_var;
32512 if (
32513 (expressions_var = expressions_rule(p)) // expressions
32514 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032515 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032516 )
32517 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032518 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032519 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32520 goto done;
32521 }
32522 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032523 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032525 }
32526 _res = NULL;
32527 done:
32528 D(p->level--);
32529 return _res;
32530}
32531
Pablo Galindo56c95df2021-04-21 15:28:21 +010032532// _tmp_198: 'as' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032533static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032534_tmp_198_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032535{
32536 D(p->level++);
32537 if (p->error_indicator) {
32538 D(p->level--);
32539 return NULL;
32540 }
32541 void * _res = NULL;
32542 int _mark = p->mark;
32543 { // 'as' star_target
32544 if (p->error_indicator) {
32545 D(p->level--);
32546 return NULL;
32547 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032548 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032549 Token * _keyword;
32550 expr_ty star_target_var;
32551 if (
32552 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32553 &&
32554 (star_target_var = star_target_rule(p)) // star_target
32555 )
32556 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032557 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032558 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32559 goto done;
32560 }
32561 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032562 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
32563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32564 }
32565 _res = NULL;
32566 done:
32567 D(p->level--);
32568 return _res;
32569}
32570
32571// _tmp_199: 'as' star_target
32572static void *
32573_tmp_199_rule(Parser *p)
32574{
32575 D(p->level++);
32576 if (p->error_indicator) {
32577 D(p->level--);
32578 return NULL;
32579 }
32580 void * _res = NULL;
32581 int _mark = p->mark;
32582 { // 'as' star_target
32583 if (p->error_indicator) {
32584 D(p->level--);
32585 return NULL;
32586 }
32587 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32588 Token * _keyword;
32589 expr_ty star_target_var;
32590 if (
32591 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32592 &&
32593 (star_target_var = star_target_rule(p)) // star_target
32594 )
32595 {
32596 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32597 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32598 goto done;
32599 }
32600 p->mark = _mark;
32601 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
32602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32603 }
32604 _res = NULL;
32605 done:
32606 D(p->level--);
32607 return _res;
32608}
32609
32610// _tmp_200: 'as' star_target
32611static void *
32612_tmp_200_rule(Parser *p)
32613{
32614 D(p->level++);
32615 if (p->error_indicator) {
32616 D(p->level--);
32617 return NULL;
32618 }
32619 void * _res = NULL;
32620 int _mark = p->mark;
32621 { // 'as' star_target
32622 if (p->error_indicator) {
32623 D(p->level--);
32624 return NULL;
32625 }
32626 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32627 Token * _keyword;
32628 expr_ty star_target_var;
32629 if (
32630 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32631 &&
32632 (star_target_var = star_target_rule(p)) // star_target
32633 )
32634 {
32635 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32636 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32637 goto done;
32638 }
32639 p->mark = _mark;
32640 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32642 }
32643 _res = NULL;
32644 done:
32645 D(p->level--);
32646 return _res;
32647}
32648
Pablo Galindoa77aac42021-04-23 14:27:05 +010032649// _tmp_201: 'as' star_target
32650static void *
32651_tmp_201_rule(Parser *p)
32652{
32653 D(p->level++);
32654 if (p->error_indicator) {
32655 D(p->level--);
32656 return NULL;
32657 }
32658 void * _res = NULL;
32659 int _mark = p->mark;
32660 { // 'as' star_target
32661 if (p->error_indicator) {
32662 D(p->level--);
32663 return NULL;
32664 }
32665 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32666 Token * _keyword;
32667 expr_ty star_target_var;
32668 if (
32669 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32670 &&
32671 (star_target_var = star_target_rule(p)) // star_target
32672 )
32673 {
32674 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32675 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32676 goto done;
32677 }
32678 p->mark = _mark;
32679 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32681 }
32682 _res = NULL;
32683 done:
32684 D(p->level--);
32685 return _res;
32686}
32687
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032688void *
32689_PyPegen_parse(Parser *p)
32690{
32691 // Initialize keywords
32692 p->keywords = reserved_keywords;
32693 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032694 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032695
32696 // Run parser
32697 void *result = NULL;
32698 if (p->start_rule == Py_file_input) {
32699 result = file_rule(p);
32700 } else if (p->start_rule == Py_single_input) {
32701 result = interactive_rule(p);
32702 } else if (p->start_rule == Py_eval_input) {
32703 result = eval_rule(p);
32704 } else if (p->start_rule == Py_func_type_input) {
32705 result = func_type_rule(p);
32706 } else if (p->start_rule == Py_fstring_input) {
32707 result = fstring_rule(p);
32708 }
32709
32710 return result;
32711}
32712
32713// The end