blob: b37e3d6855ce9c058bdcda8e643750d248479ecd [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
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100255#define invalid_legacy_expression_type 1181
256#define invalid_expression_type 1182
257#define invalid_named_expression_type 1183
258#define invalid_assignment_type 1184
259#define invalid_ann_assign_target_type 1185
260#define invalid_del_stmt_type 1186
261#define invalid_block_type 1187
262#define invalid_primary_type 1188 // Left-recursive
263#define invalid_comprehension_type 1189
264#define invalid_dict_comprehension_type 1190
265#define invalid_parameters_type 1191
266#define invalid_parameters_helper_type 1192
267#define invalid_lambda_parameters_type 1193
268#define invalid_lambda_parameters_helper_type 1194
269#define invalid_star_etc_type 1195
270#define invalid_lambda_star_etc_type 1196
271#define invalid_double_type_comments_type 1197
272#define invalid_with_item_type 1198
273#define invalid_for_target_type 1199
274#define invalid_group_type 1200
275#define invalid_import_from_targets_type 1201
276#define invalid_with_stmt_type 1202
277#define invalid_with_stmt_indent_type 1203
278#define invalid_try_stmt_type 1204
279#define invalid_except_stmt_type 1205
280#define invalid_finally_stmt_type 1206
281#define invalid_except_stmt_indent_type 1207
282#define invalid_match_stmt_type 1208
283#define invalid_case_block_type 1209
284#define invalid_as_pattern_type 1210
285#define invalid_class_pattern_type 1211
286#define invalid_class_argument_pattern_type 1212
287#define invalid_if_stmt_type 1213
288#define invalid_elif_stmt_type 1214
289#define invalid_else_stmt_type 1215
290#define invalid_while_stmt_type 1216
291#define invalid_for_stmt_type 1217
292#define invalid_def_raw_type 1218
293#define invalid_class_def_raw_type 1219
294#define invalid_double_starred_kvpairs_type 1220
295#define invalid_kvpair_type 1221
296#define _loop0_1_type 1222
297#define _loop0_2_type 1223
298#define _loop0_4_type 1224
299#define _gather_3_type 1225
300#define _loop0_6_type 1226
301#define _gather_5_type 1227
302#define _loop0_8_type 1228
303#define _gather_7_type 1229
304#define _loop0_10_type 1230
305#define _gather_9_type 1231
306#define _loop1_11_type 1232
307#define _loop0_13_type 1233
308#define _gather_12_type 1234
309#define _tmp_14_type 1235
310#define _tmp_15_type 1236
311#define _tmp_16_type 1237
312#define _tmp_17_type 1238
313#define _tmp_18_type 1239
314#define _tmp_19_type 1240
315#define _tmp_20_type 1241
316#define _tmp_21_type 1242
317#define _loop1_22_type 1243
318#define _tmp_23_type 1244
319#define _tmp_24_type 1245
320#define _loop0_26_type 1246
321#define _gather_25_type 1247
322#define _loop0_28_type 1248
323#define _gather_27_type 1249
324#define _tmp_29_type 1250
325#define _tmp_30_type 1251
326#define _loop0_31_type 1252
327#define _loop1_32_type 1253
328#define _loop0_34_type 1254
329#define _gather_33_type 1255
330#define _tmp_35_type 1256
331#define _loop0_37_type 1257
332#define _gather_36_type 1258
333#define _tmp_38_type 1259
334#define _loop0_40_type 1260
335#define _gather_39_type 1261
336#define _loop0_42_type 1262
337#define _gather_41_type 1263
338#define _loop0_44_type 1264
339#define _gather_43_type 1265
340#define _loop0_46_type 1266
341#define _gather_45_type 1267
342#define _tmp_47_type 1268
343#define _loop1_48_type 1269
344#define _tmp_49_type 1270
345#define _loop1_50_type 1271
346#define _loop0_52_type 1272
347#define _gather_51_type 1273
348#define _tmp_53_type 1274
349#define _tmp_54_type 1275
350#define _tmp_55_type 1276
351#define _tmp_56_type 1277
352#define _loop0_58_type 1278
353#define _gather_57_type 1279
354#define _loop0_60_type 1280
355#define _gather_59_type 1281
356#define _tmp_61_type 1282
357#define _loop0_63_type 1283
358#define _gather_62_type 1284
359#define _loop0_65_type 1285
360#define _gather_64_type 1286
361#define _tmp_66_type 1287
362#define _tmp_67_type 1288
363#define _tmp_68_type 1289
364#define _tmp_69_type 1290
365#define _loop0_70_type 1291
366#define _loop0_71_type 1292
367#define _loop0_72_type 1293
368#define _loop1_73_type 1294
369#define _loop0_74_type 1295
370#define _loop1_75_type 1296
371#define _loop1_76_type 1297
372#define _loop1_77_type 1298
373#define _loop0_78_type 1299
374#define _loop1_79_type 1300
375#define _loop0_80_type 1301
376#define _loop1_81_type 1302
377#define _loop0_82_type 1303
378#define _loop1_83_type 1304
379#define _loop1_84_type 1305
380#define _tmp_85_type 1306
381#define _loop1_86_type 1307
382#define _loop0_88_type 1308
383#define _gather_87_type 1309
384#define _loop1_89_type 1310
385#define _loop0_90_type 1311
386#define _loop0_91_type 1312
387#define _loop0_92_type 1313
388#define _loop1_93_type 1314
389#define _loop0_94_type 1315
390#define _loop1_95_type 1316
391#define _loop1_96_type 1317
392#define _loop1_97_type 1318
393#define _loop0_98_type 1319
394#define _loop1_99_type 1320
395#define _loop0_100_type 1321
396#define _loop1_101_type 1322
397#define _loop0_102_type 1323
398#define _loop1_103_type 1324
399#define _loop1_104_type 1325
400#define _loop1_105_type 1326
401#define _loop1_106_type 1327
402#define _tmp_107_type 1328
403#define _loop0_109_type 1329
404#define _gather_108_type 1330
405#define _tmp_110_type 1331
406#define _tmp_111_type 1332
407#define _tmp_112_type 1333
408#define _tmp_113_type 1334
409#define _loop1_114_type 1335
410#define _tmp_115_type 1336
411#define _tmp_116_type 1337
412#define _tmp_117_type 1338
413#define _loop0_119_type 1339
414#define _gather_118_type 1340
415#define _loop1_120_type 1341
416#define _loop0_121_type 1342
417#define _loop0_122_type 1343
418#define _loop0_124_type 1344
419#define _gather_123_type 1345
420#define _tmp_125_type 1346
421#define _loop0_127_type 1347
422#define _gather_126_type 1348
423#define _loop0_129_type 1349
424#define _gather_128_type 1350
425#define _loop0_131_type 1351
426#define _gather_130_type 1352
427#define _loop0_133_type 1353
428#define _gather_132_type 1354
429#define _loop0_134_type 1355
430#define _loop0_136_type 1356
431#define _gather_135_type 1357
432#define _loop1_137_type 1358
433#define _tmp_138_type 1359
434#define _loop0_140_type 1360
435#define _gather_139_type 1361
436#define _tmp_141_type 1362
437#define _tmp_142_type 1363
438#define _tmp_143_type 1364
439#define _tmp_144_type 1365
440#define _tmp_145_type 1366
441#define _tmp_146_type 1367
442#define _loop0_147_type 1368
443#define _loop0_148_type 1369
444#define _loop0_149_type 1370
445#define _tmp_150_type 1371
446#define _tmp_151_type 1372
447#define _tmp_152_type 1373
448#define _tmp_153_type 1374
449#define _loop0_154_type 1375
450#define _loop1_155_type 1376
451#define _loop0_156_type 1377
452#define _loop1_157_type 1378
453#define _tmp_158_type 1379
454#define _tmp_159_type 1380
455#define _tmp_160_type 1381
456#define _loop0_162_type 1382
457#define _gather_161_type 1383
458#define _loop0_164_type 1384
459#define _gather_163_type 1385
460#define _loop0_166_type 1386
461#define _gather_165_type 1387
462#define _loop0_168_type 1388
463#define _gather_167_type 1389
464#define _tmp_169_type 1390
465#define _tmp_170_type 1391
466#define _tmp_171_type 1392
467#define _tmp_172_type 1393
468#define _tmp_173_type 1394
469#define _tmp_174_type 1395
470#define _tmp_175_type 1396
471#define _loop0_177_type 1397
472#define _gather_176_type 1398
473#define _tmp_178_type 1399
474#define _tmp_179_type 1400
475#define _tmp_180_type 1401
476#define _tmp_181_type 1402
477#define _tmp_182_type 1403
478#define _tmp_183_type 1404
479#define _tmp_184_type 1405
480#define _tmp_185_type 1406
481#define _tmp_186_type 1407
482#define _tmp_187_type 1408
483#define _tmp_188_type 1409
484#define _tmp_189_type 1410
485#define _tmp_190_type 1411
486#define _tmp_191_type 1412
487#define _tmp_192_type 1413
488#define _tmp_193_type 1414
489#define _tmp_194_type 1415
490#define _tmp_195_type 1416
491#define _tmp_196_type 1417
492#define _tmp_197_type 1418
493#define _tmp_198_type 1419
494#define _tmp_199_type 1420
495#define _tmp_200_type 1421
496#define _tmp_201_type 1422
497#define _tmp_202_type 1423
498#define _tmp_203_type 1424
499#define _tmp_204_type 1425
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100500
501static mod_ty file_rule(Parser *p);
502static mod_ty interactive_rule(Parser *p);
503static mod_ty eval_rule(Parser *p);
504static mod_ty func_type_rule(Parser *p);
505static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100506static asdl_expr_seq* type_expressions_rule(Parser *p);
507static asdl_stmt_seq* statements_rule(Parser *p);
508static asdl_stmt_seq* statement_rule(Parser *p);
509static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000510static asdl_stmt_seq* simple_stmts_rule(Parser *p);
511static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100512static stmt_ty compound_stmt_rule(Parser *p);
513static stmt_ty assignment_rule(Parser *p);
514static AugOperator* augassign_rule(Parser *p);
515static stmt_ty global_stmt_rule(Parser *p);
516static stmt_ty nonlocal_stmt_rule(Parser *p);
517static stmt_ty yield_stmt_rule(Parser *p);
518static stmt_ty assert_stmt_rule(Parser *p);
519static stmt_ty del_stmt_rule(Parser *p);
520static stmt_ty import_stmt_rule(Parser *p);
521static stmt_ty import_name_rule(Parser *p);
522static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100523static asdl_alias_seq* import_from_targets_rule(Parser *p);
524static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100525static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static alias_ty dotted_as_name_rule(Parser *p);
528static expr_ty dotted_name_rule(Parser *p);
529static stmt_ty if_stmt_rule(Parser *p);
530static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100531static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100532static stmt_ty while_stmt_rule(Parser *p);
533static stmt_ty for_stmt_rule(Parser *p);
534static stmt_ty with_stmt_rule(Parser *p);
535static withitem_ty with_item_rule(Parser *p);
536static stmt_ty try_stmt_rule(Parser *p);
537static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100538static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800539static stmt_ty match_stmt_rule(Parser *p);
540static expr_ty subject_expr_rule(Parser *p);
541static match_case_ty case_block_rule(Parser *p);
542static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000543static pattern_ty patterns_rule(Parser *p);
544static pattern_ty pattern_rule(Parser *p);
545static pattern_ty as_pattern_rule(Parser *p);
546static pattern_ty or_pattern_rule(Parser *p);
547static pattern_ty closed_pattern_rule(Parser *p);
548static pattern_ty literal_pattern_rule(Parser *p);
549static expr_ty literal_expr_rule(Parser *p);
550static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800551static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700552static expr_ty signed_real_number_rule(Parser *p);
553static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000554static expr_ty imaginary_number_rule(Parser *p);
555static pattern_ty capture_pattern_rule(Parser *p);
556static expr_ty pattern_capture_target_rule(Parser *p);
557static pattern_ty wildcard_pattern_rule(Parser *p);
558static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800559static expr_ty attr_rule(Parser *p);
560static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000561static pattern_ty group_pattern_rule(Parser *p);
562static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800563static asdl_seq* open_sequence_pattern_rule(Parser *p);
564static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000565static pattern_ty maybe_star_pattern_rule(Parser *p);
566static pattern_ty star_pattern_rule(Parser *p);
567static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800568static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000569static KeyPatternPair* key_value_pattern_rule(Parser *p);
570static expr_ty double_star_pattern_rule(Parser *p);
571static pattern_ty class_pattern_rule(Parser *p);
572static asdl_pattern_seq* positional_patterns_rule(Parser *p);
573static asdl_seq* keyword_patterns_rule(Parser *p);
574static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100575static stmt_ty return_stmt_rule(Parser *p);
576static stmt_ty raise_stmt_rule(Parser *p);
577static stmt_ty function_def_rule(Parser *p);
578static stmt_ty function_def_raw_rule(Parser *p);
579static Token* func_type_comment_rule(Parser *p);
580static arguments_ty params_rule(Parser *p);
581static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100582static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100583static SlashWithDefault* slash_with_default_rule(Parser *p);
584static StarEtc* star_etc_rule(Parser *p);
585static arg_ty kwds_rule(Parser *p);
586static arg_ty param_no_default_rule(Parser *p);
587static NameDefaultPair* param_with_default_rule(Parser *p);
588static NameDefaultPair* param_maybe_default_rule(Parser *p);
589static arg_ty param_rule(Parser *p);
590static expr_ty annotation_rule(Parser *p);
591static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100592static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100593static stmt_ty class_def_rule(Parser *p);
594static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100595static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100596static expr_ty star_expressions_rule(Parser *p);
597static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100598static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100599static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700600static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100601static expr_ty named_expression_rule(Parser *p);
602static expr_ty annotated_rhs_rule(Parser *p);
603static expr_ty expressions_rule(Parser *p);
604static expr_ty expression_rule(Parser *p);
605static expr_ty lambdef_rule(Parser *p);
606static arguments_ty lambda_params_rule(Parser *p);
607static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100608static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100609static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
610static StarEtc* lambda_star_etc_rule(Parser *p);
611static arg_ty lambda_kwds_rule(Parser *p);
612static arg_ty lambda_param_no_default_rule(Parser *p);
613static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
614static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
615static arg_ty lambda_param_rule(Parser *p);
616static expr_ty disjunction_rule(Parser *p);
617static expr_ty conjunction_rule(Parser *p);
618static expr_ty inversion_rule(Parser *p);
619static expr_ty comparison_rule(Parser *p);
620static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
621static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
622static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
623static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
624static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
625static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
626static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
627static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
628static CmpopExprPair* in_bitwise_or_rule(Parser *p);
629static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
630static CmpopExprPair* is_bitwise_or_rule(Parser *p);
631static expr_ty bitwise_or_rule(Parser *p);
632static expr_ty bitwise_xor_rule(Parser *p);
633static expr_ty bitwise_and_rule(Parser *p);
634static expr_ty shift_expr_rule(Parser *p);
635static expr_ty sum_rule(Parser *p);
636static expr_ty term_rule(Parser *p);
637static expr_ty factor_rule(Parser *p);
638static expr_ty power_rule(Parser *p);
639static expr_ty await_primary_rule(Parser *p);
640static expr_ty primary_rule(Parser *p);
641static expr_ty slices_rule(Parser *p);
642static expr_ty slice_rule(Parser *p);
643static expr_ty atom_rule(Parser *p);
644static expr_ty strings_rule(Parser *p);
645static expr_ty list_rule(Parser *p);
646static expr_ty listcomp_rule(Parser *p);
647static expr_ty tuple_rule(Parser *p);
648static expr_ty group_rule(Parser *p);
649static expr_ty genexp_rule(Parser *p);
650static expr_ty set_rule(Parser *p);
651static expr_ty setcomp_rule(Parser *p);
652static expr_ty dict_rule(Parser *p);
653static expr_ty dictcomp_rule(Parser *p);
654static asdl_seq* double_starred_kvpairs_rule(Parser *p);
655static KeyValuePair* double_starred_kvpair_rule(Parser *p);
656static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100657static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100658static comprehension_ty for_if_clause_rule(Parser *p);
659static expr_ty yield_expr_rule(Parser *p);
660static expr_ty arguments_rule(Parser *p);
661static expr_ty args_rule(Parser *p);
662static asdl_seq* kwargs_rule(Parser *p);
663static expr_ty starred_expression_rule(Parser *p);
664static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
665static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
666static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200667static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
668static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100669static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200670static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static expr_ty star_atom_rule(Parser *p);
672static expr_ty single_target_rule(Parser *p);
673static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100674static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100675static expr_ty del_target_rule(Parser *p);
676static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100677static expr_ty t_primary_rule(Parser *p);
678static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200679static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100680static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700681static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100682static void *invalid_legacy_expression_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100683static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100684static void *invalid_named_expression_rule(Parser *p);
685static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300686static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300687static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100688static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200689static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100690static void *invalid_comprehension_rule(Parser *p);
691static void *invalid_dict_comprehension_rule(Parser *p);
692static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200693static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100694static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200695static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_star_etc_rule(Parser *p);
697static void *invalid_lambda_star_etc_rule(Parser *p);
698static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300699static void *invalid_with_item_rule(Parser *p);
700static void *invalid_for_target_rule(Parser *p);
701static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100702static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000703static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100704static void *invalid_with_stmt_indent_rule(Parser *p);
705static void *invalid_try_stmt_rule(Parser *p);
706static void *invalid_except_stmt_rule(Parser *p);
707static void *invalid_finally_stmt_rule(Parser *p);
708static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000709static void *invalid_match_stmt_rule(Parser *p);
710static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100711static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700712static void *invalid_class_pattern_rule(Parser *p);
713static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100714static void *invalid_if_stmt_rule(Parser *p);
715static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100716static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100717static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100718static void *invalid_for_stmt_rule(Parser *p);
719static void *invalid_def_raw_rule(Parser *p);
720static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100721static void *invalid_double_starred_kvpairs_rule(Parser *p);
722static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100723static asdl_seq *_loop0_1_rule(Parser *p);
724static asdl_seq *_loop0_2_rule(Parser *p);
725static asdl_seq *_loop0_4_rule(Parser *p);
726static asdl_seq *_gather_3_rule(Parser *p);
727static asdl_seq *_loop0_6_rule(Parser *p);
728static asdl_seq *_gather_5_rule(Parser *p);
729static asdl_seq *_loop0_8_rule(Parser *p);
730static asdl_seq *_gather_7_rule(Parser *p);
731static asdl_seq *_loop0_10_rule(Parser *p);
732static asdl_seq *_gather_9_rule(Parser *p);
733static asdl_seq *_loop1_11_rule(Parser *p);
734static asdl_seq *_loop0_13_rule(Parser *p);
735static asdl_seq *_gather_12_rule(Parser *p);
736static void *_tmp_14_rule(Parser *p);
737static void *_tmp_15_rule(Parser *p);
738static void *_tmp_16_rule(Parser *p);
739static void *_tmp_17_rule(Parser *p);
740static void *_tmp_18_rule(Parser *p);
741static void *_tmp_19_rule(Parser *p);
742static void *_tmp_20_rule(Parser *p);
743static void *_tmp_21_rule(Parser *p);
744static asdl_seq *_loop1_22_rule(Parser *p);
745static void *_tmp_23_rule(Parser *p);
746static void *_tmp_24_rule(Parser *p);
747static asdl_seq *_loop0_26_rule(Parser *p);
748static asdl_seq *_gather_25_rule(Parser *p);
749static asdl_seq *_loop0_28_rule(Parser *p);
750static asdl_seq *_gather_27_rule(Parser *p);
751static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300752static void *_tmp_30_rule(Parser *p);
753static asdl_seq *_loop0_31_rule(Parser *p);
754static asdl_seq *_loop1_32_rule(Parser *p);
755static asdl_seq *_loop0_34_rule(Parser *p);
756static asdl_seq *_gather_33_rule(Parser *p);
757static void *_tmp_35_rule(Parser *p);
758static asdl_seq *_loop0_37_rule(Parser *p);
759static asdl_seq *_gather_36_rule(Parser *p);
760static void *_tmp_38_rule(Parser *p);
761static asdl_seq *_loop0_40_rule(Parser *p);
762static asdl_seq *_gather_39_rule(Parser *p);
763static asdl_seq *_loop0_42_rule(Parser *p);
764static asdl_seq *_gather_41_rule(Parser *p);
765static asdl_seq *_loop0_44_rule(Parser *p);
766static asdl_seq *_gather_43_rule(Parser *p);
767static asdl_seq *_loop0_46_rule(Parser *p);
768static asdl_seq *_gather_45_rule(Parser *p);
769static void *_tmp_47_rule(Parser *p);
770static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100771static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800772static asdl_seq *_loop1_50_rule(Parser *p);
773static asdl_seq *_loop0_52_rule(Parser *p);
774static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300775static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800776static void *_tmp_54_rule(Parser *p);
777static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000778static void *_tmp_56_rule(Parser *p);
779static asdl_seq *_loop0_58_rule(Parser *p);
780static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800781static asdl_seq *_loop0_60_rule(Parser *p);
782static asdl_seq *_gather_59_rule(Parser *p);
783static void *_tmp_61_rule(Parser *p);
784static asdl_seq *_loop0_63_rule(Parser *p);
785static asdl_seq *_gather_62_rule(Parser *p);
786static asdl_seq *_loop0_65_rule(Parser *p);
787static asdl_seq *_gather_64_rule(Parser *p);
788static void *_tmp_66_rule(Parser *p);
789static void *_tmp_67_rule(Parser *p);
790static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300791static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800792static asdl_seq *_loop0_70_rule(Parser *p);
793static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000794static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000795static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300796static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800797static asdl_seq *_loop1_75_rule(Parser *p);
798static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000799static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300800static asdl_seq *_loop0_78_rule(Parser *p);
801static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800802static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100803static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000804static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300805static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800806static asdl_seq *_loop1_84_rule(Parser *p);
807static void *_tmp_85_rule(Parser *p);
808static asdl_seq *_loop1_86_rule(Parser *p);
809static asdl_seq *_loop0_88_rule(Parser *p);
810static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100811static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800812static asdl_seq *_loop0_90_rule(Parser *p);
813static asdl_seq *_loop0_91_rule(Parser *p);
814static asdl_seq *_loop0_92_rule(Parser *p);
815static asdl_seq *_loop1_93_rule(Parser *p);
816static asdl_seq *_loop0_94_rule(Parser *p);
817static asdl_seq *_loop1_95_rule(Parser *p);
818static asdl_seq *_loop1_96_rule(Parser *p);
819static asdl_seq *_loop1_97_rule(Parser *p);
820static asdl_seq *_loop0_98_rule(Parser *p);
821static asdl_seq *_loop1_99_rule(Parser *p);
822static asdl_seq *_loop0_100_rule(Parser *p);
823static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000824static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000825static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800826static asdl_seq *_loop1_104_rule(Parser *p);
827static asdl_seq *_loop1_105_rule(Parser *p);
828static asdl_seq *_loop1_106_rule(Parser *p);
829static void *_tmp_107_rule(Parser *p);
830static asdl_seq *_loop0_109_rule(Parser *p);
831static asdl_seq *_gather_108_rule(Parser *p);
832static void *_tmp_110_rule(Parser *p);
833static void *_tmp_111_rule(Parser *p);
834static void *_tmp_112_rule(Parser *p);
835static void *_tmp_113_rule(Parser *p);
836static asdl_seq *_loop1_114_rule(Parser *p);
837static void *_tmp_115_rule(Parser *p);
838static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700839static void *_tmp_117_rule(Parser *p);
840static asdl_seq *_loop0_119_rule(Parser *p);
841static asdl_seq *_gather_118_rule(Parser *p);
842static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800843static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700844static asdl_seq *_loop0_122_rule(Parser *p);
845static asdl_seq *_loop0_124_rule(Parser *p);
846static asdl_seq *_gather_123_rule(Parser *p);
847static void *_tmp_125_rule(Parser *p);
848static asdl_seq *_loop0_127_rule(Parser *p);
849static asdl_seq *_gather_126_rule(Parser *p);
850static asdl_seq *_loop0_129_rule(Parser *p);
851static asdl_seq *_gather_128_rule(Parser *p);
852static asdl_seq *_loop0_131_rule(Parser *p);
853static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000854static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700855static asdl_seq *_gather_132_rule(Parser *p);
856static asdl_seq *_loop0_134_rule(Parser *p);
857static asdl_seq *_loop0_136_rule(Parser *p);
858static asdl_seq *_gather_135_rule(Parser *p);
859static asdl_seq *_loop1_137_rule(Parser *p);
860static void *_tmp_138_rule(Parser *p);
861static asdl_seq *_loop0_140_rule(Parser *p);
862static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700863static void *_tmp_141_rule(Parser *p);
864static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100865static void *_tmp_143_rule(Parser *p);
866static void *_tmp_144_rule(Parser *p);
867static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100868static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700869static asdl_seq *_loop0_147_rule(Parser *p);
870static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100871static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700872static void *_tmp_150_rule(Parser *p);
873static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100874static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100875static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700876static asdl_seq *_loop0_154_rule(Parser *p);
877static asdl_seq *_loop1_155_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700878static asdl_seq *_loop0_156_rule(Parser *p);
879static asdl_seq *_loop1_157_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700880static void *_tmp_158_rule(Parser *p);
881static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100882static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700883static asdl_seq *_loop0_162_rule(Parser *p);
884static asdl_seq *_gather_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700885static asdl_seq *_loop0_164_rule(Parser *p);
886static asdl_seq *_gather_163_rule(Parser *p);
887static asdl_seq *_loop0_166_rule(Parser *p);
888static asdl_seq *_gather_165_rule(Parser *p);
889static asdl_seq *_loop0_168_rule(Parser *p);
890static asdl_seq *_gather_167_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700891static void *_tmp_169_rule(Parser *p);
892static void *_tmp_170_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800893static void *_tmp_171_rule(Parser *p);
894static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100895static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700896static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700897static void *_tmp_175_rule(Parser *p);
898static asdl_seq *_loop0_177_rule(Parser *p);
899static asdl_seq *_gather_176_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700900static void *_tmp_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800901static void *_tmp_179_rule(Parser *p);
902static void *_tmp_180_rule(Parser *p);
903static void *_tmp_181_rule(Parser *p);
904static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100905static void *_tmp_183_rule(Parser *p);
906static void *_tmp_184_rule(Parser *p);
907static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100908static void *_tmp_186_rule(Parser *p);
909static void *_tmp_187_rule(Parser *p);
910static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100911static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100912static void *_tmp_190_rule(Parser *p);
913static void *_tmp_191_rule(Parser *p);
914static void *_tmp_192_rule(Parser *p);
915static void *_tmp_193_rule(Parser *p);
916static void *_tmp_194_rule(Parser *p);
917static void *_tmp_195_rule(Parser *p);
918static void *_tmp_196_rule(Parser *p);
919static void *_tmp_197_rule(Parser *p);
920static void *_tmp_198_rule(Parser *p);
921static void *_tmp_199_rule(Parser *p);
922static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100923static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700924static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700925static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700926static void *_tmp_204_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000927
928
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100929// file: statements? $
930static mod_ty
931file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000932{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100933 D(p->level++);
934 if (p->error_indicator) {
935 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936 return NULL;
937 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100938 mod_ty _res = NULL;
939 int _mark = p->mark;
940 { // statements? $
941 if (p->error_indicator) {
942 D(p->level--);
943 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100945 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
946 void *a;
947 Token * endmarker_var;
948 if (
949 (a = statements_rule(p), 1) // statements?
950 &&
951 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
952 )
953 {
954 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
955 _res = _PyPegen_make_module ( p , a );
956 if (_res == NULL && PyErr_Occurred()) {
957 p->error_indicator = 1;
958 D(p->level--);
959 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100961 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963 p->mark = _mark;
964 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 _res = NULL;
968 done:
969 D(p->level--);
970 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000971}
972
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100973// interactive: statement_newline
974static mod_ty
975interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000976{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100977 D(p->level++);
978 if (p->error_indicator) {
979 D(p->level--);
980 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000981 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100982 mod_ty _res = NULL;
983 int _mark = p->mark;
984 { // statement_newline
985 if (p->error_indicator) {
986 D(p->level--);
987 return NULL;
988 }
989 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100990 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100991 if (
992 (a = statement_newline_rule(p)) // statement_newline
993 )
994 {
995 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200996 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100997 if (_res == NULL && PyErr_Occurred()) {
998 p->error_indicator = 1;
999 D(p->level--);
1000 return NULL;
1001 }
1002 goto done;
1003 }
1004 p->mark = _mark;
1005 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1007 }
1008 _res = NULL;
1009 done:
1010 D(p->level--);
1011 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001012}
1013
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001014// eval: expressions NEWLINE* $
1015static mod_ty
1016eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001017{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001018 D(p->level++);
1019 if (p->error_indicator) {
1020 D(p->level--);
1021 return NULL;
1022 }
1023 mod_ty _res = NULL;
1024 int _mark = p->mark;
1025 { // expressions NEWLINE* $
1026 if (p->error_indicator) {
1027 D(p->level--);
1028 return NULL;
1029 }
1030 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1031 asdl_seq * _loop0_1_var;
1032 expr_ty a;
1033 Token * endmarker_var;
1034 if (
1035 (a = expressions_rule(p)) // expressions
1036 &&
1037 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1038 &&
1039 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1040 )
1041 {
1042 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001043 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001044 if (_res == NULL && PyErr_Occurred()) {
1045 p->error_indicator = 1;
1046 D(p->level--);
1047 return NULL;
1048 }
1049 goto done;
1050 }
1051 p->mark = _mark;
1052 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1054 }
1055 _res = NULL;
1056 done:
1057 D(p->level--);
1058 return _res;
1059}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001060
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001061// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1062static mod_ty
1063func_type_rule(Parser *p)
1064{
1065 D(p->level++);
1066 if (p->error_indicator) {
1067 D(p->level--);
1068 return NULL;
1069 }
1070 mod_ty _res = NULL;
1071 int _mark = p->mark;
1072 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1073 if (p->error_indicator) {
1074 D(p->level--);
1075 return NULL;
1076 }
1077 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1078 Token * _literal;
1079 Token * _literal_1;
1080 Token * _literal_2;
1081 asdl_seq * _loop0_2_var;
1082 void *a;
1083 expr_ty b;
1084 Token * endmarker_var;
1085 if (
1086 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1087 &&
1088 (a = type_expressions_rule(p), 1) // type_expressions?
1089 &&
1090 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1091 &&
1092 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1093 &&
1094 (b = expression_rule(p)) // expression
1095 &&
1096 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1097 &&
1098 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1099 )
1100 {
1101 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 +02001102 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001103 if (_res == NULL && PyErr_Occurred()) {
1104 p->error_indicator = 1;
1105 D(p->level--);
1106 return NULL;
1107 }
1108 goto done;
1109 }
1110 p->mark = _mark;
1111 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1113 }
1114 _res = NULL;
1115 done:
1116 D(p->level--);
1117 return _res;
1118}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001120// fstring: star_expressions
1121static expr_ty
1122fstring_rule(Parser *p)
1123{
1124 D(p->level++);
1125 if (p->error_indicator) {
1126 D(p->level--);
1127 return NULL;
1128 }
1129 expr_ty _res = NULL;
1130 int _mark = p->mark;
1131 { // star_expressions
1132 if (p->error_indicator) {
1133 D(p->level--);
1134 return NULL;
1135 }
1136 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1137 expr_ty star_expressions_var;
1138 if (
1139 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1140 )
1141 {
1142 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1143 _res = star_expressions_var;
1144 goto done;
1145 }
1146 p->mark = _mark;
1147 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1149 }
1150 _res = NULL;
1151 done:
1152 D(p->level--);
1153 return _res;
1154}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001155
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001156// type_expressions:
1157// | ','.expression+ ',' '*' expression ',' '**' expression
1158// | ','.expression+ ',' '*' expression
1159// | ','.expression+ ',' '**' expression
1160// | '*' expression ',' '**' expression
1161// | '*' expression
1162// | '**' expression
1163// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001164static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001165type_expressions_rule(Parser *p)
1166{
1167 D(p->level++);
1168 if (p->error_indicator) {
1169 D(p->level--);
1170 return NULL;
1171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001172 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001173 int _mark = p->mark;
1174 { // ','.expression+ ',' '*' expression ',' '**' expression
1175 if (p->error_indicator) {
1176 D(p->level--);
1177 return NULL;
1178 }
1179 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1180 Token * _literal;
1181 Token * _literal_1;
1182 Token * _literal_2;
1183 Token * _literal_3;
1184 asdl_seq * a;
1185 expr_ty b;
1186 expr_ty c;
1187 if (
1188 (a = _gather_3_rule(p)) // ','.expression+
1189 &&
1190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1191 &&
1192 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1193 &&
1194 (b = expression_rule(p)) // expression
1195 &&
1196 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1197 &&
1198 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1199 &&
1200 (c = expression_rule(p)) // expression
1201 )
1202 {
1203 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 +03001204 _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 +01001205 if (_res == NULL && PyErr_Occurred()) {
1206 p->error_indicator = 1;
1207 D(p->level--);
1208 return NULL;
1209 }
1210 goto done;
1211 }
1212 p->mark = _mark;
1213 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1215 }
1216 { // ','.expression+ ',' '*' expression
1217 if (p->error_indicator) {
1218 D(p->level--);
1219 return NULL;
1220 }
1221 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1222 Token * _literal;
1223 Token * _literal_1;
1224 asdl_seq * a;
1225 expr_ty b;
1226 if (
1227 (a = _gather_5_rule(p)) // ','.expression+
1228 &&
1229 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1230 &&
1231 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1232 &&
1233 (b = expression_rule(p)) // expression
1234 )
1235 {
1236 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 +01001237 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001238 if (_res == NULL && PyErr_Occurred()) {
1239 p->error_indicator = 1;
1240 D(p->level--);
1241 return NULL;
1242 }
1243 goto done;
1244 }
1245 p->mark = _mark;
1246 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1248 }
1249 { // ','.expression+ ',' '**' expression
1250 if (p->error_indicator) {
1251 D(p->level--);
1252 return NULL;
1253 }
1254 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1255 Token * _literal;
1256 Token * _literal_1;
1257 asdl_seq * a;
1258 expr_ty b;
1259 if (
1260 (a = _gather_7_rule(p)) // ','.expression+
1261 &&
1262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1263 &&
1264 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1265 &&
1266 (b = expression_rule(p)) // expression
1267 )
1268 {
1269 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 +01001270 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001271 if (_res == NULL && PyErr_Occurred()) {
1272 p->error_indicator = 1;
1273 D(p->level--);
1274 return NULL;
1275 }
1276 goto done;
1277 }
1278 p->mark = _mark;
1279 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1281 }
1282 { // '*' expression ',' '**' expression
1283 if (p->error_indicator) {
1284 D(p->level--);
1285 return NULL;
1286 }
1287 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1288 Token * _literal;
1289 Token * _literal_1;
1290 Token * _literal_2;
1291 expr_ty a;
1292 expr_ty b;
1293 if (
1294 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1295 &&
1296 (a = expression_rule(p)) // expression
1297 &&
1298 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1299 &&
1300 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1301 &&
1302 (b = expression_rule(p)) // expression
1303 )
1304 {
1305 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 +03001306 _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 +01001307 if (_res == NULL && PyErr_Occurred()) {
1308 p->error_indicator = 1;
1309 D(p->level--);
1310 return NULL;
1311 }
1312 goto done;
1313 }
1314 p->mark = _mark;
1315 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1317 }
1318 { // '*' expression
1319 if (p->error_indicator) {
1320 D(p->level--);
1321 return NULL;
1322 }
1323 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1324 Token * _literal;
1325 expr_ty a;
1326 if (
1327 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1328 &&
1329 (a = expression_rule(p)) // expression
1330 )
1331 {
1332 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001333 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001334 if (_res == NULL && PyErr_Occurred()) {
1335 p->error_indicator = 1;
1336 D(p->level--);
1337 return NULL;
1338 }
1339 goto done;
1340 }
1341 p->mark = _mark;
1342 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1344 }
1345 { // '**' expression
1346 if (p->error_indicator) {
1347 D(p->level--);
1348 return NULL;
1349 }
1350 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1351 Token * _literal;
1352 expr_ty a;
1353 if (
1354 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1355 &&
1356 (a = expression_rule(p)) // expression
1357 )
1358 {
1359 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001360 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001361 if (_res == NULL && PyErr_Occurred()) {
1362 p->error_indicator = 1;
1363 D(p->level--);
1364 return NULL;
1365 }
1366 goto done;
1367 }
1368 p->mark = _mark;
1369 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1371 }
1372 { // ','.expression+
1373 if (p->error_indicator) {
1374 D(p->level--);
1375 return NULL;
1376 }
1377 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001378 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001379 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001380 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001381 )
1382 {
1383 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001384 _res = a;
1385 if (_res == NULL && PyErr_Occurred()) {
1386 p->error_indicator = 1;
1387 D(p->level--);
1388 return NULL;
1389 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001390 goto done;
1391 }
1392 p->mark = _mark;
1393 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1395 }
1396 _res = NULL;
1397 done:
1398 D(p->level--);
1399 return _res;
1400}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001401
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001403static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404statements_rule(Parser *p)
1405{
1406 D(p->level++);
1407 if (p->error_indicator) {
1408 D(p->level--);
1409 return NULL;
1410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001411 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001412 int _mark = p->mark;
1413 { // statement+
1414 if (p->error_indicator) {
1415 D(p->level--);
1416 return NULL;
1417 }
1418 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1419 asdl_seq * a;
1420 if (
1421 (a = _loop1_11_rule(p)) // statement+
1422 )
1423 {
1424 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001425 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001426 if (_res == NULL && PyErr_Occurred()) {
1427 p->error_indicator = 1;
1428 D(p->level--);
1429 return NULL;
1430 }
1431 goto done;
1432 }
1433 p->mark = _mark;
1434 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1436 }
1437 _res = NULL;
1438 done:
1439 D(p->level--);
1440 return _res;
1441}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001442
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001443// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001444static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445statement_rule(Parser *p)
1446{
1447 D(p->level++);
1448 if (p->error_indicator) {
1449 D(p->level--);
1450 return NULL;
1451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001452 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001453 int _mark = p->mark;
1454 { // compound_stmt
1455 if (p->error_indicator) {
1456 D(p->level--);
1457 return NULL;
1458 }
1459 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1460 stmt_ty a;
1461 if (
1462 (a = compound_stmt_rule(p)) // compound_stmt
1463 )
1464 {
1465 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001466 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001467 if (_res == NULL && PyErr_Occurred()) {
1468 p->error_indicator = 1;
1469 D(p->level--);
1470 return NULL;
1471 }
1472 goto done;
1473 }
1474 p->mark = _mark;
1475 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1477 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 if (p->error_indicator) {
1480 D(p->level--);
1481 return NULL;
1482 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001483 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001484 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 )
1488 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001489 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001490 _res = a;
1491 if (_res == NULL && PyErr_Occurred()) {
1492 p->error_indicator = 1;
1493 D(p->level--);
1494 return NULL;
1495 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496 goto done;
1497 }
1498 p->mark = _mark;
1499 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001501 }
1502 _res = NULL;
1503 done:
1504 D(p->level--);
1505 return _res;
1506}
1507
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001508// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001509static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510statement_newline_rule(Parser *p)
1511{
1512 D(p->level++);
1513 if (p->error_indicator) {
1514 D(p->level--);
1515 return NULL;
1516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001517 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001518 int _mark = p->mark;
1519 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1520 p->error_indicator = 1;
1521 D(p->level--);
1522 return NULL;
1523 }
1524 int _start_lineno = p->tokens[_mark]->lineno;
1525 UNUSED(_start_lineno); // Only used by EXTRA macro
1526 int _start_col_offset = p->tokens[_mark]->col_offset;
1527 UNUSED(_start_col_offset); // Only used by EXTRA macro
1528 { // compound_stmt NEWLINE
1529 if (p->error_indicator) {
1530 D(p->level--);
1531 return NULL;
1532 }
1533 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1534 stmt_ty a;
1535 Token * newline_var;
1536 if (
1537 (a = compound_stmt_rule(p)) // compound_stmt
1538 &&
1539 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1540 )
1541 {
1542 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 +01001543 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544 if (_res == NULL && PyErr_Occurred()) {
1545 p->error_indicator = 1;
1546 D(p->level--);
1547 return NULL;
1548 }
1549 goto done;
1550 }
1551 p->mark = _mark;
1552 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1554 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001555 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001556 if (p->error_indicator) {
1557 D(p->level--);
1558 return NULL;
1559 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001560 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1561 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001563 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001564 )
1565 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001566 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1567 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001568 goto done;
1569 }
1570 p->mark = _mark;
1571 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001573 }
1574 { // NEWLINE
1575 if (p->error_indicator) {
1576 D(p->level--);
1577 return NULL;
1578 }
1579 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1580 Token * newline_var;
1581 if (
1582 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1583 )
1584 {
1585 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1586 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1587 if (_token == NULL) {
1588 D(p->level--);
1589 return NULL;
1590 }
1591 int _end_lineno = _token->end_lineno;
1592 UNUSED(_end_lineno); // Only used by EXTRA macro
1593 int _end_col_offset = _token->end_col_offset;
1594 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001595 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001596 if (_res == NULL && PyErr_Occurred()) {
1597 p->error_indicator = 1;
1598 D(p->level--);
1599 return NULL;
1600 }
1601 goto done;
1602 }
1603 p->mark = _mark;
1604 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1606 }
1607 { // $
1608 if (p->error_indicator) {
1609 D(p->level--);
1610 return NULL;
1611 }
1612 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1613 Token * endmarker_var;
1614 if (
1615 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1616 )
1617 {
1618 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1619 _res = _PyPegen_interactive_exit ( p );
1620 if (_res == NULL && PyErr_Occurred()) {
1621 p->error_indicator = 1;
1622 D(p->level--);
1623 return NULL;
1624 }
1625 goto done;
1626 }
1627 p->mark = _mark;
1628 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1630 }
1631 _res = NULL;
1632 done:
1633 D(p->level--);
1634 return _res;
1635}
1636
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001637// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001638static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001640{
1641 D(p->level++);
1642 if (p->error_indicator) {
1643 D(p->level--);
1644 return NULL;
1645 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001646 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001647 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001648 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001649 if (p->error_indicator) {
1650 D(p->level--);
1651 return NULL;
1652 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001653 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 +01001654 stmt_ty a;
1655 Token * newline_var;
1656 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001657 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658 &&
1659 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1660 &&
1661 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1662 )
1663 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001664 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 +01001665 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001666 if (_res == NULL && PyErr_Occurred()) {
1667 p->error_indicator = 1;
1668 D(p->level--);
1669 return NULL;
1670 }
1671 goto done;
1672 }
1673 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001677 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 if (p->error_indicator) {
1679 D(p->level--);
1680 return NULL;
1681 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001682 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 +01001683 void *_opt_var;
1684 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001685 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001686 Token * newline_var;
1687 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001688 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001689 &&
1690 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1691 &&
1692 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1693 )
1694 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 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 +01001696 _res = a;
1697 if (_res == NULL && PyErr_Occurred()) {
1698 p->error_indicator = 1;
1699 D(p->level--);
1700 return NULL;
1701 }
1702 goto done;
1703 }
1704 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001705 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001707 }
1708 _res = NULL;
1709 done:
1710 D(p->level--);
1711 return _res;
1712}
1713
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001714// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001715// | assignment
1716// | star_expressions
1717// | &'return' return_stmt
1718// | &('import' | 'from') import_stmt
1719// | &'raise' raise_stmt
1720// | 'pass'
1721// | &'del' del_stmt
1722// | &'yield' yield_stmt
1723// | &'assert' assert_stmt
1724// | 'break'
1725// | 'continue'
1726// | &'global' global_stmt
1727// | &'nonlocal' nonlocal_stmt
1728static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001730{
1731 D(p->level++);
1732 if (p->error_indicator) {
1733 D(p->level--);
1734 return NULL;
1735 }
1736 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001737 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001738 D(p->level--);
1739 return _res;
1740 }
1741 int _mark = p->mark;
1742 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1743 p->error_indicator = 1;
1744 D(p->level--);
1745 return NULL;
1746 }
1747 int _start_lineno = p->tokens[_mark]->lineno;
1748 UNUSED(_start_lineno); // Only used by EXTRA macro
1749 int _start_col_offset = p->tokens[_mark]->col_offset;
1750 UNUSED(_start_col_offset); // Only used by EXTRA macro
1751 { // assignment
1752 if (p->error_indicator) {
1753 D(p->level--);
1754 return NULL;
1755 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001756 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001757 stmt_ty assignment_var;
1758 if (
1759 (assignment_var = assignment_rule(p)) // assignment
1760 )
1761 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001762 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001763 _res = assignment_var;
1764 goto done;
1765 }
1766 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1769 }
1770 { // star_expressions
1771 if (p->error_indicator) {
1772 D(p->level--);
1773 return NULL;
1774 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001775 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001776 expr_ty e;
1777 if (
1778 (e = star_expressions_rule(p)) // star_expressions
1779 )
1780 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001781 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 +01001782 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1783 if (_token == NULL) {
1784 D(p->level--);
1785 return NULL;
1786 }
1787 int _end_lineno = _token->end_lineno;
1788 UNUSED(_end_lineno); // Only used by EXTRA macro
1789 int _end_col_offset = _token->end_col_offset;
1790 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001791 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001792 if (_res == NULL && PyErr_Occurred()) {
1793 p->error_indicator = 1;
1794 D(p->level--);
1795 return NULL;
1796 }
1797 goto done;
1798 }
1799 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001800 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1802 }
1803 { // &'return' return_stmt
1804 if (p->error_indicator) {
1805 D(p->level--);
1806 return NULL;
1807 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 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 +01001809 stmt_ty return_stmt_var;
1810 if (
1811 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1812 &&
1813 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1814 )
1815 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001816 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 +01001817 _res = return_stmt_var;
1818 goto done;
1819 }
1820 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001821 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1823 }
1824 { // &('import' | 'from') import_stmt
1825 if (p->error_indicator) {
1826 D(p->level--);
1827 return NULL;
1828 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 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 +01001830 stmt_ty import_stmt_var;
1831 if (
1832 _PyPegen_lookahead(1, _tmp_14_rule, p)
1833 &&
1834 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1835 )
1836 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001837 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 +01001838 _res = import_stmt_var;
1839 goto done;
1840 }
1841 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1844 }
1845 { // &'raise' raise_stmt
1846 if (p->error_indicator) {
1847 D(p->level--);
1848 return NULL;
1849 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 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 +01001851 stmt_ty raise_stmt_var;
1852 if (
1853 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1854 &&
1855 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1856 )
1857 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001858 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 +01001859 _res = raise_stmt_var;
1860 goto done;
1861 }
1862 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1865 }
1866 { // 'pass'
1867 if (p->error_indicator) {
1868 D(p->level--);
1869 return NULL;
1870 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001871 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001872 Token * _keyword;
1873 if (
1874 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1875 )
1876 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001877 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1879 if (_token == NULL) {
1880 D(p->level--);
1881 return NULL;
1882 }
1883 int _end_lineno = _token->end_lineno;
1884 UNUSED(_end_lineno); // Only used by EXTRA macro
1885 int _end_col_offset = _token->end_col_offset;
1886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001887 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001888 if (_res == NULL && PyErr_Occurred()) {
1889 p->error_indicator = 1;
1890 D(p->level--);
1891 return NULL;
1892 }
1893 goto done;
1894 }
1895 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001896 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1898 }
1899 { // &'del' del_stmt
1900 if (p->error_indicator) {
1901 D(p->level--);
1902 return NULL;
1903 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001904 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 +01001905 stmt_ty del_stmt_var;
1906 if (
1907 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1908 &&
1909 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1910 )
1911 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001912 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 +01001913 _res = del_stmt_var;
1914 goto done;
1915 }
1916 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001917 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1919 }
1920 { // &'yield' yield_stmt
1921 if (p->error_indicator) {
1922 D(p->level--);
1923 return NULL;
1924 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001925 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 +01001926 stmt_ty yield_stmt_var;
1927 if (
1928 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1929 &&
1930 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1931 )
1932 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001933 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 +01001934 _res = yield_stmt_var;
1935 goto done;
1936 }
1937 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001938 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1940 }
1941 { // &'assert' assert_stmt
1942 if (p->error_indicator) {
1943 D(p->level--);
1944 return NULL;
1945 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001946 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 +01001947 stmt_ty assert_stmt_var;
1948 if (
1949 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1950 &&
1951 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1952 )
1953 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001954 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 +01001955 _res = assert_stmt_var;
1956 goto done;
1957 }
1958 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1961 }
1962 { // 'break'
1963 if (p->error_indicator) {
1964 D(p->level--);
1965 return NULL;
1966 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001967 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001968 Token * _keyword;
1969 if (
1970 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1971 )
1972 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001973 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1975 if (_token == NULL) {
1976 D(p->level--);
1977 return NULL;
1978 }
1979 int _end_lineno = _token->end_lineno;
1980 UNUSED(_end_lineno); // Only used by EXTRA macro
1981 int _end_col_offset = _token->end_col_offset;
1982 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001983 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001984 if (_res == NULL && PyErr_Occurred()) {
1985 p->error_indicator = 1;
1986 D(p->level--);
1987 return NULL;
1988 }
1989 goto done;
1990 }
1991 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1994 }
1995 { // 'continue'
1996 if (p->error_indicator) {
1997 D(p->level--);
1998 return NULL;
1999 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002000 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002001 Token * _keyword;
2002 if (
2003 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2004 )
2005 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002006 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2008 if (_token == NULL) {
2009 D(p->level--);
2010 return NULL;
2011 }
2012 int _end_lineno = _token->end_lineno;
2013 UNUSED(_end_lineno); // Only used by EXTRA macro
2014 int _end_col_offset = _token->end_col_offset;
2015 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002016 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002017 if (_res == NULL && PyErr_Occurred()) {
2018 p->error_indicator = 1;
2019 D(p->level--);
2020 return NULL;
2021 }
2022 goto done;
2023 }
2024 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002025 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2027 }
2028 { // &'global' global_stmt
2029 if (p->error_indicator) {
2030 D(p->level--);
2031 return NULL;
2032 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002033 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 +01002034 stmt_ty global_stmt_var;
2035 if (
2036 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2037 &&
2038 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2039 )
2040 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002041 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 +01002042 _res = global_stmt_var;
2043 goto done;
2044 }
2045 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002046 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2048 }
2049 { // &'nonlocal' nonlocal_stmt
2050 if (p->error_indicator) {
2051 D(p->level--);
2052 return NULL;
2053 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002054 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 +01002055 stmt_ty nonlocal_stmt_var;
2056 if (
2057 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2058 &&
2059 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2060 )
2061 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002062 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 +01002063 _res = nonlocal_stmt_var;
2064 goto done;
2065 }
2066 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002067 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2069 }
2070 _res = NULL;
2071 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002072 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002073 D(p->level--);
2074 return _res;
2075}
2076
2077// compound_stmt:
2078// | &('def' | '@' | ASYNC) function_def
2079// | &'if' if_stmt
2080// | &('class' | '@') class_def
2081// | &('with' | ASYNC) with_stmt
2082// | &('for' | ASYNC) for_stmt
2083// | &'try' try_stmt
2084// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002085// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002086static stmt_ty
2087compound_stmt_rule(Parser *p)
2088{
2089 D(p->level++);
2090 if (p->error_indicator) {
2091 D(p->level--);
2092 return NULL;
2093 }
2094 stmt_ty _res = NULL;
2095 int _mark = p->mark;
2096 { // &('def' | '@' | ASYNC) function_def
2097 if (p->error_indicator) {
2098 D(p->level--);
2099 return NULL;
2100 }
2101 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2102 stmt_ty function_def_var;
2103 if (
2104 _PyPegen_lookahead(1, _tmp_15_rule, p)
2105 &&
2106 (function_def_var = function_def_rule(p)) // function_def
2107 )
2108 {
2109 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2110 _res = function_def_var;
2111 goto done;
2112 }
2113 p->mark = _mark;
2114 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2116 }
2117 { // &'if' if_stmt
2118 if (p->error_indicator) {
2119 D(p->level--);
2120 return NULL;
2121 }
2122 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2123 stmt_ty if_stmt_var;
2124 if (
2125 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2126 &&
2127 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2128 )
2129 {
2130 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2131 _res = if_stmt_var;
2132 goto done;
2133 }
2134 p->mark = _mark;
2135 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2137 }
2138 { // &('class' | '@') class_def
2139 if (p->error_indicator) {
2140 D(p->level--);
2141 return NULL;
2142 }
2143 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2144 stmt_ty class_def_var;
2145 if (
2146 _PyPegen_lookahead(1, _tmp_16_rule, p)
2147 &&
2148 (class_def_var = class_def_rule(p)) // class_def
2149 )
2150 {
2151 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2152 _res = class_def_var;
2153 goto done;
2154 }
2155 p->mark = _mark;
2156 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2158 }
2159 { // &('with' | ASYNC) with_stmt
2160 if (p->error_indicator) {
2161 D(p->level--);
2162 return NULL;
2163 }
2164 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2165 stmt_ty with_stmt_var;
2166 if (
2167 _PyPegen_lookahead(1, _tmp_17_rule, p)
2168 &&
2169 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2170 )
2171 {
2172 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2173 _res = with_stmt_var;
2174 goto done;
2175 }
2176 p->mark = _mark;
2177 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2179 }
2180 { // &('for' | ASYNC) for_stmt
2181 if (p->error_indicator) {
2182 D(p->level--);
2183 return NULL;
2184 }
2185 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2186 stmt_ty for_stmt_var;
2187 if (
2188 _PyPegen_lookahead(1, _tmp_18_rule, p)
2189 &&
2190 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2191 )
2192 {
2193 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2194 _res = for_stmt_var;
2195 goto done;
2196 }
2197 p->mark = _mark;
2198 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2200 }
2201 { // &'try' try_stmt
2202 if (p->error_indicator) {
2203 D(p->level--);
2204 return NULL;
2205 }
2206 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2207 stmt_ty try_stmt_var;
2208 if (
2209 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2210 &&
2211 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2212 )
2213 {
2214 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2215 _res = try_stmt_var;
2216 goto done;
2217 }
2218 p->mark = _mark;
2219 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2221 }
2222 { // &'while' while_stmt
2223 if (p->error_indicator) {
2224 D(p->level--);
2225 return NULL;
2226 }
2227 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2228 stmt_ty while_stmt_var;
2229 if (
2230 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2231 &&
2232 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2233 )
2234 {
2235 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2236 _res = while_stmt_var;
2237 goto done;
2238 }
2239 p->mark = _mark;
2240 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2242 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002243 { // match_stmt
2244 if (p->error_indicator) {
2245 D(p->level--);
2246 return NULL;
2247 }
2248 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2249 stmt_ty match_stmt_var;
2250 if (
2251 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2252 )
2253 {
2254 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2255 _res = match_stmt_var;
2256 goto done;
2257 }
2258 p->mark = _mark;
2259 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2261 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002262 _res = NULL;
2263 done:
2264 D(p->level--);
2265 return _res;
2266}
2267
2268// assignment:
2269// | NAME ':' expression ['=' annotated_rhs]
2270// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2271// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002272// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002273// | invalid_assignment
2274static stmt_ty
2275assignment_rule(Parser *p)
2276{
2277 D(p->level++);
2278 if (p->error_indicator) {
2279 D(p->level--);
2280 return NULL;
2281 }
2282 stmt_ty _res = NULL;
2283 int _mark = p->mark;
2284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2285 p->error_indicator = 1;
2286 D(p->level--);
2287 return NULL;
2288 }
2289 int _start_lineno = p->tokens[_mark]->lineno;
2290 UNUSED(_start_lineno); // Only used by EXTRA macro
2291 int _start_col_offset = p->tokens[_mark]->col_offset;
2292 UNUSED(_start_col_offset); // Only used by EXTRA macro
2293 { // NAME ':' expression ['=' annotated_rhs]
2294 if (p->error_indicator) {
2295 D(p->level--);
2296 return NULL;
2297 }
2298 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2299 Token * _literal;
2300 expr_ty a;
2301 expr_ty b;
2302 void *c;
2303 if (
2304 (a = _PyPegen_name_token(p)) // NAME
2305 &&
2306 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2307 &&
2308 (b = expression_rule(p)) // expression
2309 &&
2310 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2311 )
2312 {
2313 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2314 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2315 if (_token == NULL) {
2316 D(p->level--);
2317 return NULL;
2318 }
2319 int _end_lineno = _token->end_lineno;
2320 UNUSED(_end_lineno); // Only used by EXTRA macro
2321 int _end_col_offset = _token->end_col_offset;
2322 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002323 _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 +01002324 if (_res == NULL && PyErr_Occurred()) {
2325 p->error_indicator = 1;
2326 D(p->level--);
2327 return NULL;
2328 }
2329 goto done;
2330 }
2331 p->mark = _mark;
2332 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2334 }
2335 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2336 if (p->error_indicator) {
2337 D(p->level--);
2338 return NULL;
2339 }
2340 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2341 Token * _literal;
2342 void *a;
2343 expr_ty b;
2344 void *c;
2345 if (
2346 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2347 &&
2348 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2349 &&
2350 (b = expression_rule(p)) // expression
2351 &&
2352 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2353 )
2354 {
2355 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2357 if (_token == NULL) {
2358 D(p->level--);
2359 return NULL;
2360 }
2361 int _end_lineno = _token->end_lineno;
2362 UNUSED(_end_lineno); // Only used by EXTRA macro
2363 int _end_col_offset = _token->end_col_offset;
2364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002365 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002366 if (_res == NULL && PyErr_Occurred()) {
2367 p->error_indicator = 1;
2368 D(p->level--);
2369 return NULL;
2370 }
2371 goto done;
2372 }
2373 p->mark = _mark;
2374 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2376 }
2377 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2378 if (p->error_indicator) {
2379 D(p->level--);
2380 return NULL;
2381 }
2382 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 +01002383 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002384 void *b;
2385 void *tc;
2386 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002387 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002388 &&
2389 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2390 &&
2391 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2392 &&
2393 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2394 )
2395 {
2396 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2397 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2398 if (_token == NULL) {
2399 D(p->level--);
2400 return NULL;
2401 }
2402 int _end_lineno = _token->end_lineno;
2403 UNUSED(_end_lineno); // Only used by EXTRA macro
2404 int _end_col_offset = _token->end_col_offset;
2405 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002406 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002407 if (_res == NULL && PyErr_Occurred()) {
2408 p->error_indicator = 1;
2409 D(p->level--);
2410 return NULL;
2411 }
2412 goto done;
2413 }
2414 p->mark = _mark;
2415 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2417 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002418 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002419 if (p->error_indicator) {
2420 D(p->level--);
2421 return NULL;
2422 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002423 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2424 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 expr_ty a;
2426 AugOperator* b;
2427 void *c;
2428 if (
2429 (a = single_target_rule(p)) // single_target
2430 &&
2431 (b = augassign_rule(p)) // augassign
2432 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002433 (_cut_var = 1)
2434 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002435 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2436 )
2437 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002438 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 +01002439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2440 if (_token == NULL) {
2441 D(p->level--);
2442 return NULL;
2443 }
2444 int _end_lineno = _token->end_lineno;
2445 UNUSED(_end_lineno); // Only used by EXTRA macro
2446 int _end_col_offset = _token->end_col_offset;
2447 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002448 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002449 if (_res == NULL && PyErr_Occurred()) {
2450 p->error_indicator = 1;
2451 D(p->level--);
2452 return NULL;
2453 }
2454 goto done;
2455 }
2456 p->mark = _mark;
2457 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2459 if (_cut_var) {
2460 D(p->level--);
2461 return NULL;
2462 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002463 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002464 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002465 if (p->error_indicator) {
2466 D(p->level--);
2467 return NULL;
2468 }
2469 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2470 void *invalid_assignment_var;
2471 if (
2472 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2473 )
2474 {
2475 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2476 _res = invalid_assignment_var;
2477 goto done;
2478 }
2479 p->mark = _mark;
2480 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2482 }
2483 _res = NULL;
2484 done:
2485 D(p->level--);
2486 return _res;
2487}
2488
2489// augassign:
2490// | '+='
2491// | '-='
2492// | '*='
2493// | '@='
2494// | '/='
2495// | '%='
2496// | '&='
2497// | '|='
2498// | '^='
2499// | '<<='
2500// | '>>='
2501// | '**='
2502// | '//='
2503static AugOperator*
2504augassign_rule(Parser *p)
2505{
2506 D(p->level++);
2507 if (p->error_indicator) {
2508 D(p->level--);
2509 return NULL;
2510 }
2511 AugOperator* _res = NULL;
2512 int _mark = p->mark;
2513 { // '+='
2514 if (p->error_indicator) {
2515 D(p->level--);
2516 return NULL;
2517 }
2518 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2519 Token * _literal;
2520 if (
2521 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2522 )
2523 {
2524 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2525 _res = _PyPegen_augoperator ( p , Add );
2526 if (_res == NULL && PyErr_Occurred()) {
2527 p->error_indicator = 1;
2528 D(p->level--);
2529 return NULL;
2530 }
2531 goto done;
2532 }
2533 p->mark = _mark;
2534 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2536 }
2537 { // '-='
2538 if (p->error_indicator) {
2539 D(p->level--);
2540 return NULL;
2541 }
2542 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2543 Token * _literal;
2544 if (
2545 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2546 )
2547 {
2548 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2549 _res = _PyPegen_augoperator ( p , Sub );
2550 if (_res == NULL && PyErr_Occurred()) {
2551 p->error_indicator = 1;
2552 D(p->level--);
2553 return NULL;
2554 }
2555 goto done;
2556 }
2557 p->mark = _mark;
2558 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2560 }
2561 { // '*='
2562 if (p->error_indicator) {
2563 D(p->level--);
2564 return NULL;
2565 }
2566 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2567 Token * _literal;
2568 if (
2569 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2570 )
2571 {
2572 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2573 _res = _PyPegen_augoperator ( p , Mult );
2574 if (_res == NULL && PyErr_Occurred()) {
2575 p->error_indicator = 1;
2576 D(p->level--);
2577 return NULL;
2578 }
2579 goto done;
2580 }
2581 p->mark = _mark;
2582 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2584 }
2585 { // '@='
2586 if (p->error_indicator) {
2587 D(p->level--);
2588 return NULL;
2589 }
2590 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2591 Token * _literal;
2592 if (
2593 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2594 )
2595 {
2596 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002597 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002598 if (_res == NULL && PyErr_Occurred()) {
2599 p->error_indicator = 1;
2600 D(p->level--);
2601 return NULL;
2602 }
2603 goto done;
2604 }
2605 p->mark = _mark;
2606 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2608 }
2609 { // '/='
2610 if (p->error_indicator) {
2611 D(p->level--);
2612 return NULL;
2613 }
2614 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2615 Token * _literal;
2616 if (
2617 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2618 )
2619 {
2620 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2621 _res = _PyPegen_augoperator ( p , Div );
2622 if (_res == NULL && PyErr_Occurred()) {
2623 p->error_indicator = 1;
2624 D(p->level--);
2625 return NULL;
2626 }
2627 goto done;
2628 }
2629 p->mark = _mark;
2630 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2632 }
2633 { // '%='
2634 if (p->error_indicator) {
2635 D(p->level--);
2636 return NULL;
2637 }
2638 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2639 Token * _literal;
2640 if (
2641 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2642 )
2643 {
2644 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2645 _res = _PyPegen_augoperator ( p , Mod );
2646 if (_res == NULL && PyErr_Occurred()) {
2647 p->error_indicator = 1;
2648 D(p->level--);
2649 return NULL;
2650 }
2651 goto done;
2652 }
2653 p->mark = _mark;
2654 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2656 }
2657 { // '&='
2658 if (p->error_indicator) {
2659 D(p->level--);
2660 return NULL;
2661 }
2662 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2663 Token * _literal;
2664 if (
2665 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2666 )
2667 {
2668 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2669 _res = _PyPegen_augoperator ( p , BitAnd );
2670 if (_res == NULL && PyErr_Occurred()) {
2671 p->error_indicator = 1;
2672 D(p->level--);
2673 return NULL;
2674 }
2675 goto done;
2676 }
2677 p->mark = _mark;
2678 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2680 }
2681 { // '|='
2682 if (p->error_indicator) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2687 Token * _literal;
2688 if (
2689 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2690 )
2691 {
2692 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2693 _res = _PyPegen_augoperator ( p , BitOr );
2694 if (_res == NULL && PyErr_Occurred()) {
2695 p->error_indicator = 1;
2696 D(p->level--);
2697 return NULL;
2698 }
2699 goto done;
2700 }
2701 p->mark = _mark;
2702 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2704 }
2705 { // '^='
2706 if (p->error_indicator) {
2707 D(p->level--);
2708 return NULL;
2709 }
2710 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2711 Token * _literal;
2712 if (
2713 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2714 )
2715 {
2716 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2717 _res = _PyPegen_augoperator ( p , BitXor );
2718 if (_res == NULL && PyErr_Occurred()) {
2719 p->error_indicator = 1;
2720 D(p->level--);
2721 return NULL;
2722 }
2723 goto done;
2724 }
2725 p->mark = _mark;
2726 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2728 }
2729 { // '<<='
2730 if (p->error_indicator) {
2731 D(p->level--);
2732 return NULL;
2733 }
2734 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2735 Token * _literal;
2736 if (
2737 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2738 )
2739 {
2740 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2741 _res = _PyPegen_augoperator ( p , LShift );
2742 if (_res == NULL && PyErr_Occurred()) {
2743 p->error_indicator = 1;
2744 D(p->level--);
2745 return NULL;
2746 }
2747 goto done;
2748 }
2749 p->mark = _mark;
2750 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2752 }
2753 { // '>>='
2754 if (p->error_indicator) {
2755 D(p->level--);
2756 return NULL;
2757 }
2758 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2759 Token * _literal;
2760 if (
2761 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2762 )
2763 {
2764 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2765 _res = _PyPegen_augoperator ( p , RShift );
2766 if (_res == NULL && PyErr_Occurred()) {
2767 p->error_indicator = 1;
2768 D(p->level--);
2769 return NULL;
2770 }
2771 goto done;
2772 }
2773 p->mark = _mark;
2774 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2776 }
2777 { // '**='
2778 if (p->error_indicator) {
2779 D(p->level--);
2780 return NULL;
2781 }
2782 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2783 Token * _literal;
2784 if (
2785 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2786 )
2787 {
2788 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2789 _res = _PyPegen_augoperator ( p , Pow );
2790 if (_res == NULL && PyErr_Occurred()) {
2791 p->error_indicator = 1;
2792 D(p->level--);
2793 return NULL;
2794 }
2795 goto done;
2796 }
2797 p->mark = _mark;
2798 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2800 }
2801 { // '//='
2802 if (p->error_indicator) {
2803 D(p->level--);
2804 return NULL;
2805 }
2806 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2807 Token * _literal;
2808 if (
2809 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2810 )
2811 {
2812 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2813 _res = _PyPegen_augoperator ( p , FloorDiv );
2814 if (_res == NULL && PyErr_Occurred()) {
2815 p->error_indicator = 1;
2816 D(p->level--);
2817 return NULL;
2818 }
2819 goto done;
2820 }
2821 p->mark = _mark;
2822 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2824 }
2825 _res = NULL;
2826 done:
2827 D(p->level--);
2828 return _res;
2829}
2830
2831// global_stmt: 'global' ','.NAME+
2832static stmt_ty
2833global_stmt_rule(Parser *p)
2834{
2835 D(p->level++);
2836 if (p->error_indicator) {
2837 D(p->level--);
2838 return NULL;
2839 }
2840 stmt_ty _res = NULL;
2841 int _mark = p->mark;
2842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2843 p->error_indicator = 1;
2844 D(p->level--);
2845 return NULL;
2846 }
2847 int _start_lineno = p->tokens[_mark]->lineno;
2848 UNUSED(_start_lineno); // Only used by EXTRA macro
2849 int _start_col_offset = p->tokens[_mark]->col_offset;
2850 UNUSED(_start_col_offset); // Only used by EXTRA macro
2851 { // 'global' ','.NAME+
2852 if (p->error_indicator) {
2853 D(p->level--);
2854 return NULL;
2855 }
2856 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2857 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002858 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002859 if (
2860 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2861 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002862 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 )
2864 {
2865 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2867 if (_token == NULL) {
2868 D(p->level--);
2869 return NULL;
2870 }
2871 int _end_lineno = _token->end_lineno;
2872 UNUSED(_end_lineno); // Only used by EXTRA macro
2873 int _end_col_offset = _token->end_col_offset;
2874 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002875 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002876 if (_res == NULL && PyErr_Occurred()) {
2877 p->error_indicator = 1;
2878 D(p->level--);
2879 return NULL;
2880 }
2881 goto done;
2882 }
2883 p->mark = _mark;
2884 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2886 }
2887 _res = NULL;
2888 done:
2889 D(p->level--);
2890 return _res;
2891}
2892
2893// nonlocal_stmt: 'nonlocal' ','.NAME+
2894static stmt_ty
2895nonlocal_stmt_rule(Parser *p)
2896{
2897 D(p->level++);
2898 if (p->error_indicator) {
2899 D(p->level--);
2900 return NULL;
2901 }
2902 stmt_ty _res = NULL;
2903 int _mark = p->mark;
2904 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2905 p->error_indicator = 1;
2906 D(p->level--);
2907 return NULL;
2908 }
2909 int _start_lineno = p->tokens[_mark]->lineno;
2910 UNUSED(_start_lineno); // Only used by EXTRA macro
2911 int _start_col_offset = p->tokens[_mark]->col_offset;
2912 UNUSED(_start_col_offset); // Only used by EXTRA macro
2913 { // 'nonlocal' ','.NAME+
2914 if (p->error_indicator) {
2915 D(p->level--);
2916 return NULL;
2917 }
2918 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2919 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002920 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002921 if (
2922 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2923 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002924 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002925 )
2926 {
2927 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2928 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2929 if (_token == NULL) {
2930 D(p->level--);
2931 return NULL;
2932 }
2933 int _end_lineno = _token->end_lineno;
2934 UNUSED(_end_lineno); // Only used by EXTRA macro
2935 int _end_col_offset = _token->end_col_offset;
2936 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002937 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002938 if (_res == NULL && PyErr_Occurred()) {
2939 p->error_indicator = 1;
2940 D(p->level--);
2941 return NULL;
2942 }
2943 goto done;
2944 }
2945 p->mark = _mark;
2946 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2948 }
2949 _res = NULL;
2950 done:
2951 D(p->level--);
2952 return _res;
2953}
2954
2955// yield_stmt: yield_expr
2956static stmt_ty
2957yield_stmt_rule(Parser *p)
2958{
2959 D(p->level++);
2960 if (p->error_indicator) {
2961 D(p->level--);
2962 return NULL;
2963 }
2964 stmt_ty _res = NULL;
2965 int _mark = p->mark;
2966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2967 p->error_indicator = 1;
2968 D(p->level--);
2969 return NULL;
2970 }
2971 int _start_lineno = p->tokens[_mark]->lineno;
2972 UNUSED(_start_lineno); // Only used by EXTRA macro
2973 int _start_col_offset = p->tokens[_mark]->col_offset;
2974 UNUSED(_start_col_offset); // Only used by EXTRA macro
2975 { // yield_expr
2976 if (p->error_indicator) {
2977 D(p->level--);
2978 return NULL;
2979 }
2980 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2981 expr_ty y;
2982 if (
2983 (y = yield_expr_rule(p)) // yield_expr
2984 )
2985 {
2986 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2988 if (_token == NULL) {
2989 D(p->level--);
2990 return NULL;
2991 }
2992 int _end_lineno = _token->end_lineno;
2993 UNUSED(_end_lineno); // Only used by EXTRA macro
2994 int _end_col_offset = _token->end_col_offset;
2995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002996 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002997 if (_res == NULL && PyErr_Occurred()) {
2998 p->error_indicator = 1;
2999 D(p->level--);
3000 return NULL;
3001 }
3002 goto done;
3003 }
3004 p->mark = _mark;
3005 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3007 }
3008 _res = NULL;
3009 done:
3010 D(p->level--);
3011 return _res;
3012}
3013
3014// assert_stmt: 'assert' expression [',' expression]
3015static stmt_ty
3016assert_stmt_rule(Parser *p)
3017{
3018 D(p->level++);
3019 if (p->error_indicator) {
3020 D(p->level--);
3021 return NULL;
3022 }
3023 stmt_ty _res = NULL;
3024 int _mark = p->mark;
3025 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3026 p->error_indicator = 1;
3027 D(p->level--);
3028 return NULL;
3029 }
3030 int _start_lineno = p->tokens[_mark]->lineno;
3031 UNUSED(_start_lineno); // Only used by EXTRA macro
3032 int _start_col_offset = p->tokens[_mark]->col_offset;
3033 UNUSED(_start_col_offset); // Only used by EXTRA macro
3034 { // 'assert' expression [',' expression]
3035 if (p->error_indicator) {
3036 D(p->level--);
3037 return NULL;
3038 }
3039 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3040 Token * _keyword;
3041 expr_ty a;
3042 void *b;
3043 if (
3044 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3045 &&
3046 (a = expression_rule(p)) // expression
3047 &&
3048 (b = _tmp_29_rule(p), 1) // [',' expression]
3049 )
3050 {
3051 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3053 if (_token == NULL) {
3054 D(p->level--);
3055 return NULL;
3056 }
3057 int _end_lineno = _token->end_lineno;
3058 UNUSED(_end_lineno); // Only used by EXTRA macro
3059 int _end_col_offset = _token->end_col_offset;
3060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003061 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003062 if (_res == NULL && PyErr_Occurred()) {
3063 p->error_indicator = 1;
3064 D(p->level--);
3065 return NULL;
3066 }
3067 goto done;
3068 }
3069 p->mark = _mark;
3070 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3072 }
3073 _res = NULL;
3074 done:
3075 D(p->level--);
3076 return _res;
3077}
3078
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003079// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003080static stmt_ty
3081del_stmt_rule(Parser *p)
3082{
3083 D(p->level++);
3084 if (p->error_indicator) {
3085 D(p->level--);
3086 return NULL;
3087 }
3088 stmt_ty _res = NULL;
3089 int _mark = p->mark;
3090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3091 p->error_indicator = 1;
3092 D(p->level--);
3093 return NULL;
3094 }
3095 int _start_lineno = p->tokens[_mark]->lineno;
3096 UNUSED(_start_lineno); // Only used by EXTRA macro
3097 int _start_col_offset = p->tokens[_mark]->col_offset;
3098 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003099 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003100 if (p->error_indicator) {
3101 D(p->level--);
3102 return NULL;
3103 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003104 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 +01003105 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003106 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003107 if (
3108 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3109 &&
3110 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003111 &&
3112 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003113 )
3114 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003115 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 +01003116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3117 if (_token == NULL) {
3118 D(p->level--);
3119 return NULL;
3120 }
3121 int _end_lineno = _token->end_lineno;
3122 UNUSED(_end_lineno); // Only used by EXTRA macro
3123 int _end_col_offset = _token->end_col_offset;
3124 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003125 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003126 if (_res == NULL && PyErr_Occurred()) {
3127 p->error_indicator = 1;
3128 D(p->level--);
3129 return NULL;
3130 }
3131 goto done;
3132 }
3133 p->mark = _mark;
3134 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3136 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003137 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003138 if (p->error_indicator) {
3139 D(p->level--);
3140 return NULL;
3141 }
3142 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3143 void *invalid_del_stmt_var;
3144 if (
3145 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3146 )
3147 {
3148 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3149 _res = invalid_del_stmt_var;
3150 goto done;
3151 }
3152 p->mark = _mark;
3153 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003155 }
3156 _res = NULL;
3157 done:
3158 D(p->level--);
3159 return _res;
3160}
3161
3162// import_stmt: import_name | import_from
3163static stmt_ty
3164import_stmt_rule(Parser *p)
3165{
3166 D(p->level++);
3167 if (p->error_indicator) {
3168 D(p->level--);
3169 return NULL;
3170 }
3171 stmt_ty _res = NULL;
3172 int _mark = p->mark;
3173 { // import_name
3174 if (p->error_indicator) {
3175 D(p->level--);
3176 return NULL;
3177 }
3178 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3179 stmt_ty import_name_var;
3180 if (
3181 (import_name_var = import_name_rule(p)) // import_name
3182 )
3183 {
3184 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3185 _res = import_name_var;
3186 goto done;
3187 }
3188 p->mark = _mark;
3189 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3191 }
3192 { // import_from
3193 if (p->error_indicator) {
3194 D(p->level--);
3195 return NULL;
3196 }
3197 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3198 stmt_ty import_from_var;
3199 if (
3200 (import_from_var = import_from_rule(p)) // import_from
3201 )
3202 {
3203 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3204 _res = import_from_var;
3205 goto done;
3206 }
3207 p->mark = _mark;
3208 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3210 }
3211 _res = NULL;
3212 done:
3213 D(p->level--);
3214 return _res;
3215}
3216
3217// import_name: 'import' dotted_as_names
3218static stmt_ty
3219import_name_rule(Parser *p)
3220{
3221 D(p->level++);
3222 if (p->error_indicator) {
3223 D(p->level--);
3224 return NULL;
3225 }
3226 stmt_ty _res = NULL;
3227 int _mark = p->mark;
3228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3229 p->error_indicator = 1;
3230 D(p->level--);
3231 return NULL;
3232 }
3233 int _start_lineno = p->tokens[_mark]->lineno;
3234 UNUSED(_start_lineno); // Only used by EXTRA macro
3235 int _start_col_offset = p->tokens[_mark]->col_offset;
3236 UNUSED(_start_col_offset); // Only used by EXTRA macro
3237 { // 'import' dotted_as_names
3238 if (p->error_indicator) {
3239 D(p->level--);
3240 return NULL;
3241 }
3242 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3243 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003244 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003245 if (
3246 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3247 &&
3248 (a = dotted_as_names_rule(p)) // dotted_as_names
3249 )
3250 {
3251 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3253 if (_token == NULL) {
3254 D(p->level--);
3255 return NULL;
3256 }
3257 int _end_lineno = _token->end_lineno;
3258 UNUSED(_end_lineno); // Only used by EXTRA macro
3259 int _end_col_offset = _token->end_col_offset;
3260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003261 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003262 if (_res == NULL && PyErr_Occurred()) {
3263 p->error_indicator = 1;
3264 D(p->level--);
3265 return NULL;
3266 }
3267 goto done;
3268 }
3269 p->mark = _mark;
3270 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3272 }
3273 _res = NULL;
3274 done:
3275 D(p->level--);
3276 return _res;
3277}
3278
3279// import_from:
3280// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3281// | 'from' (('.' | '...'))+ 'import' import_from_targets
3282static stmt_ty
3283import_from_rule(Parser *p)
3284{
3285 D(p->level++);
3286 if (p->error_indicator) {
3287 D(p->level--);
3288 return NULL;
3289 }
3290 stmt_ty _res = NULL;
3291 int _mark = p->mark;
3292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3293 p->error_indicator = 1;
3294 D(p->level--);
3295 return NULL;
3296 }
3297 int _start_lineno = p->tokens[_mark]->lineno;
3298 UNUSED(_start_lineno); // Only used by EXTRA macro
3299 int _start_col_offset = p->tokens[_mark]->col_offset;
3300 UNUSED(_start_col_offset); // Only used by EXTRA macro
3301 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3302 if (p->error_indicator) {
3303 D(p->level--);
3304 return NULL;
3305 }
3306 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3307 Token * _keyword;
3308 Token * _keyword_1;
3309 asdl_seq * a;
3310 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003311 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003312 if (
3313 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3314 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003315 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003316 &&
3317 (b = dotted_name_rule(p)) // dotted_name
3318 &&
3319 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3320 &&
3321 (c = import_from_targets_rule(p)) // import_from_targets
3322 )
3323 {
3324 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3325 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3326 if (_token == NULL) {
3327 D(p->level--);
3328 return NULL;
3329 }
3330 int _end_lineno = _token->end_lineno;
3331 UNUSED(_end_lineno); // Only used by EXTRA macro
3332 int _end_col_offset = _token->end_col_offset;
3333 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003334 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003335 if (_res == NULL && PyErr_Occurred()) {
3336 p->error_indicator = 1;
3337 D(p->level--);
3338 return NULL;
3339 }
3340 goto done;
3341 }
3342 p->mark = _mark;
3343 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3345 }
3346 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3347 if (p->error_indicator) {
3348 D(p->level--);
3349 return NULL;
3350 }
3351 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3352 Token * _keyword;
3353 Token * _keyword_1;
3354 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003355 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003356 if (
3357 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3358 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003359 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003360 &&
3361 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3362 &&
3363 (b = import_from_targets_rule(p)) // import_from_targets
3364 )
3365 {
3366 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3368 if (_token == NULL) {
3369 D(p->level--);
3370 return NULL;
3371 }
3372 int _end_lineno = _token->end_lineno;
3373 UNUSED(_end_lineno); // Only used by EXTRA macro
3374 int _end_col_offset = _token->end_col_offset;
3375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003376 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003377 if (_res == NULL && PyErr_Occurred()) {
3378 p->error_indicator = 1;
3379 D(p->level--);
3380 return NULL;
3381 }
3382 goto done;
3383 }
3384 p->mark = _mark;
3385 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3387 }
3388 _res = NULL;
3389 done:
3390 D(p->level--);
3391 return _res;
3392}
3393
3394// import_from_targets:
3395// | '(' import_from_as_names ','? ')'
3396// | import_from_as_names !','
3397// | '*'
3398// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003399static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003400import_from_targets_rule(Parser *p)
3401{
3402 D(p->level++);
3403 if (p->error_indicator) {
3404 D(p->level--);
3405 return NULL;
3406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003407 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003408 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003409 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3410 p->error_indicator = 1;
3411 D(p->level--);
3412 return NULL;
3413 }
3414 int _start_lineno = p->tokens[_mark]->lineno;
3415 UNUSED(_start_lineno); // Only used by EXTRA macro
3416 int _start_col_offset = p->tokens[_mark]->col_offset;
3417 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003418 { // '(' import_from_as_names ','? ')'
3419 if (p->error_indicator) {
3420 D(p->level--);
3421 return NULL;
3422 }
3423 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3424 Token * _literal;
3425 Token * _literal_1;
3426 void *_opt_var;
3427 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003428 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003429 if (
3430 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3431 &&
3432 (a = import_from_as_names_rule(p)) // import_from_as_names
3433 &&
3434 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3435 &&
3436 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3437 )
3438 {
3439 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3440 _res = a;
3441 if (_res == NULL && PyErr_Occurred()) {
3442 p->error_indicator = 1;
3443 D(p->level--);
3444 return NULL;
3445 }
3446 goto done;
3447 }
3448 p->mark = _mark;
3449 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3451 }
3452 { // import_from_as_names !','
3453 if (p->error_indicator) {
3454 D(p->level--);
3455 return NULL;
3456 }
3457 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 +01003458 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003459 if (
3460 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3461 &&
3462 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3463 )
3464 {
3465 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3466 _res = import_from_as_names_var;
3467 goto done;
3468 }
3469 p->mark = _mark;
3470 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3472 }
3473 { // '*'
3474 if (p->error_indicator) {
3475 D(p->level--);
3476 return NULL;
3477 }
3478 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3479 Token * _literal;
3480 if (
3481 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3482 )
3483 {
3484 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3486 if (_token == NULL) {
3487 D(p->level--);
3488 return NULL;
3489 }
3490 int _end_lineno = _token->end_lineno;
3491 UNUSED(_end_lineno); // Only used by EXTRA macro
3492 int _end_col_offset = _token->end_col_offset;
3493 UNUSED(_end_col_offset); // Only used by EXTRA macro
3494 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003495 if (_res == NULL && PyErr_Occurred()) {
3496 p->error_indicator = 1;
3497 D(p->level--);
3498 return NULL;
3499 }
3500 goto done;
3501 }
3502 p->mark = _mark;
3503 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3505 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003506 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003507 if (p->error_indicator) {
3508 D(p->level--);
3509 return NULL;
3510 }
3511 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3512 void *invalid_import_from_targets_var;
3513 if (
3514 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3515 )
3516 {
3517 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3518 _res = invalid_import_from_targets_var;
3519 goto done;
3520 }
3521 p->mark = _mark;
3522 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3524 }
3525 _res = NULL;
3526 done:
3527 D(p->level--);
3528 return _res;
3529}
3530
3531// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003532static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003533import_from_as_names_rule(Parser *p)
3534{
3535 D(p->level++);
3536 if (p->error_indicator) {
3537 D(p->level--);
3538 return NULL;
3539 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003540 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 int _mark = p->mark;
3542 { // ','.import_from_as_name+
3543 if (p->error_indicator) {
3544 D(p->level--);
3545 return NULL;
3546 }
3547 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 +01003548 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003549 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003550 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003551 )
3552 {
3553 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3554 _res = a;
3555 if (_res == NULL && PyErr_Occurred()) {
3556 p->error_indicator = 1;
3557 D(p->level--);
3558 return NULL;
3559 }
3560 goto done;
3561 }
3562 p->mark = _mark;
3563 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3565 }
3566 _res = NULL;
3567 done:
3568 D(p->level--);
3569 return _res;
3570}
3571
3572// import_from_as_name: NAME ['as' NAME]
3573static alias_ty
3574import_from_as_name_rule(Parser *p)
3575{
3576 D(p->level++);
3577 if (p->error_indicator) {
3578 D(p->level--);
3579 return NULL;
3580 }
3581 alias_ty _res = NULL;
3582 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3584 p->error_indicator = 1;
3585 D(p->level--);
3586 return NULL;
3587 }
3588 int _start_lineno = p->tokens[_mark]->lineno;
3589 UNUSED(_start_lineno); // Only used by EXTRA macro
3590 int _start_col_offset = p->tokens[_mark]->col_offset;
3591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003592 { // NAME ['as' NAME]
3593 if (p->error_indicator) {
3594 D(p->level--);
3595 return NULL;
3596 }
3597 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3598 expr_ty a;
3599 void *b;
3600 if (
3601 (a = _PyPegen_name_token(p)) // NAME
3602 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003603 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003604 )
3605 {
3606 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 -04003607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3608 if (_token == NULL) {
3609 D(p->level--);
3610 return NULL;
3611 }
3612 int _end_lineno = _token->end_lineno;
3613 UNUSED(_end_lineno); // Only used by EXTRA macro
3614 int _end_col_offset = _token->end_col_offset;
3615 UNUSED(_end_col_offset); // Only used by EXTRA macro
3616 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003617 if (_res == NULL && PyErr_Occurred()) {
3618 p->error_indicator = 1;
3619 D(p->level--);
3620 return NULL;
3621 }
3622 goto done;
3623 }
3624 p->mark = _mark;
3625 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3627 }
3628 _res = NULL;
3629 done:
3630 D(p->level--);
3631 return _res;
3632}
3633
3634// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003635static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003636dotted_as_names_rule(Parser *p)
3637{
3638 D(p->level++);
3639 if (p->error_indicator) {
3640 D(p->level--);
3641 return NULL;
3642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003643 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 int _mark = p->mark;
3645 { // ','.dotted_as_name+
3646 if (p->error_indicator) {
3647 D(p->level--);
3648 return NULL;
3649 }
3650 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 +01003651 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003652 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003653 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003654 )
3655 {
3656 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3657 _res = a;
3658 if (_res == NULL && PyErr_Occurred()) {
3659 p->error_indicator = 1;
3660 D(p->level--);
3661 return NULL;
3662 }
3663 goto done;
3664 }
3665 p->mark = _mark;
3666 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3668 }
3669 _res = NULL;
3670 done:
3671 D(p->level--);
3672 return _res;
3673}
3674
3675// dotted_as_name: dotted_name ['as' NAME]
3676static alias_ty
3677dotted_as_name_rule(Parser *p)
3678{
3679 D(p->level++);
3680 if (p->error_indicator) {
3681 D(p->level--);
3682 return NULL;
3683 }
3684 alias_ty _res = NULL;
3685 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3687 p->error_indicator = 1;
3688 D(p->level--);
3689 return NULL;
3690 }
3691 int _start_lineno = p->tokens[_mark]->lineno;
3692 UNUSED(_start_lineno); // Only used by EXTRA macro
3693 int _start_col_offset = p->tokens[_mark]->col_offset;
3694 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003695 { // dotted_name ['as' NAME]
3696 if (p->error_indicator) {
3697 D(p->level--);
3698 return NULL;
3699 }
3700 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3701 expr_ty a;
3702 void *b;
3703 if (
3704 (a = dotted_name_rule(p)) // dotted_name
3705 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003706 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003707 )
3708 {
3709 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 -04003710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3711 if (_token == NULL) {
3712 D(p->level--);
3713 return NULL;
3714 }
3715 int _end_lineno = _token->end_lineno;
3716 UNUSED(_end_lineno); // Only used by EXTRA macro
3717 int _end_col_offset = _token->end_col_offset;
3718 UNUSED(_end_col_offset); // Only used by EXTRA macro
3719 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003720 if (_res == NULL && PyErr_Occurred()) {
3721 p->error_indicator = 1;
3722 D(p->level--);
3723 return NULL;
3724 }
3725 goto done;
3726 }
3727 p->mark = _mark;
3728 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3730 }
3731 _res = NULL;
3732 done:
3733 D(p->level--);
3734 return _res;
3735}
3736
3737// Left-recursive
3738// dotted_name: dotted_name '.' NAME | NAME
3739static expr_ty dotted_name_raw(Parser *);
3740static expr_ty
3741dotted_name_rule(Parser *p)
3742{
3743 D(p->level++);
3744 expr_ty _res = NULL;
3745 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3746 D(p->level--);
3747 return _res;
3748 }
3749 int _mark = p->mark;
3750 int _resmark = p->mark;
3751 while (1) {
3752 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3753 if (tmpvar_0) {
3754 D(p->level--);
3755 return _res;
3756 }
3757 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003758 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003759 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003760 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003761 if (p->error_indicator)
3762 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003763 if (_raw == NULL || p->mark <= _resmark)
3764 break;
3765 _resmark = p->mark;
3766 _res = _raw;
3767 }
3768 p->mark = _resmark;
3769 D(p->level--);
3770 return _res;
3771}
3772static expr_ty
3773dotted_name_raw(Parser *p)
3774{
3775 D(p->level++);
3776 if (p->error_indicator) {
3777 D(p->level--);
3778 return NULL;
3779 }
3780 expr_ty _res = NULL;
3781 int _mark = p->mark;
3782 { // dotted_name '.' NAME
3783 if (p->error_indicator) {
3784 D(p->level--);
3785 return NULL;
3786 }
3787 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3788 Token * _literal;
3789 expr_ty a;
3790 expr_ty b;
3791 if (
3792 (a = dotted_name_rule(p)) // dotted_name
3793 &&
3794 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3795 &&
3796 (b = _PyPegen_name_token(p)) // NAME
3797 )
3798 {
3799 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3800 _res = _PyPegen_join_names_with_dot ( p , a , b );
3801 if (_res == NULL && PyErr_Occurred()) {
3802 p->error_indicator = 1;
3803 D(p->level--);
3804 return NULL;
3805 }
3806 goto done;
3807 }
3808 p->mark = _mark;
3809 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3811 }
3812 { // NAME
3813 if (p->error_indicator) {
3814 D(p->level--);
3815 return NULL;
3816 }
3817 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3818 expr_ty name_var;
3819 if (
3820 (name_var = _PyPegen_name_token(p)) // NAME
3821 )
3822 {
3823 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3824 _res = name_var;
3825 goto done;
3826 }
3827 p->mark = _mark;
3828 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3830 }
3831 _res = NULL;
3832 done:
3833 D(p->level--);
3834 return _res;
3835}
3836
3837// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003838// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003839// | 'if' named_expression ':' block elif_stmt
3840// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003841static stmt_ty
3842if_stmt_rule(Parser *p)
3843{
3844 D(p->level++);
3845 if (p->error_indicator) {
3846 D(p->level--);
3847 return NULL;
3848 }
3849 stmt_ty _res = NULL;
3850 int _mark = p->mark;
3851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3852 p->error_indicator = 1;
3853 D(p->level--);
3854 return NULL;
3855 }
3856 int _start_lineno = p->tokens[_mark]->lineno;
3857 UNUSED(_start_lineno); // Only used by EXTRA macro
3858 int _start_col_offset = p->tokens[_mark]->col_offset;
3859 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003860 if (p->call_invalid_rules) { // invalid_if_stmt
3861 if (p->error_indicator) {
3862 D(p->level--);
3863 return NULL;
3864 }
3865 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3866 void *invalid_if_stmt_var;
3867 if (
3868 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3869 )
3870 {
3871 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3872 _res = invalid_if_stmt_var;
3873 goto done;
3874 }
3875 p->mark = _mark;
3876 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3878 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003879 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003880 if (p->error_indicator) {
3881 D(p->level--);
3882 return NULL;
3883 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003884 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 +01003885 Token * _keyword;
3886 Token * _literal;
3887 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003888 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003889 stmt_ty c;
3890 if (
3891 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3892 &&
3893 (a = named_expression_rule(p)) // named_expression
3894 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003895 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003896 &&
3897 (b = block_rule(p)) // block
3898 &&
3899 (c = elif_stmt_rule(p)) // elif_stmt
3900 )
3901 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003902 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 +01003903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3904 if (_token == NULL) {
3905 D(p->level--);
3906 return NULL;
3907 }
3908 int _end_lineno = _token->end_lineno;
3909 UNUSED(_end_lineno); // Only used by EXTRA macro
3910 int _end_col_offset = _token->end_col_offset;
3911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003912 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003913 if (_res == NULL && PyErr_Occurred()) {
3914 p->error_indicator = 1;
3915 D(p->level--);
3916 return NULL;
3917 }
3918 goto done;
3919 }
3920 p->mark = _mark;
3921 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 if (p->error_indicator) {
3926 D(p->level--);
3927 return NULL;
3928 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003929 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 +01003930 Token * _keyword;
3931 Token * _literal;
3932 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003933 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934 void *c;
3935 if (
3936 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3937 &&
3938 (a = named_expression_rule(p)) // named_expression
3939 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003940 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 &&
3942 (b = block_rule(p)) // block
3943 &&
3944 (c = else_block_rule(p), 1) // else_block?
3945 )
3946 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003947 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 +01003948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3949 if (_token == NULL) {
3950 D(p->level--);
3951 return NULL;
3952 }
3953 int _end_lineno = _token->end_lineno;
3954 UNUSED(_end_lineno); // Only used by EXTRA macro
3955 int _end_col_offset = _token->end_col_offset;
3956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003957 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 if (_res == NULL && PyErr_Occurred()) {
3959 p->error_indicator = 1;
3960 D(p->level--);
3961 return NULL;
3962 }
3963 goto done;
3964 }
3965 p->mark = _mark;
3966 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003969 _res = NULL;
3970 done:
3971 D(p->level--);
3972 return _res;
3973}
3974
3975// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003976// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003977// | 'elif' named_expression ':' block elif_stmt
3978// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003979static stmt_ty
3980elif_stmt_rule(Parser *p)
3981{
3982 D(p->level++);
3983 if (p->error_indicator) {
3984 D(p->level--);
3985 return NULL;
3986 }
3987 stmt_ty _res = NULL;
3988 int _mark = p->mark;
3989 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3990 p->error_indicator = 1;
3991 D(p->level--);
3992 return NULL;
3993 }
3994 int _start_lineno = p->tokens[_mark]->lineno;
3995 UNUSED(_start_lineno); // Only used by EXTRA macro
3996 int _start_col_offset = p->tokens[_mark]->col_offset;
3997 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003998 if (p->call_invalid_rules) { // invalid_elif_stmt
3999 if (p->error_indicator) {
4000 D(p->level--);
4001 return NULL;
4002 }
4003 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4004 void *invalid_elif_stmt_var;
4005 if (
4006 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4007 )
4008 {
4009 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4010 _res = invalid_elif_stmt_var;
4011 goto done;
4012 }
4013 p->mark = _mark;
4014 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4016 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004017 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004018 if (p->error_indicator) {
4019 D(p->level--);
4020 return NULL;
4021 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004022 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 +01004023 Token * _keyword;
4024 Token * _literal;
4025 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004026 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004027 stmt_ty c;
4028 if (
4029 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4030 &&
4031 (a = named_expression_rule(p)) // named_expression
4032 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004033 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004034 &&
4035 (b = block_rule(p)) // block
4036 &&
4037 (c = elif_stmt_rule(p)) // elif_stmt
4038 )
4039 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004040 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 +01004041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4042 if (_token == NULL) {
4043 D(p->level--);
4044 return NULL;
4045 }
4046 int _end_lineno = _token->end_lineno;
4047 UNUSED(_end_lineno); // Only used by EXTRA macro
4048 int _end_col_offset = _token->end_col_offset;
4049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004050 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 if (_res == NULL && PyErr_Occurred()) {
4052 p->error_indicator = 1;
4053 D(p->level--);
4054 return NULL;
4055 }
4056 goto done;
4057 }
4058 p->mark = _mark;
4059 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004061 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004062 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 if (p->error_indicator) {
4064 D(p->level--);
4065 return NULL;
4066 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004067 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 +01004068 Token * _keyword;
4069 Token * _literal;
4070 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004071 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004072 void *c;
4073 if (
4074 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4075 &&
4076 (a = named_expression_rule(p)) // named_expression
4077 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004078 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004079 &&
4080 (b = block_rule(p)) // block
4081 &&
4082 (c = else_block_rule(p), 1) // else_block?
4083 )
4084 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004085 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 +01004086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4087 if (_token == NULL) {
4088 D(p->level--);
4089 return NULL;
4090 }
4091 int _end_lineno = _token->end_lineno;
4092 UNUSED(_end_lineno); // Only used by EXTRA macro
4093 int _end_col_offset = _token->end_col_offset;
4094 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004095 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004096 if (_res == NULL && PyErr_Occurred()) {
4097 p->error_indicator = 1;
4098 D(p->level--);
4099 return NULL;
4100 }
4101 goto done;
4102 }
4103 p->mark = _mark;
4104 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4106 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107 _res = NULL;
4108 done:
4109 D(p->level--);
4110 return _res;
4111}
4112
Pablo Galindo56c95df2021-04-21 15:28:21 +01004113// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004114static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004115else_block_rule(Parser *p)
4116{
4117 D(p->level++);
4118 if (p->error_indicator) {
4119 D(p->level--);
4120 return NULL;
4121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004122 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004123 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004124 if (p->call_invalid_rules) { // invalid_else_stmt
4125 if (p->error_indicator) {
4126 D(p->level--);
4127 return NULL;
4128 }
4129 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4130 void *invalid_else_stmt_var;
4131 if (
4132 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4133 )
4134 {
4135 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4136 _res = invalid_else_stmt_var;
4137 goto done;
4138 }
4139 p->mark = _mark;
4140 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4142 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004143 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004144 if (p->error_indicator) {
4145 D(p->level--);
4146 return NULL;
4147 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004148 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004149 Token * _keyword;
4150 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004151 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004152 if (
4153 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4154 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004155 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004156 &&
4157 (b = block_rule(p)) // block
4158 )
4159 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004160 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 +01004161 _res = b;
4162 if (_res == NULL && PyErr_Occurred()) {
4163 p->error_indicator = 1;
4164 D(p->level--);
4165 return NULL;
4166 }
4167 goto done;
4168 }
4169 p->mark = _mark;
4170 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004172 }
4173 _res = NULL;
4174 done:
4175 D(p->level--);
4176 return _res;
4177}
4178
Pablo Galindo56c95df2021-04-21 15:28:21 +01004179// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004180static stmt_ty
4181while_stmt_rule(Parser *p)
4182{
4183 D(p->level++);
4184 if (p->error_indicator) {
4185 D(p->level--);
4186 return NULL;
4187 }
4188 stmt_ty _res = NULL;
4189 int _mark = p->mark;
4190 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4191 p->error_indicator = 1;
4192 D(p->level--);
4193 return NULL;
4194 }
4195 int _start_lineno = p->tokens[_mark]->lineno;
4196 UNUSED(_start_lineno); // Only used by EXTRA macro
4197 int _start_col_offset = p->tokens[_mark]->col_offset;
4198 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004199 if (p->call_invalid_rules) { // invalid_while_stmt
4200 if (p->error_indicator) {
4201 D(p->level--);
4202 return NULL;
4203 }
4204 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4205 void *invalid_while_stmt_var;
4206 if (
4207 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4208 )
4209 {
4210 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4211 _res = invalid_while_stmt_var;
4212 goto done;
4213 }
4214 p->mark = _mark;
4215 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4217 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004218 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004219 if (p->error_indicator) {
4220 D(p->level--);
4221 return NULL;
4222 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004223 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 +01004224 Token * _keyword;
4225 Token * _literal;
4226 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004227 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004228 void *c;
4229 if (
4230 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4231 &&
4232 (a = named_expression_rule(p)) // named_expression
4233 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004234 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004235 &&
4236 (b = block_rule(p)) // block
4237 &&
4238 (c = else_block_rule(p), 1) // else_block?
4239 )
4240 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004241 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 +01004242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4243 if (_token == NULL) {
4244 D(p->level--);
4245 return NULL;
4246 }
4247 int _end_lineno = _token->end_lineno;
4248 UNUSED(_end_lineno); // Only used by EXTRA macro
4249 int _end_col_offset = _token->end_col_offset;
4250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004251 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004252 if (_res == NULL && PyErr_Occurred()) {
4253 p->error_indicator = 1;
4254 D(p->level--);
4255 return NULL;
4256 }
4257 goto done;
4258 }
4259 p->mark = _mark;
4260 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4262 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004263 _res = NULL;
4264 done:
4265 D(p->level--);
4266 return _res;
4267}
4268
4269// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004270// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004271// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4272// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004273// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004274static stmt_ty
4275for_stmt_rule(Parser *p)
4276{
4277 D(p->level++);
4278 if (p->error_indicator) {
4279 D(p->level--);
4280 return NULL;
4281 }
4282 stmt_ty _res = NULL;
4283 int _mark = p->mark;
4284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4285 p->error_indicator = 1;
4286 D(p->level--);
4287 return NULL;
4288 }
4289 int _start_lineno = p->tokens[_mark]->lineno;
4290 UNUSED(_start_lineno); // Only used by EXTRA macro
4291 int _start_col_offset = p->tokens[_mark]->col_offset;
4292 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004293 if (p->call_invalid_rules) { // invalid_for_stmt
4294 if (p->error_indicator) {
4295 D(p->level--);
4296 return NULL;
4297 }
4298 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4299 void *invalid_for_stmt_var;
4300 if (
4301 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4302 )
4303 {
4304 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4305 _res = invalid_for_stmt_var;
4306 goto done;
4307 }
4308 p->mark = _mark;
4309 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4311 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004312 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004313 if (p->error_indicator) {
4314 D(p->level--);
4315 return NULL;
4316 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004317 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 +03004318 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004319 Token * _keyword;
4320 Token * _keyword_1;
4321 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004322 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004323 void *el;
4324 expr_ty ex;
4325 expr_ty t;
4326 void *tc;
4327 if (
4328 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4329 &&
4330 (t = star_targets_rule(p)) // star_targets
4331 &&
4332 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4333 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004334 (_cut_var = 1)
4335 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004336 (ex = star_expressions_rule(p)) // star_expressions
4337 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004338 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004339 &&
4340 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4341 &&
4342 (b = block_rule(p)) // block
4343 &&
4344 (el = else_block_rule(p), 1) // else_block?
4345 )
4346 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004347 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 +01004348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4349 if (_token == NULL) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 int _end_lineno = _token->end_lineno;
4354 UNUSED(_end_lineno); // Only used by EXTRA macro
4355 int _end_col_offset = _token->end_col_offset;
4356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004357 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004358 if (_res == NULL && PyErr_Occurred()) {
4359 p->error_indicator = 1;
4360 D(p->level--);
4361 return NULL;
4362 }
4363 goto done;
4364 }
4365 p->mark = _mark;
4366 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004367 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 +03004368 if (_cut_var) {
4369 D(p->level--);
4370 return NULL;
4371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004373 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004374 if (p->error_indicator) {
4375 D(p->level--);
4376 return NULL;
4377 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004378 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 +03004379 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004380 Token * _keyword;
4381 Token * _keyword_1;
4382 Token * _literal;
4383 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004384 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004385 void *el;
4386 expr_ty ex;
4387 expr_ty t;
4388 void *tc;
4389 if (
4390 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4391 &&
4392 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4393 &&
4394 (t = star_targets_rule(p)) // star_targets
4395 &&
4396 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4397 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004398 (_cut_var = 1)
4399 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004400 (ex = star_expressions_rule(p)) // star_expressions
4401 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004402 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004403 &&
4404 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4405 &&
4406 (b = block_rule(p)) // block
4407 &&
4408 (el = else_block_rule(p), 1) // else_block?
4409 )
4410 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004411 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 +01004412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4413 if (_token == NULL) {
4414 D(p->level--);
4415 return NULL;
4416 }
4417 int _end_lineno = _token->end_lineno;
4418 UNUSED(_end_lineno); // Only used by EXTRA macro
4419 int _end_col_offset = _token->end_col_offset;
4420 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004421 _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 +01004422 if (_res == NULL && PyErr_Occurred()) {
4423 p->error_indicator = 1;
4424 D(p->level--);
4425 return NULL;
4426 }
4427 goto done;
4428 }
4429 p->mark = _mark;
4430 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004431 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 +03004432 if (_cut_var) {
4433 D(p->level--);
4434 return NULL;
4435 }
4436 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004437 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004438 if (p->error_indicator) {
4439 D(p->level--);
4440 return NULL;
4441 }
4442 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4443 void *invalid_for_target_var;
4444 if (
4445 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4446 )
4447 {
4448 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4449 _res = invalid_for_target_var;
4450 goto done;
4451 }
4452 p->mark = _mark;
4453 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004455 }
4456 _res = NULL;
4457 done:
4458 D(p->level--);
4459 return _res;
4460}
4461
4462// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004463// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004464// | 'with' '(' ','.with_item+ ','? ')' ':' block
4465// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4466// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4467// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004468// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004469static stmt_ty
4470with_stmt_rule(Parser *p)
4471{
4472 D(p->level++);
4473 if (p->error_indicator) {
4474 D(p->level--);
4475 return NULL;
4476 }
4477 stmt_ty _res = NULL;
4478 int _mark = p->mark;
4479 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4480 p->error_indicator = 1;
4481 D(p->level--);
4482 return NULL;
4483 }
4484 int _start_lineno = p->tokens[_mark]->lineno;
4485 UNUSED(_start_lineno); // Only used by EXTRA macro
4486 int _start_col_offset = p->tokens[_mark]->col_offset;
4487 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004488 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4489 if (p->error_indicator) {
4490 D(p->level--);
4491 return NULL;
4492 }
4493 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4494 void *invalid_with_stmt_indent_var;
4495 if (
4496 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4497 )
4498 {
4499 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4500 _res = invalid_with_stmt_indent_var;
4501 goto done;
4502 }
4503 p->mark = _mark;
4504 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4506 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004507 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4508 if (p->error_indicator) {
4509 D(p->level--);
4510 return NULL;
4511 }
4512 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4513 Token * _keyword;
4514 Token * _literal;
4515 Token * _literal_1;
4516 Token * _literal_2;
4517 void *_opt_var;
4518 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004519 asdl_withitem_seq* a;
4520 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004521 if (
4522 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4523 &&
4524 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4525 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004526 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004527 &&
4528 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4529 &&
4530 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4531 &&
4532 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4533 &&
4534 (b = block_rule(p)) // block
4535 )
4536 {
4537 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4538 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4539 if (_token == NULL) {
4540 D(p->level--);
4541 return NULL;
4542 }
4543 int _end_lineno = _token->end_lineno;
4544 UNUSED(_end_lineno); // Only used by EXTRA macro
4545 int _end_col_offset = _token->end_col_offset;
4546 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004547 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004548 if (_res == NULL && PyErr_Occurred()) {
4549 p->error_indicator = 1;
4550 D(p->level--);
4551 return NULL;
4552 }
4553 goto done;
4554 }
4555 p->mark = _mark;
4556 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4558 }
4559 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4560 if (p->error_indicator) {
4561 D(p->level--);
4562 return NULL;
4563 }
4564 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4565 Token * _keyword;
4566 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004567 asdl_withitem_seq* a;
4568 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004569 void *tc;
4570 if (
4571 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4572 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004573 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004574 &&
4575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4576 &&
4577 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4578 &&
4579 (b = block_rule(p)) // block
4580 )
4581 {
4582 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4584 if (_token == NULL) {
4585 D(p->level--);
4586 return NULL;
4587 }
4588 int _end_lineno = _token->end_lineno;
4589 UNUSED(_end_lineno); // Only used by EXTRA macro
4590 int _end_col_offset = _token->end_col_offset;
4591 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004592 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 if (_res == NULL && PyErr_Occurred()) {
4594 p->error_indicator = 1;
4595 D(p->level--);
4596 return NULL;
4597 }
4598 goto done;
4599 }
4600 p->mark = _mark;
4601 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4603 }
4604 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4605 if (p->error_indicator) {
4606 D(p->level--);
4607 return NULL;
4608 }
4609 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4610 Token * _keyword;
4611 Token * _literal;
4612 Token * _literal_1;
4613 Token * _literal_2;
4614 void *_opt_var;
4615 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004616 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004618 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 if (
4620 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4621 &&
4622 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4623 &&
4624 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4625 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004626 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004627 &&
4628 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4629 &&
4630 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4631 &&
4632 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4633 &&
4634 (b = block_rule(p)) // block
4635 )
4636 {
4637 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4638 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4639 if (_token == NULL) {
4640 D(p->level--);
4641 return NULL;
4642 }
4643 int _end_lineno = _token->end_lineno;
4644 UNUSED(_end_lineno); // Only used by EXTRA macro
4645 int _end_col_offset = _token->end_col_offset;
4646 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004647 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004648 if (_res == NULL && PyErr_Occurred()) {
4649 p->error_indicator = 1;
4650 D(p->level--);
4651 return NULL;
4652 }
4653 goto done;
4654 }
4655 p->mark = _mark;
4656 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4658 }
4659 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4660 if (p->error_indicator) {
4661 D(p->level--);
4662 return NULL;
4663 }
4664 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4665 Token * _keyword;
4666 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004667 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004668 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004669 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004670 void *tc;
4671 if (
4672 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4673 &&
4674 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4675 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004676 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004677 &&
4678 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4679 &&
4680 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4681 &&
4682 (b = block_rule(p)) // block
4683 )
4684 {
4685 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4687 if (_token == NULL) {
4688 D(p->level--);
4689 return NULL;
4690 }
4691 int _end_lineno = _token->end_lineno;
4692 UNUSED(_end_lineno); // Only used by EXTRA macro
4693 int _end_col_offset = _token->end_col_offset;
4694 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004695 _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 +01004696 if (_res == NULL && PyErr_Occurred()) {
4697 p->error_indicator = 1;
4698 D(p->level--);
4699 return NULL;
4700 }
4701 goto done;
4702 }
4703 p->mark = _mark;
4704 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4706 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004707 if (p->call_invalid_rules) { // invalid_with_stmt
4708 if (p->error_indicator) {
4709 D(p->level--);
4710 return NULL;
4711 }
4712 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4713 void *invalid_with_stmt_var;
4714 if (
4715 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4716 )
4717 {
4718 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4719 _res = invalid_with_stmt_var;
4720 goto done;
4721 }
4722 p->mark = _mark;
4723 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4725 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004726 _res = NULL;
4727 done:
4728 D(p->level--);
4729 return _res;
4730}
4731
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004732// with_item:
4733// | expression 'as' star_target &(',' | ')' | ':')
4734// | invalid_with_item
4735// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004736static withitem_ty
4737with_item_rule(Parser *p)
4738{
4739 D(p->level++);
4740 if (p->error_indicator) {
4741 D(p->level--);
4742 return NULL;
4743 }
4744 withitem_ty _res = NULL;
4745 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004746 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 if (p->error_indicator) {
4748 D(p->level--);
4749 return NULL;
4750 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004751 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 +03004752 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004754 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 if (
4756 (e = expression_rule(p)) // expression
4757 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004758 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4759 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004760 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004761 &&
4762 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004763 )
4764 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004765 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 +02004766 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004767 if (_res == NULL && PyErr_Occurred()) {
4768 p->error_indicator = 1;
4769 D(p->level--);
4770 return NULL;
4771 }
4772 goto done;
4773 }
4774 p->mark = _mark;
4775 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004777 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004778 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004779 if (p->error_indicator) {
4780 D(p->level--);
4781 return NULL;
4782 }
4783 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4784 void *invalid_with_item_var;
4785 if (
4786 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4787 )
4788 {
4789 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4790 _res = invalid_with_item_var;
4791 goto done;
4792 }
4793 p->mark = _mark;
4794 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4796 }
4797 { // expression
4798 if (p->error_indicator) {
4799 D(p->level--);
4800 return NULL;
4801 }
4802 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4803 expr_ty e;
4804 if (
4805 (e = expression_rule(p)) // expression
4806 )
4807 {
4808 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004809 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004810 if (_res == NULL && PyErr_Occurred()) {
4811 p->error_indicator = 1;
4812 D(p->level--);
4813 return NULL;
4814 }
4815 goto done;
4816 }
4817 p->mark = _mark;
4818 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004820 }
4821 _res = NULL;
4822 done:
4823 D(p->level--);
4824 return _res;
4825}
4826
4827// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004828// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004829// | 'try' &&':' block finally_block
4830// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004831static stmt_ty
4832try_stmt_rule(Parser *p)
4833{
4834 D(p->level++);
4835 if (p->error_indicator) {
4836 D(p->level--);
4837 return NULL;
4838 }
4839 stmt_ty _res = NULL;
4840 int _mark = p->mark;
4841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4842 p->error_indicator = 1;
4843 D(p->level--);
4844 return NULL;
4845 }
4846 int _start_lineno = p->tokens[_mark]->lineno;
4847 UNUSED(_start_lineno); // Only used by EXTRA macro
4848 int _start_col_offset = p->tokens[_mark]->col_offset;
4849 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004850 if (p->call_invalid_rules) { // invalid_try_stmt
4851 if (p->error_indicator) {
4852 D(p->level--);
4853 return NULL;
4854 }
4855 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4856 void *invalid_try_stmt_var;
4857 if (
4858 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4859 )
4860 {
4861 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4862 _res = invalid_try_stmt_var;
4863 goto done;
4864 }
4865 p->mark = _mark;
4866 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4868 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004869 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004870 if (p->error_indicator) {
4871 D(p->level--);
4872 return NULL;
4873 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004874 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 +01004875 Token * _keyword;
4876 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004877 asdl_stmt_seq* b;
4878 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004879 if (
4880 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4881 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004882 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004883 &&
4884 (b = block_rule(p)) // block
4885 &&
4886 (f = finally_block_rule(p)) // finally_block
4887 )
4888 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004889 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 +01004890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4891 if (_token == NULL) {
4892 D(p->level--);
4893 return NULL;
4894 }
4895 int _end_lineno = _token->end_lineno;
4896 UNUSED(_end_lineno); // Only used by EXTRA macro
4897 int _end_col_offset = _token->end_col_offset;
4898 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004899 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004900 if (_res == NULL && PyErr_Occurred()) {
4901 p->error_indicator = 1;
4902 D(p->level--);
4903 return NULL;
4904 }
4905 goto done;
4906 }
4907 p->mark = _mark;
4908 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004911 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 if (p->error_indicator) {
4913 D(p->level--);
4914 return NULL;
4915 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004916 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 +01004917 Token * _keyword;
4918 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004919 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004920 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004921 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 void *f;
4923 if (
4924 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4925 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004926 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004927 &&
4928 (b = block_rule(p)) // block
4929 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004930 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004931 &&
4932 (el = else_block_rule(p), 1) // else_block?
4933 &&
4934 (f = finally_block_rule(p), 1) // finally_block?
4935 )
4936 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004937 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 +01004938 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4939 if (_token == NULL) {
4940 D(p->level--);
4941 return NULL;
4942 }
4943 int _end_lineno = _token->end_lineno;
4944 UNUSED(_end_lineno); // Only used by EXTRA macro
4945 int _end_col_offset = _token->end_col_offset;
4946 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004947 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004948 if (_res == NULL && PyErr_Occurred()) {
4949 p->error_indicator = 1;
4950 D(p->level--);
4951 return NULL;
4952 }
4953 goto done;
4954 }
4955 p->mark = _mark;
4956 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004958 }
4959 _res = NULL;
4960 done:
4961 D(p->level--);
4962 return _res;
4963}
4964
Pablo Galindo206cbda2021-02-07 18:42:21 +00004965// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004966// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004967// | 'except' expression ['as' NAME] ':' block
4968// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004969// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004970static excepthandler_ty
4971except_block_rule(Parser *p)
4972{
4973 D(p->level++);
4974 if (p->error_indicator) {
4975 D(p->level--);
4976 return NULL;
4977 }
4978 excepthandler_ty _res = NULL;
4979 int _mark = p->mark;
4980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4981 p->error_indicator = 1;
4982 D(p->level--);
4983 return NULL;
4984 }
4985 int _start_lineno = p->tokens[_mark]->lineno;
4986 UNUSED(_start_lineno); // Only used by EXTRA macro
4987 int _start_col_offset = p->tokens[_mark]->col_offset;
4988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004989 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4990 if (p->error_indicator) {
4991 D(p->level--);
4992 return NULL;
4993 }
4994 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4995 void *invalid_except_stmt_indent_var;
4996 if (
4997 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4998 )
4999 {
5000 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5001 _res = invalid_except_stmt_indent_var;
5002 goto done;
5003 }
5004 p->mark = _mark;
5005 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5007 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005008 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005009 if (p->error_indicator) {
5010 D(p->level--);
5011 return NULL;
5012 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005013 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 +01005014 Token * _keyword;
5015 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005016 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005017 expr_ty e;
5018 void *t;
5019 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005020 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005021 &&
5022 (e = expression_rule(p)) // expression
5023 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005024 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005025 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005026 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005027 &&
5028 (b = block_rule(p)) // block
5029 )
5030 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005031 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 +01005032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5033 if (_token == NULL) {
5034 D(p->level--);
5035 return NULL;
5036 }
5037 int _end_lineno = _token->end_lineno;
5038 UNUSED(_end_lineno); // Only used by EXTRA macro
5039 int _end_col_offset = _token->end_col_offset;
5040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005041 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 if (_res == NULL && PyErr_Occurred()) {
5043 p->error_indicator = 1;
5044 D(p->level--);
5045 return NULL;
5046 }
5047 goto done;
5048 }
5049 p->mark = _mark;
5050 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005053 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 if (p->error_indicator) {
5055 D(p->level--);
5056 return NULL;
5057 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005058 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005059 Token * _keyword;
5060 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005061 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005062 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005063 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005065 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005066 &&
5067 (b = block_rule(p)) // block
5068 )
5069 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005070 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 +01005071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5072 if (_token == NULL) {
5073 D(p->level--);
5074 return NULL;
5075 }
5076 int _end_lineno = _token->end_lineno;
5077 UNUSED(_end_lineno); // Only used by EXTRA macro
5078 int _end_col_offset = _token->end_col_offset;
5079 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005080 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005081 if (_res == NULL && PyErr_Occurred()) {
5082 p->error_indicator = 1;
5083 D(p->level--);
5084 return NULL;
5085 }
5086 goto done;
5087 }
5088 p->mark = _mark;
5089 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5091 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005092 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005093 if (p->error_indicator) {
5094 D(p->level--);
5095 return NULL;
5096 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005097 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5098 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005099 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005100 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005101 )
5102 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005103 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5104 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005105 goto done;
5106 }
5107 p->mark = _mark;
5108 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005110 }
5111 _res = NULL;
5112 done:
5113 D(p->level--);
5114 return _res;
5115}
5116
Pablo Galindo56c95df2021-04-21 15:28:21 +01005117// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005118static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005119finally_block_rule(Parser *p)
5120{
5121 D(p->level++);
5122 if (p->error_indicator) {
5123 D(p->level--);
5124 return NULL;
5125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005126 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005127 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005128 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 if (p->error_indicator) {
5130 D(p->level--);
5131 return NULL;
5132 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005133 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5134 void *invalid_finally_stmt_var;
5135 if (
5136 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5137 )
5138 {
5139 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5140 _res = invalid_finally_stmt_var;
5141 goto done;
5142 }
5143 p->mark = _mark;
5144 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5146 }
5147 { // 'finally' &&':' block
5148 if (p->error_indicator) {
5149 D(p->level--);
5150 return NULL;
5151 }
5152 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005153 Token * _keyword;
5154 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005155 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005156 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005157 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005159 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 &&
5161 (a = block_rule(p)) // block
5162 )
5163 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005164 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 +01005165 _res = a;
5166 if (_res == NULL && PyErr_Occurred()) {
5167 p->error_indicator = 1;
5168 D(p->level--);
5169 return NULL;
5170 }
5171 goto done;
5172 }
5173 p->mark = _mark;
5174 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005176 }
5177 _res = NULL;
5178 done:
5179 D(p->level--);
5180 return _res;
5181}
5182
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005183// match_stmt:
5184// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5185// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005186static stmt_ty
5187match_stmt_rule(Parser *p)
5188{
5189 D(p->level++);
5190 if (p->error_indicator) {
5191 D(p->level--);
5192 return NULL;
5193 }
5194 stmt_ty _res = NULL;
5195 int _mark = p->mark;
5196 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5197 p->error_indicator = 1;
5198 D(p->level--);
5199 return NULL;
5200 }
5201 int _start_lineno = p->tokens[_mark]->lineno;
5202 UNUSED(_start_lineno); // Only used by EXTRA macro
5203 int _start_col_offset = p->tokens[_mark]->col_offset;
5204 UNUSED(_start_col_offset); // Only used by EXTRA macro
5205 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5206 if (p->error_indicator) {
5207 D(p->level--);
5208 return NULL;
5209 }
5210 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5211 expr_ty _keyword;
5212 Token * _literal;
5213 asdl_match_case_seq* cases;
5214 Token * dedent_var;
5215 Token * indent_var;
5216 Token * newline_var;
5217 expr_ty subject;
5218 if (
5219 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5220 &&
5221 (subject = subject_expr_rule(p)) // subject_expr
5222 &&
5223 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5224 &&
5225 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5226 &&
5227 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5228 &&
5229 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5230 &&
5231 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5232 )
5233 {
5234 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5235 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5236 if (_token == NULL) {
5237 D(p->level--);
5238 return NULL;
5239 }
5240 int _end_lineno = _token->end_lineno;
5241 UNUSED(_end_lineno); // Only used by EXTRA macro
5242 int _end_col_offset = _token->end_col_offset;
5243 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005244 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005245 if (_res == NULL && PyErr_Occurred()) {
5246 p->error_indicator = 1;
5247 D(p->level--);
5248 return NULL;
5249 }
5250 goto done;
5251 }
5252 p->mark = _mark;
5253 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5255 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005256 if (p->call_invalid_rules) { // invalid_match_stmt
5257 if (p->error_indicator) {
5258 D(p->level--);
5259 return NULL;
5260 }
5261 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5262 void *invalid_match_stmt_var;
5263 if (
5264 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5265 )
5266 {
5267 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5268 _res = invalid_match_stmt_var;
5269 goto done;
5270 }
5271 p->mark = _mark;
5272 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5274 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005275 _res = NULL;
5276 done:
5277 D(p->level--);
5278 return _res;
5279}
5280
5281// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5282static expr_ty
5283subject_expr_rule(Parser *p)
5284{
5285 D(p->level++);
5286 if (p->error_indicator) {
5287 D(p->level--);
5288 return NULL;
5289 }
5290 expr_ty _res = NULL;
5291 int _mark = p->mark;
5292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5293 p->error_indicator = 1;
5294 D(p->level--);
5295 return NULL;
5296 }
5297 int _start_lineno = p->tokens[_mark]->lineno;
5298 UNUSED(_start_lineno); // Only used by EXTRA macro
5299 int _start_col_offset = p->tokens[_mark]->col_offset;
5300 UNUSED(_start_col_offset); // Only used by EXTRA macro
5301 { // star_named_expression ',' star_named_expressions?
5302 if (p->error_indicator) {
5303 D(p->level--);
5304 return NULL;
5305 }
5306 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5307 Token * _literal;
5308 expr_ty value;
5309 void *values;
5310 if (
5311 (value = star_named_expression_rule(p)) // star_named_expression
5312 &&
5313 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5314 &&
5315 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5316 )
5317 {
5318 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5319 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5320 if (_token == NULL) {
5321 D(p->level--);
5322 return NULL;
5323 }
5324 int _end_lineno = _token->end_lineno;
5325 UNUSED(_end_lineno); // Only used by EXTRA macro
5326 int _end_col_offset = _token->end_col_offset;
5327 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005328 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005329 if (_res == NULL && PyErr_Occurred()) {
5330 p->error_indicator = 1;
5331 D(p->level--);
5332 return NULL;
5333 }
5334 goto done;
5335 }
5336 p->mark = _mark;
5337 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5339 }
5340 { // named_expression
5341 if (p->error_indicator) {
5342 D(p->level--);
5343 return NULL;
5344 }
5345 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5346 expr_ty named_expression_var;
5347 if (
5348 (named_expression_var = named_expression_rule(p)) // named_expression
5349 )
5350 {
5351 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5352 _res = named_expression_var;
5353 goto done;
5354 }
5355 p->mark = _mark;
5356 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5358 }
5359 _res = NULL;
5360 done:
5361 D(p->level--);
5362 return _res;
5363}
5364
Pablo Galindo56c95df2021-04-21 15:28:21 +01005365// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005366static match_case_ty
5367case_block_rule(Parser *p)
5368{
5369 D(p->level++);
5370 if (p->error_indicator) {
5371 D(p->level--);
5372 return NULL;
5373 }
5374 match_case_ty _res = NULL;
5375 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005376 if (p->call_invalid_rules) { // invalid_case_block
5377 if (p->error_indicator) {
5378 D(p->level--);
5379 return NULL;
5380 }
5381 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5382 void *invalid_case_block_var;
5383 if (
5384 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5385 )
5386 {
5387 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5388 _res = invalid_case_block_var;
5389 goto done;
5390 }
5391 p->mark = _mark;
5392 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5394 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005395 { // "case" patterns guard? ':' block
5396 if (p->error_indicator) {
5397 D(p->level--);
5398 return NULL;
5399 }
5400 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5401 expr_ty _keyword;
5402 Token * _literal;
5403 asdl_stmt_seq* body;
5404 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005405 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005406 if (
5407 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5408 &&
5409 (pattern = patterns_rule(p)) // patterns
5410 &&
5411 (guard = guard_rule(p), 1) // guard?
5412 &&
5413 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5414 &&
5415 (body = block_rule(p)) // block
5416 )
5417 {
5418 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 +02005419 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005420 if (_res == NULL && PyErr_Occurred()) {
5421 p->error_indicator = 1;
5422 D(p->level--);
5423 return NULL;
5424 }
5425 goto done;
5426 }
5427 p->mark = _mark;
5428 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5430 }
5431 _res = NULL;
5432 done:
5433 D(p->level--);
5434 return _res;
5435}
5436
5437// guard: 'if' named_expression
5438static expr_ty
5439guard_rule(Parser *p)
5440{
5441 D(p->level++);
5442 if (p->error_indicator) {
5443 D(p->level--);
5444 return NULL;
5445 }
5446 expr_ty _res = NULL;
5447 int _mark = p->mark;
5448 { // 'if' named_expression
5449 if (p->error_indicator) {
5450 D(p->level--);
5451 return NULL;
5452 }
5453 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5454 Token * _keyword;
5455 expr_ty guard;
5456 if (
5457 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5458 &&
5459 (guard = named_expression_rule(p)) // named_expression
5460 )
5461 {
5462 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5463 _res = guard;
5464 if (_res == NULL && PyErr_Occurred()) {
5465 p->error_indicator = 1;
5466 D(p->level--);
5467 return NULL;
5468 }
5469 goto done;
5470 }
5471 p->mark = _mark;
5472 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5474 }
5475 _res = NULL;
5476 done:
5477 D(p->level--);
5478 return _res;
5479}
5480
5481// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005482static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005483patterns_rule(Parser *p)
5484{
5485 D(p->level++);
5486 if (p->error_indicator) {
5487 D(p->level--);
5488 return NULL;
5489 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005490 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005491 int _mark = p->mark;
5492 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5493 p->error_indicator = 1;
5494 D(p->level--);
5495 return NULL;
5496 }
5497 int _start_lineno = p->tokens[_mark]->lineno;
5498 UNUSED(_start_lineno); // Only used by EXTRA macro
5499 int _start_col_offset = p->tokens[_mark]->col_offset;
5500 UNUSED(_start_col_offset); // Only used by EXTRA macro
5501 { // open_sequence_pattern
5502 if (p->error_indicator) {
5503 D(p->level--);
5504 return NULL;
5505 }
5506 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005507 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005508 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005509 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005510 )
5511 {
5512 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5513 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5514 if (_token == NULL) {
5515 D(p->level--);
5516 return NULL;
5517 }
5518 int _end_lineno = _token->end_lineno;
5519 UNUSED(_end_lineno); // Only used by EXTRA macro
5520 int _end_col_offset = _token->end_col_offset;
5521 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005522 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005523 if (_res == NULL && PyErr_Occurred()) {
5524 p->error_indicator = 1;
5525 D(p->level--);
5526 return NULL;
5527 }
5528 goto done;
5529 }
5530 p->mark = _mark;
5531 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5533 }
5534 { // pattern
5535 if (p->error_indicator) {
5536 D(p->level--);
5537 return NULL;
5538 }
5539 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005540 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005541 if (
5542 (pattern_var = pattern_rule(p)) // pattern
5543 )
5544 {
5545 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5546 _res = pattern_var;
5547 goto done;
5548 }
5549 p->mark = _mark;
5550 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5552 }
5553 _res = NULL;
5554 done:
5555 D(p->level--);
5556 return _res;
5557}
5558
5559// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005560static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005561pattern_rule(Parser *p)
5562{
5563 D(p->level++);
5564 if (p->error_indicator) {
5565 D(p->level--);
5566 return NULL;
5567 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005568 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005569 int _mark = p->mark;
5570 { // as_pattern
5571 if (p->error_indicator) {
5572 D(p->level--);
5573 return NULL;
5574 }
5575 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005576 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005577 if (
5578 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5579 )
5580 {
5581 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5582 _res = as_pattern_var;
5583 goto done;
5584 }
5585 p->mark = _mark;
5586 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5588 }
5589 { // or_pattern
5590 if (p->error_indicator) {
5591 D(p->level--);
5592 return NULL;
5593 }
5594 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005595 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005596 if (
5597 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5598 )
5599 {
5600 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5601 _res = or_pattern_var;
5602 goto done;
5603 }
5604 p->mark = _mark;
5605 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5607 }
5608 _res = NULL;
5609 done:
5610 D(p->level--);
5611 return _res;
5612}
5613
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005614// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005615static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005616as_pattern_rule(Parser *p)
5617{
5618 D(p->level++);
5619 if (p->error_indicator) {
5620 D(p->level--);
5621 return NULL;
5622 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005623 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005624 int _mark = p->mark;
5625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5626 p->error_indicator = 1;
5627 D(p->level--);
5628 return NULL;
5629 }
5630 int _start_lineno = p->tokens[_mark]->lineno;
5631 UNUSED(_start_lineno); // Only used by EXTRA macro
5632 int _start_col_offset = p->tokens[_mark]->col_offset;
5633 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005634 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005635 if (p->error_indicator) {
5636 D(p->level--);
5637 return NULL;
5638 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005639 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 -08005640 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005641 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005642 expr_ty target;
5643 if (
5644 (pattern = or_pattern_rule(p)) // or_pattern
5645 &&
5646 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5647 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005648 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005649 )
5650 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005651 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 -08005652 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5653 if (_token == NULL) {
5654 D(p->level--);
5655 return NULL;
5656 }
5657 int _end_lineno = _token->end_lineno;
5658 UNUSED(_end_lineno); // Only used by EXTRA macro
5659 int _end_col_offset = _token->end_col_offset;
5660 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005661 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005662 if (_res == NULL && PyErr_Occurred()) {
5663 p->error_indicator = 1;
5664 D(p->level--);
5665 return NULL;
5666 }
5667 goto done;
5668 }
5669 p->mark = _mark;
5670 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005672 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005673 if (p->call_invalid_rules) { // invalid_as_pattern
5674 if (p->error_indicator) {
5675 D(p->level--);
5676 return NULL;
5677 }
5678 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5679 void *invalid_as_pattern_var;
5680 if (
5681 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5682 )
5683 {
5684 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5685 _res = invalid_as_pattern_var;
5686 goto done;
5687 }
5688 p->mark = _mark;
5689 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5691 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005692 _res = NULL;
5693 done:
5694 D(p->level--);
5695 return _res;
5696}
5697
5698// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005699static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005700or_pattern_rule(Parser *p)
5701{
5702 D(p->level++);
5703 if (p->error_indicator) {
5704 D(p->level--);
5705 return NULL;
5706 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005707 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005708 int _mark = p->mark;
5709 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5710 p->error_indicator = 1;
5711 D(p->level--);
5712 return NULL;
5713 }
5714 int _start_lineno = p->tokens[_mark]->lineno;
5715 UNUSED(_start_lineno); // Only used by EXTRA macro
5716 int _start_col_offset = p->tokens[_mark]->col_offset;
5717 UNUSED(_start_col_offset); // Only used by EXTRA macro
5718 { // '|'.closed_pattern+
5719 if (p->error_indicator) {
5720 D(p->level--);
5721 return NULL;
5722 }
5723 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005724 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005725 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005726 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005727 )
5728 {
5729 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5730 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5731 if (_token == NULL) {
5732 D(p->level--);
5733 return NULL;
5734 }
5735 int _end_lineno = _token->end_lineno;
5736 UNUSED(_end_lineno); // Only used by EXTRA macro
5737 int _end_col_offset = _token->end_col_offset;
5738 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005739 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005740 if (_res == NULL && PyErr_Occurred()) {
5741 p->error_indicator = 1;
5742 D(p->level--);
5743 return NULL;
5744 }
5745 goto done;
5746 }
5747 p->mark = _mark;
5748 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5750 }
5751 _res = NULL;
5752 done:
5753 D(p->level--);
5754 return _res;
5755}
5756
5757// closed_pattern:
5758// | literal_pattern
5759// | capture_pattern
5760// | wildcard_pattern
5761// | value_pattern
5762// | group_pattern
5763// | sequence_pattern
5764// | mapping_pattern
5765// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005766static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005767closed_pattern_rule(Parser *p)
5768{
5769 D(p->level++);
5770 if (p->error_indicator) {
5771 D(p->level--);
5772 return NULL;
5773 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005774 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005775 int _mark = p->mark;
5776 { // literal_pattern
5777 if (p->error_indicator) {
5778 D(p->level--);
5779 return NULL;
5780 }
5781 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005782 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005783 if (
5784 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5785 )
5786 {
5787 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5788 _res = literal_pattern_var;
5789 goto done;
5790 }
5791 p->mark = _mark;
5792 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5794 }
5795 { // capture_pattern
5796 if (p->error_indicator) {
5797 D(p->level--);
5798 return NULL;
5799 }
5800 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005801 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005802 if (
5803 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5804 )
5805 {
5806 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5807 _res = capture_pattern_var;
5808 goto done;
5809 }
5810 p->mark = _mark;
5811 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5813 }
5814 { // wildcard_pattern
5815 if (p->error_indicator) {
5816 D(p->level--);
5817 return NULL;
5818 }
5819 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005820 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005821 if (
5822 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5823 )
5824 {
5825 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5826 _res = wildcard_pattern_var;
5827 goto done;
5828 }
5829 p->mark = _mark;
5830 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5832 }
5833 { // value_pattern
5834 if (p->error_indicator) {
5835 D(p->level--);
5836 return NULL;
5837 }
5838 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005839 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005840 if (
5841 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5842 )
5843 {
5844 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5845 _res = value_pattern_var;
5846 goto done;
5847 }
5848 p->mark = _mark;
5849 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5851 }
5852 { // group_pattern
5853 if (p->error_indicator) {
5854 D(p->level--);
5855 return NULL;
5856 }
5857 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005858 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005859 if (
5860 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5861 )
5862 {
5863 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5864 _res = group_pattern_var;
5865 goto done;
5866 }
5867 p->mark = _mark;
5868 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5870 }
5871 { // sequence_pattern
5872 if (p->error_indicator) {
5873 D(p->level--);
5874 return NULL;
5875 }
5876 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005877 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005878 if (
5879 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5880 )
5881 {
5882 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5883 _res = sequence_pattern_var;
5884 goto done;
5885 }
5886 p->mark = _mark;
5887 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5889 }
5890 { // mapping_pattern
5891 if (p->error_indicator) {
5892 D(p->level--);
5893 return NULL;
5894 }
5895 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005896 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005897 if (
5898 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5899 )
5900 {
5901 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5902 _res = mapping_pattern_var;
5903 goto done;
5904 }
5905 p->mark = _mark;
5906 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5908 }
5909 { // class_pattern
5910 if (p->error_indicator) {
5911 D(p->level--);
5912 return NULL;
5913 }
5914 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005915 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005916 if (
5917 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5918 )
5919 {
5920 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5921 _res = class_pattern_var;
5922 goto done;
5923 }
5924 p->mark = _mark;
5925 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5927 }
5928 _res = NULL;
5929 done:
5930 D(p->level--);
5931 return _res;
5932}
5933
5934// literal_pattern:
5935// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005936// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005937// | strings
5938// | 'None'
5939// | 'True'
5940// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005941static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005942literal_pattern_rule(Parser *p)
5943{
5944 D(p->level++);
5945 if (p->error_indicator) {
5946 D(p->level--);
5947 return NULL;
5948 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005949 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005950 int _mark = p->mark;
5951 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5952 p->error_indicator = 1;
5953 D(p->level--);
5954 return NULL;
5955 }
5956 int _start_lineno = p->tokens[_mark]->lineno;
5957 UNUSED(_start_lineno); // Only used by EXTRA macro
5958 int _start_col_offset = p->tokens[_mark]->col_offset;
5959 UNUSED(_start_col_offset); // Only used by EXTRA macro
5960 { // signed_number !('+' | '-')
5961 if (p->error_indicator) {
5962 D(p->level--);
5963 return NULL;
5964 }
5965 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005966 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005968 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005969 &&
5970 _PyPegen_lookahead(0, _tmp_53_rule, p)
5971 )
5972 {
5973 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 +10005974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5975 if (_token == NULL) {
5976 D(p->level--);
5977 return NULL;
5978 }
5979 int _end_lineno = _token->end_lineno;
5980 UNUSED(_end_lineno); // Only used by EXTRA macro
5981 int _end_col_offset = _token->end_col_offset;
5982 UNUSED(_end_col_offset); // Only used by EXTRA macro
5983 _res = _PyAST_MatchValue ( value , EXTRA );
5984 if (_res == NULL && PyErr_Occurred()) {
5985 p->error_indicator = 1;
5986 D(p->level--);
5987 return NULL;
5988 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005989 goto done;
5990 }
5991 p->mark = _mark;
5992 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5994 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005995 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005996 if (p->error_indicator) {
5997 D(p->level--);
5998 return NULL;
5999 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006000 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6001 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006002 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006003 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006004 )
6005 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006006 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 -08006007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6008 if (_token == NULL) {
6009 D(p->level--);
6010 return NULL;
6011 }
6012 int _end_lineno = _token->end_lineno;
6013 UNUSED(_end_lineno); // Only used by EXTRA macro
6014 int _end_col_offset = _token->end_col_offset;
6015 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006016 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006017 if (_res == NULL && PyErr_Occurred()) {
6018 p->error_indicator = 1;
6019 D(p->level--);
6020 return NULL;
6021 }
6022 goto done;
6023 }
6024 p->mark = _mark;
6025 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006027 }
6028 { // strings
6029 if (p->error_indicator) {
6030 D(p->level--);
6031 return NULL;
6032 }
6033 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006034 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006035 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006036 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006037 )
6038 {
6039 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6041 if (_token == NULL) {
6042 D(p->level--);
6043 return NULL;
6044 }
6045 int _end_lineno = _token->end_lineno;
6046 UNUSED(_end_lineno); // Only used by EXTRA macro
6047 int _end_col_offset = _token->end_col_offset;
6048 UNUSED(_end_col_offset); // Only used by EXTRA macro
6049 _res = _PyAST_MatchValue ( value , EXTRA );
6050 if (_res == NULL && PyErr_Occurred()) {
6051 p->error_indicator = 1;
6052 D(p->level--);
6053 return NULL;
6054 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006055 goto done;
6056 }
6057 p->mark = _mark;
6058 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6060 }
6061 { // 'None'
6062 if (p->error_indicator) {
6063 D(p->level--);
6064 return NULL;
6065 }
6066 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6067 Token * _keyword;
6068 if (
6069 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6070 )
6071 {
6072 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6073 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6074 if (_token == NULL) {
6075 D(p->level--);
6076 return NULL;
6077 }
6078 int _end_lineno = _token->end_lineno;
6079 UNUSED(_end_lineno); // Only used by EXTRA macro
6080 int _end_col_offset = _token->end_col_offset;
6081 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006082 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006083 if (_res == NULL && PyErr_Occurred()) {
6084 p->error_indicator = 1;
6085 D(p->level--);
6086 return NULL;
6087 }
6088 goto done;
6089 }
6090 p->mark = _mark;
6091 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6093 }
6094 { // 'True'
6095 if (p->error_indicator) {
6096 D(p->level--);
6097 return NULL;
6098 }
6099 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6100 Token * _keyword;
6101 if (
6102 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6103 )
6104 {
6105 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6107 if (_token == NULL) {
6108 D(p->level--);
6109 return NULL;
6110 }
6111 int _end_lineno = _token->end_lineno;
6112 UNUSED(_end_lineno); // Only used by EXTRA macro
6113 int _end_col_offset = _token->end_col_offset;
6114 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006115 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006116 if (_res == NULL && PyErr_Occurred()) {
6117 p->error_indicator = 1;
6118 D(p->level--);
6119 return NULL;
6120 }
6121 goto done;
6122 }
6123 p->mark = _mark;
6124 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6126 }
6127 { // 'False'
6128 if (p->error_indicator) {
6129 D(p->level--);
6130 return NULL;
6131 }
6132 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6133 Token * _keyword;
6134 if (
6135 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6136 )
6137 {
6138 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6140 if (_token == NULL) {
6141 D(p->level--);
6142 return NULL;
6143 }
6144 int _end_lineno = _token->end_lineno;
6145 UNUSED(_end_lineno); // Only used by EXTRA macro
6146 int _end_col_offset = _token->end_col_offset;
6147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006148 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006149 if (_res == NULL && PyErr_Occurred()) {
6150 p->error_indicator = 1;
6151 D(p->level--);
6152 return NULL;
6153 }
6154 goto done;
6155 }
6156 p->mark = _mark;
6157 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6159 }
6160 _res = NULL;
6161 done:
6162 D(p->level--);
6163 return _res;
6164}
6165
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006166// literal_expr:
6167// | signed_number !('+' | '-')
6168// | complex_number
6169// | strings
6170// | 'None'
6171// | 'True'
6172// | 'False'
6173static expr_ty
6174literal_expr_rule(Parser *p)
6175{
6176 D(p->level++);
6177 if (p->error_indicator) {
6178 D(p->level--);
6179 return NULL;
6180 }
6181 expr_ty _res = NULL;
6182 int _mark = p->mark;
6183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6184 p->error_indicator = 1;
6185 D(p->level--);
6186 return NULL;
6187 }
6188 int _start_lineno = p->tokens[_mark]->lineno;
6189 UNUSED(_start_lineno); // Only used by EXTRA macro
6190 int _start_col_offset = p->tokens[_mark]->col_offset;
6191 UNUSED(_start_col_offset); // Only used by EXTRA macro
6192 { // signed_number !('+' | '-')
6193 if (p->error_indicator) {
6194 D(p->level--);
6195 return NULL;
6196 }
6197 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6198 expr_ty signed_number_var;
6199 if (
6200 (signed_number_var = signed_number_rule(p)) // signed_number
6201 &&
6202 _PyPegen_lookahead(0, _tmp_54_rule, p)
6203 )
6204 {
6205 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6206 _res = signed_number_var;
6207 goto done;
6208 }
6209 p->mark = _mark;
6210 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6212 }
6213 { // complex_number
6214 if (p->error_indicator) {
6215 D(p->level--);
6216 return NULL;
6217 }
6218 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6219 expr_ty complex_number_var;
6220 if (
6221 (complex_number_var = complex_number_rule(p)) // complex_number
6222 )
6223 {
6224 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6225 _res = complex_number_var;
6226 goto done;
6227 }
6228 p->mark = _mark;
6229 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6231 }
6232 { // strings
6233 if (p->error_indicator) {
6234 D(p->level--);
6235 return NULL;
6236 }
6237 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6238 expr_ty strings_var;
6239 if (
6240 (strings_var = strings_rule(p)) // strings
6241 )
6242 {
6243 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6244 _res = strings_var;
6245 goto done;
6246 }
6247 p->mark = _mark;
6248 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6250 }
6251 { // 'None'
6252 if (p->error_indicator) {
6253 D(p->level--);
6254 return NULL;
6255 }
6256 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6257 Token * _keyword;
6258 if (
6259 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6260 )
6261 {
6262 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6263 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6264 if (_token == NULL) {
6265 D(p->level--);
6266 return NULL;
6267 }
6268 int _end_lineno = _token->end_lineno;
6269 UNUSED(_end_lineno); // Only used by EXTRA macro
6270 int _end_col_offset = _token->end_col_offset;
6271 UNUSED(_end_col_offset); // Only used by EXTRA macro
6272 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6273 if (_res == NULL && PyErr_Occurred()) {
6274 p->error_indicator = 1;
6275 D(p->level--);
6276 return NULL;
6277 }
6278 goto done;
6279 }
6280 p->mark = _mark;
6281 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6283 }
6284 { // 'True'
6285 if (p->error_indicator) {
6286 D(p->level--);
6287 return NULL;
6288 }
6289 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6290 Token * _keyword;
6291 if (
6292 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6293 )
6294 {
6295 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6296 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6297 if (_token == NULL) {
6298 D(p->level--);
6299 return NULL;
6300 }
6301 int _end_lineno = _token->end_lineno;
6302 UNUSED(_end_lineno); // Only used by EXTRA macro
6303 int _end_col_offset = _token->end_col_offset;
6304 UNUSED(_end_col_offset); // Only used by EXTRA macro
6305 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6306 if (_res == NULL && PyErr_Occurred()) {
6307 p->error_indicator = 1;
6308 D(p->level--);
6309 return NULL;
6310 }
6311 goto done;
6312 }
6313 p->mark = _mark;
6314 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6316 }
6317 { // 'False'
6318 if (p->error_indicator) {
6319 D(p->level--);
6320 return NULL;
6321 }
6322 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6323 Token * _keyword;
6324 if (
6325 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6326 )
6327 {
6328 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6330 if (_token == NULL) {
6331 D(p->level--);
6332 return NULL;
6333 }
6334 int _end_lineno = _token->end_lineno;
6335 UNUSED(_end_lineno); // Only used by EXTRA macro
6336 int _end_col_offset = _token->end_col_offset;
6337 UNUSED(_end_col_offset); // Only used by EXTRA macro
6338 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6339 if (_res == NULL && PyErr_Occurred()) {
6340 p->error_indicator = 1;
6341 D(p->level--);
6342 return NULL;
6343 }
6344 goto done;
6345 }
6346 p->mark = _mark;
6347 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6349 }
6350 _res = NULL;
6351 done:
6352 D(p->level--);
6353 return _res;
6354}
6355
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006356// complex_number:
6357// | signed_real_number '+' imaginary_number
6358// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006359static expr_ty
6360complex_number_rule(Parser *p)
6361{
6362 D(p->level++);
6363 if (p->error_indicator) {
6364 D(p->level--);
6365 return NULL;
6366 }
6367 expr_ty _res = NULL;
6368 int _mark = p->mark;
6369 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6370 p->error_indicator = 1;
6371 D(p->level--);
6372 return NULL;
6373 }
6374 int _start_lineno = p->tokens[_mark]->lineno;
6375 UNUSED(_start_lineno); // Only used by EXTRA macro
6376 int _start_col_offset = p->tokens[_mark]->col_offset;
6377 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006378 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006379 if (p->error_indicator) {
6380 D(p->level--);
6381 return NULL;
6382 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006383 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006384 Token * _literal;
6385 expr_ty imag;
6386 expr_ty real;
6387 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006388 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006389 &&
6390 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6391 &&
6392 (imag = imaginary_number_rule(p)) // imaginary_number
6393 )
6394 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006395 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006396 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6397 if (_token == NULL) {
6398 D(p->level--);
6399 return NULL;
6400 }
6401 int _end_lineno = _token->end_lineno;
6402 UNUSED(_end_lineno); // Only used by EXTRA macro
6403 int _end_col_offset = _token->end_col_offset;
6404 UNUSED(_end_col_offset); // Only used by EXTRA macro
6405 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6406 if (_res == NULL && PyErr_Occurred()) {
6407 p->error_indicator = 1;
6408 D(p->level--);
6409 return NULL;
6410 }
6411 goto done;
6412 }
6413 p->mark = _mark;
6414 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006416 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006417 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006418 if (p->error_indicator) {
6419 D(p->level--);
6420 return NULL;
6421 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006422 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006423 Token * _literal;
6424 expr_ty imag;
6425 expr_ty real;
6426 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006427 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006428 &&
6429 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6430 &&
6431 (imag = imaginary_number_rule(p)) // imaginary_number
6432 )
6433 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006434 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6436 if (_token == NULL) {
6437 D(p->level--);
6438 return NULL;
6439 }
6440 int _end_lineno = _token->end_lineno;
6441 UNUSED(_end_lineno); // Only used by EXTRA macro
6442 int _end_col_offset = _token->end_col_offset;
6443 UNUSED(_end_col_offset); // Only used by EXTRA macro
6444 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6445 if (_res == NULL && PyErr_Occurred()) {
6446 p->error_indicator = 1;
6447 D(p->level--);
6448 return NULL;
6449 }
6450 goto done;
6451 }
6452 p->mark = _mark;
6453 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006455 }
6456 _res = NULL;
6457 done:
6458 D(p->level--);
6459 return _res;
6460}
6461
Brandt Bucher145bf262021-02-26 14:51:55 -08006462// signed_number: NUMBER | '-' NUMBER
6463static expr_ty
6464signed_number_rule(Parser *p)
6465{
6466 D(p->level++);
6467 if (p->error_indicator) {
6468 D(p->level--);
6469 return NULL;
6470 }
6471 expr_ty _res = NULL;
6472 int _mark = p->mark;
6473 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6474 p->error_indicator = 1;
6475 D(p->level--);
6476 return NULL;
6477 }
6478 int _start_lineno = p->tokens[_mark]->lineno;
6479 UNUSED(_start_lineno); // Only used by EXTRA macro
6480 int _start_col_offset = p->tokens[_mark]->col_offset;
6481 UNUSED(_start_col_offset); // Only used by EXTRA macro
6482 { // NUMBER
6483 if (p->error_indicator) {
6484 D(p->level--);
6485 return NULL;
6486 }
6487 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6488 expr_ty number_var;
6489 if (
6490 (number_var = _PyPegen_number_token(p)) // NUMBER
6491 )
6492 {
6493 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6494 _res = number_var;
6495 goto done;
6496 }
6497 p->mark = _mark;
6498 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6500 }
6501 { // '-' NUMBER
6502 if (p->error_indicator) {
6503 D(p->level--);
6504 return NULL;
6505 }
6506 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6507 Token * _literal;
6508 expr_ty number;
6509 if (
6510 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6511 &&
6512 (number = _PyPegen_number_token(p)) // NUMBER
6513 )
6514 {
6515 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6516 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6517 if (_token == NULL) {
6518 D(p->level--);
6519 return NULL;
6520 }
6521 int _end_lineno = _token->end_lineno;
6522 UNUSED(_end_lineno); // Only used by EXTRA macro
6523 int _end_col_offset = _token->end_col_offset;
6524 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006525 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006526 if (_res == NULL && PyErr_Occurred()) {
6527 p->error_indicator = 1;
6528 D(p->level--);
6529 return NULL;
6530 }
6531 goto done;
6532 }
6533 p->mark = _mark;
6534 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6536 }
6537 _res = NULL;
6538 done:
6539 D(p->level--);
6540 return _res;
6541}
6542
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006543// signed_real_number: real_number | '-' real_number
6544static expr_ty
6545signed_real_number_rule(Parser *p)
6546{
6547 D(p->level++);
6548 if (p->error_indicator) {
6549 D(p->level--);
6550 return NULL;
6551 }
6552 expr_ty _res = NULL;
6553 int _mark = p->mark;
6554 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6555 p->error_indicator = 1;
6556 D(p->level--);
6557 return NULL;
6558 }
6559 int _start_lineno = p->tokens[_mark]->lineno;
6560 UNUSED(_start_lineno); // Only used by EXTRA macro
6561 int _start_col_offset = p->tokens[_mark]->col_offset;
6562 UNUSED(_start_col_offset); // Only used by EXTRA macro
6563 { // real_number
6564 if (p->error_indicator) {
6565 D(p->level--);
6566 return NULL;
6567 }
6568 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6569 expr_ty real_number_var;
6570 if (
6571 (real_number_var = real_number_rule(p)) // real_number
6572 )
6573 {
6574 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6575 _res = real_number_var;
6576 goto done;
6577 }
6578 p->mark = _mark;
6579 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6581 }
6582 { // '-' real_number
6583 if (p->error_indicator) {
6584 D(p->level--);
6585 return NULL;
6586 }
6587 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6588 Token * _literal;
6589 expr_ty real;
6590 if (
6591 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6592 &&
6593 (real = real_number_rule(p)) // real_number
6594 )
6595 {
6596 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6598 if (_token == NULL) {
6599 D(p->level--);
6600 return NULL;
6601 }
6602 int _end_lineno = _token->end_lineno;
6603 UNUSED(_end_lineno); // Only used by EXTRA macro
6604 int _end_col_offset = _token->end_col_offset;
6605 UNUSED(_end_col_offset); // Only used by EXTRA macro
6606 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6607 if (_res == NULL && PyErr_Occurred()) {
6608 p->error_indicator = 1;
6609 D(p->level--);
6610 return NULL;
6611 }
6612 goto done;
6613 }
6614 p->mark = _mark;
6615 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6617 }
6618 _res = NULL;
6619 done:
6620 D(p->level--);
6621 return _res;
6622}
6623
6624// real_number: NUMBER
6625static expr_ty
6626real_number_rule(Parser *p)
6627{
6628 D(p->level++);
6629 if (p->error_indicator) {
6630 D(p->level--);
6631 return NULL;
6632 }
6633 expr_ty _res = NULL;
6634 int _mark = p->mark;
6635 { // NUMBER
6636 if (p->error_indicator) {
6637 D(p->level--);
6638 return NULL;
6639 }
6640 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6641 expr_ty real;
6642 if (
6643 (real = _PyPegen_number_token(p)) // NUMBER
6644 )
6645 {
6646 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6647 _res = _PyPegen_ensure_real ( p , real );
6648 if (_res == NULL && PyErr_Occurred()) {
6649 p->error_indicator = 1;
6650 D(p->level--);
6651 return NULL;
6652 }
6653 goto done;
6654 }
6655 p->mark = _mark;
6656 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6658 }
6659 _res = NULL;
6660 done:
6661 D(p->level--);
6662 return _res;
6663}
6664
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006665// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006666static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006667imaginary_number_rule(Parser *p)
6668{
6669 D(p->level++);
6670 if (p->error_indicator) {
6671 D(p->level--);
6672 return NULL;
6673 }
6674 expr_ty _res = NULL;
6675 int _mark = p->mark;
6676 { // NUMBER
6677 if (p->error_indicator) {
6678 D(p->level--);
6679 return NULL;
6680 }
6681 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6682 expr_ty imag;
6683 if (
6684 (imag = _PyPegen_number_token(p)) // NUMBER
6685 )
6686 {
6687 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6688 _res = _PyPegen_ensure_imaginary ( p , imag );
6689 if (_res == NULL && PyErr_Occurred()) {
6690 p->error_indicator = 1;
6691 D(p->level--);
6692 return NULL;
6693 }
6694 goto done;
6695 }
6696 p->mark = _mark;
6697 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6699 }
6700 _res = NULL;
6701 done:
6702 D(p->level--);
6703 return _res;
6704}
6705
6706// capture_pattern: pattern_capture_target
6707static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006708capture_pattern_rule(Parser *p)
6709{
6710 D(p->level++);
6711 if (p->error_indicator) {
6712 D(p->level--);
6713 return NULL;
6714 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006715 pattern_ty _res = NULL;
6716 int _mark = p->mark;
6717 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6718 p->error_indicator = 1;
6719 D(p->level--);
6720 return NULL;
6721 }
6722 int _start_lineno = p->tokens[_mark]->lineno;
6723 UNUSED(_start_lineno); // Only used by EXTRA macro
6724 int _start_col_offset = p->tokens[_mark]->col_offset;
6725 UNUSED(_start_col_offset); // Only used by EXTRA macro
6726 { // pattern_capture_target
6727 if (p->error_indicator) {
6728 D(p->level--);
6729 return NULL;
6730 }
6731 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6732 expr_ty target;
6733 if (
6734 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6735 )
6736 {
6737 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6738 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6739 if (_token == NULL) {
6740 D(p->level--);
6741 return NULL;
6742 }
6743 int _end_lineno = _token->end_lineno;
6744 UNUSED(_end_lineno); // Only used by EXTRA macro
6745 int _end_col_offset = _token->end_col_offset;
6746 UNUSED(_end_col_offset); // Only used by EXTRA macro
6747 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6748 if (_res == NULL && PyErr_Occurred()) {
6749 p->error_indicator = 1;
6750 D(p->level--);
6751 return NULL;
6752 }
6753 goto done;
6754 }
6755 p->mark = _mark;
6756 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6758 }
6759 _res = NULL;
6760 done:
6761 D(p->level--);
6762 return _res;
6763}
6764
6765// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6766static expr_ty
6767pattern_capture_target_rule(Parser *p)
6768{
6769 D(p->level++);
6770 if (p->error_indicator) {
6771 D(p->level--);
6772 return NULL;
6773 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006774 expr_ty _res = NULL;
6775 int _mark = p->mark;
6776 { // !"_" NAME !('.' | '(' | '=')
6777 if (p->error_indicator) {
6778 D(p->level--);
6779 return NULL;
6780 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006781 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006782 expr_ty name;
6783 if (
6784 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6785 &&
6786 (name = _PyPegen_name_token(p)) // NAME
6787 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006788 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006789 )
6790 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006791 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 -08006792 _res = _PyPegen_set_expr_context ( p , name , Store );
6793 if (_res == NULL && PyErr_Occurred()) {
6794 p->error_indicator = 1;
6795 D(p->level--);
6796 return NULL;
6797 }
6798 goto done;
6799 }
6800 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006801 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6803 }
6804 _res = NULL;
6805 done:
6806 D(p->level--);
6807 return _res;
6808}
6809
6810// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006811static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006812wildcard_pattern_rule(Parser *p)
6813{
6814 D(p->level++);
6815 if (p->error_indicator) {
6816 D(p->level--);
6817 return NULL;
6818 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006819 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006820 int _mark = p->mark;
6821 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6822 p->error_indicator = 1;
6823 D(p->level--);
6824 return NULL;
6825 }
6826 int _start_lineno = p->tokens[_mark]->lineno;
6827 UNUSED(_start_lineno); // Only used by EXTRA macro
6828 int _start_col_offset = p->tokens[_mark]->col_offset;
6829 UNUSED(_start_col_offset); // Only used by EXTRA macro
6830 { // "_"
6831 if (p->error_indicator) {
6832 D(p->level--);
6833 return NULL;
6834 }
6835 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6836 expr_ty _keyword;
6837 if (
6838 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6839 )
6840 {
6841 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6843 if (_token == NULL) {
6844 D(p->level--);
6845 return NULL;
6846 }
6847 int _end_lineno = _token->end_lineno;
6848 UNUSED(_end_lineno); // Only used by EXTRA macro
6849 int _end_col_offset = _token->end_col_offset;
6850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006851 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006852 if (_res == NULL && PyErr_Occurred()) {
6853 p->error_indicator = 1;
6854 D(p->level--);
6855 return NULL;
6856 }
6857 goto done;
6858 }
6859 p->mark = _mark;
6860 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6862 }
6863 _res = NULL;
6864 done:
6865 D(p->level--);
6866 return _res;
6867}
6868
6869// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006870static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006871value_pattern_rule(Parser *p)
6872{
6873 D(p->level++);
6874 if (p->error_indicator) {
6875 D(p->level--);
6876 return NULL;
6877 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006878 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006879 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006880 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6881 p->error_indicator = 1;
6882 D(p->level--);
6883 return NULL;
6884 }
6885 int _start_lineno = p->tokens[_mark]->lineno;
6886 UNUSED(_start_lineno); // Only used by EXTRA macro
6887 int _start_col_offset = p->tokens[_mark]->col_offset;
6888 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006889 { // attr !('.' | '(' | '=')
6890 if (p->error_indicator) {
6891 D(p->level--);
6892 return NULL;
6893 }
6894 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6895 expr_ty attr;
6896 if (
6897 (attr = attr_rule(p)) // attr
6898 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006899 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006900 )
6901 {
6902 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6904 if (_token == NULL) {
6905 D(p->level--);
6906 return NULL;
6907 }
6908 int _end_lineno = _token->end_lineno;
6909 UNUSED(_end_lineno); // Only used by EXTRA macro
6910 int _end_col_offset = _token->end_col_offset;
6911 UNUSED(_end_col_offset); // Only used by EXTRA macro
6912 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006913 if (_res == NULL && PyErr_Occurred()) {
6914 p->error_indicator = 1;
6915 D(p->level--);
6916 return NULL;
6917 }
6918 goto done;
6919 }
6920 p->mark = _mark;
6921 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6923 }
6924 _res = NULL;
6925 done:
6926 D(p->level--);
6927 return _res;
6928}
6929
6930// Left-recursive
6931// attr: name_or_attr '.' NAME
6932static expr_ty attr_raw(Parser *);
6933static expr_ty
6934attr_rule(Parser *p)
6935{
6936 D(p->level++);
6937 expr_ty _res = NULL;
6938 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6939 D(p->level--);
6940 return _res;
6941 }
6942 int _mark = p->mark;
6943 int _resmark = p->mark;
6944 while (1) {
6945 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6946 if (tmpvar_1) {
6947 D(p->level--);
6948 return _res;
6949 }
6950 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006951 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006952 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006953 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006954 if (p->error_indicator)
6955 return NULL;
6956 if (_raw == NULL || p->mark <= _resmark)
6957 break;
6958 _resmark = p->mark;
6959 _res = _raw;
6960 }
6961 p->mark = _resmark;
6962 D(p->level--);
6963 return _res;
6964}
6965static expr_ty
6966attr_raw(Parser *p)
6967{
6968 D(p->level++);
6969 if (p->error_indicator) {
6970 D(p->level--);
6971 return NULL;
6972 }
6973 expr_ty _res = NULL;
6974 int _mark = p->mark;
6975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6976 p->error_indicator = 1;
6977 D(p->level--);
6978 return NULL;
6979 }
6980 int _start_lineno = p->tokens[_mark]->lineno;
6981 UNUSED(_start_lineno); // Only used by EXTRA macro
6982 int _start_col_offset = p->tokens[_mark]->col_offset;
6983 UNUSED(_start_col_offset); // Only used by EXTRA macro
6984 { // name_or_attr '.' NAME
6985 if (p->error_indicator) {
6986 D(p->level--);
6987 return NULL;
6988 }
6989 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6990 Token * _literal;
6991 expr_ty attr;
6992 expr_ty value;
6993 if (
6994 (value = name_or_attr_rule(p)) // name_or_attr
6995 &&
6996 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6997 &&
6998 (attr = _PyPegen_name_token(p)) // NAME
6999 )
7000 {
7001 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7003 if (_token == NULL) {
7004 D(p->level--);
7005 return NULL;
7006 }
7007 int _end_lineno = _token->end_lineno;
7008 UNUSED(_end_lineno); // Only used by EXTRA macro
7009 int _end_col_offset = _token->end_col_offset;
7010 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007011 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007012 if (_res == NULL && PyErr_Occurred()) {
7013 p->error_indicator = 1;
7014 D(p->level--);
7015 return NULL;
7016 }
7017 goto done;
7018 }
7019 p->mark = _mark;
7020 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7022 }
7023 _res = NULL;
7024 done:
7025 D(p->level--);
7026 return _res;
7027}
7028
7029// Left-recursive
7030// name_or_attr: attr | NAME
7031static expr_ty
7032name_or_attr_rule(Parser *p)
7033{
7034 D(p->level++);
7035 if (p->error_indicator) {
7036 D(p->level--);
7037 return NULL;
7038 }
7039 expr_ty _res = NULL;
7040 int _mark = p->mark;
7041 { // attr
7042 if (p->error_indicator) {
7043 D(p->level--);
7044 return NULL;
7045 }
7046 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7047 expr_ty attr_var;
7048 if (
7049 (attr_var = attr_rule(p)) // attr
7050 )
7051 {
7052 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7053 _res = attr_var;
7054 goto done;
7055 }
7056 p->mark = _mark;
7057 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7059 }
7060 { // NAME
7061 if (p->error_indicator) {
7062 D(p->level--);
7063 return NULL;
7064 }
7065 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7066 expr_ty name_var;
7067 if (
7068 (name_var = _PyPegen_name_token(p)) // NAME
7069 )
7070 {
7071 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7072 _res = name_var;
7073 goto done;
7074 }
7075 p->mark = _mark;
7076 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7078 }
7079 _res = NULL;
7080 done:
7081 D(p->level--);
7082 return _res;
7083}
7084
7085// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007086static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007087group_pattern_rule(Parser *p)
7088{
7089 D(p->level++);
7090 if (p->error_indicator) {
7091 D(p->level--);
7092 return NULL;
7093 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007094 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007095 int _mark = p->mark;
7096 { // '(' pattern ')'
7097 if (p->error_indicator) {
7098 D(p->level--);
7099 return NULL;
7100 }
7101 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7102 Token * _literal;
7103 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007104 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007105 if (
7106 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7107 &&
7108 (pattern = pattern_rule(p)) // pattern
7109 &&
7110 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7111 )
7112 {
7113 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7114 _res = pattern;
7115 if (_res == NULL && PyErr_Occurred()) {
7116 p->error_indicator = 1;
7117 D(p->level--);
7118 return NULL;
7119 }
7120 goto done;
7121 }
7122 p->mark = _mark;
7123 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7125 }
7126 _res = NULL;
7127 done:
7128 D(p->level--);
7129 return _res;
7130}
7131
7132// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007133static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007134sequence_pattern_rule(Parser *p)
7135{
7136 D(p->level++);
7137 if (p->error_indicator) {
7138 D(p->level--);
7139 return NULL;
7140 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007141 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007142 int _mark = p->mark;
7143 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7144 p->error_indicator = 1;
7145 D(p->level--);
7146 return NULL;
7147 }
7148 int _start_lineno = p->tokens[_mark]->lineno;
7149 UNUSED(_start_lineno); // Only used by EXTRA macro
7150 int _start_col_offset = p->tokens[_mark]->col_offset;
7151 UNUSED(_start_col_offset); // Only used by EXTRA macro
7152 { // '[' maybe_sequence_pattern? ']'
7153 if (p->error_indicator) {
7154 D(p->level--);
7155 return NULL;
7156 }
7157 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7158 Token * _literal;
7159 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007160 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007161 if (
7162 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7163 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007164 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007165 &&
7166 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7167 )
7168 {
7169 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7170 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7171 if (_token == NULL) {
7172 D(p->level--);
7173 return NULL;
7174 }
7175 int _end_lineno = _token->end_lineno;
7176 UNUSED(_end_lineno); // Only used by EXTRA macro
7177 int _end_col_offset = _token->end_col_offset;
7178 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007179 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007180 if (_res == NULL && PyErr_Occurred()) {
7181 p->error_indicator = 1;
7182 D(p->level--);
7183 return NULL;
7184 }
7185 goto done;
7186 }
7187 p->mark = _mark;
7188 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7190 }
7191 { // '(' open_sequence_pattern? ')'
7192 if (p->error_indicator) {
7193 D(p->level--);
7194 return NULL;
7195 }
7196 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7197 Token * _literal;
7198 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007199 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007200 if (
7201 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7202 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007203 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007204 &&
7205 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7206 )
7207 {
7208 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7209 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7210 if (_token == NULL) {
7211 D(p->level--);
7212 return NULL;
7213 }
7214 int _end_lineno = _token->end_lineno;
7215 UNUSED(_end_lineno); // Only used by EXTRA macro
7216 int _end_col_offset = _token->end_col_offset;
7217 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007218 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007219 if (_res == NULL && PyErr_Occurred()) {
7220 p->error_indicator = 1;
7221 D(p->level--);
7222 return NULL;
7223 }
7224 goto done;
7225 }
7226 p->mark = _mark;
7227 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7229 }
7230 _res = NULL;
7231 done:
7232 D(p->level--);
7233 return _res;
7234}
7235
7236// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7237static asdl_seq*
7238open_sequence_pattern_rule(Parser *p)
7239{
7240 D(p->level++);
7241 if (p->error_indicator) {
7242 D(p->level--);
7243 return NULL;
7244 }
7245 asdl_seq* _res = NULL;
7246 int _mark = p->mark;
7247 { // maybe_star_pattern ',' maybe_sequence_pattern?
7248 if (p->error_indicator) {
7249 D(p->level--);
7250 return NULL;
7251 }
7252 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7253 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007254 pattern_ty pattern;
7255 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007256 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007257 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007258 &&
7259 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7260 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007261 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007262 )
7263 {
7264 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 +10007265 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007266 if (_res == NULL && PyErr_Occurred()) {
7267 p->error_indicator = 1;
7268 D(p->level--);
7269 return NULL;
7270 }
7271 goto done;
7272 }
7273 p->mark = _mark;
7274 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7276 }
7277 _res = NULL;
7278 done:
7279 D(p->level--);
7280 return _res;
7281}
7282
7283// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7284static asdl_seq*
7285maybe_sequence_pattern_rule(Parser *p)
7286{
7287 D(p->level++);
7288 if (p->error_indicator) {
7289 D(p->level--);
7290 return NULL;
7291 }
7292 asdl_seq* _res = NULL;
7293 int _mark = p->mark;
7294 { // ','.maybe_star_pattern+ ','?
7295 if (p->error_indicator) {
7296 D(p->level--);
7297 return NULL;
7298 }
7299 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7300 void *_opt_var;
7301 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007302 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007303 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007304 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007305 &&
7306 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7307 )
7308 {
7309 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 +10007310 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007311 if (_res == NULL && PyErr_Occurred()) {
7312 p->error_indicator = 1;
7313 D(p->level--);
7314 return NULL;
7315 }
7316 goto done;
7317 }
7318 p->mark = _mark;
7319 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7321 }
7322 _res = NULL;
7323 done:
7324 D(p->level--);
7325 return _res;
7326}
7327
7328// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007329static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007330maybe_star_pattern_rule(Parser *p)
7331{
7332 D(p->level++);
7333 if (p->error_indicator) {
7334 D(p->level--);
7335 return NULL;
7336 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007337 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007338 int _mark = p->mark;
7339 { // star_pattern
7340 if (p->error_indicator) {
7341 D(p->level--);
7342 return NULL;
7343 }
7344 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 +10007345 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007346 if (
7347 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7348 )
7349 {
7350 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7351 _res = star_pattern_var;
7352 goto done;
7353 }
7354 p->mark = _mark;
7355 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7357 }
7358 { // pattern
7359 if (p->error_indicator) {
7360 D(p->level--);
7361 return NULL;
7362 }
7363 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007364 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007365 if (
7366 (pattern_var = pattern_rule(p)) // pattern
7367 )
7368 {
7369 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7370 _res = pattern_var;
7371 goto done;
7372 }
7373 p->mark = _mark;
7374 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7376 }
7377 _res = NULL;
7378 done:
7379 D(p->level--);
7380 return _res;
7381}
7382
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007383// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7384static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007385star_pattern_rule(Parser *p)
7386{
7387 D(p->level++);
7388 if (p->error_indicator) {
7389 D(p->level--);
7390 return NULL;
7391 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007392 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007393 int _mark = p->mark;
7394 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7395 p->error_indicator = 1;
7396 D(p->level--);
7397 return NULL;
7398 }
7399 int _start_lineno = p->tokens[_mark]->lineno;
7400 UNUSED(_start_lineno); // Only used by EXTRA macro
7401 int _start_col_offset = p->tokens[_mark]->col_offset;
7402 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007403 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007404 if (p->error_indicator) {
7405 D(p->level--);
7406 return NULL;
7407 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007408 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 -08007409 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007410 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007411 if (
7412 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7413 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007414 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007415 )
7416 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007417 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 -08007418 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7419 if (_token == NULL) {
7420 D(p->level--);
7421 return NULL;
7422 }
7423 int _end_lineno = _token->end_lineno;
7424 UNUSED(_end_lineno); // Only used by EXTRA macro
7425 int _end_col_offset = _token->end_col_offset;
7426 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007427 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007428 if (_res == NULL && PyErr_Occurred()) {
7429 p->error_indicator = 1;
7430 D(p->level--);
7431 return NULL;
7432 }
7433 goto done;
7434 }
7435 p->mark = _mark;
7436 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7438 }
7439 { // '*' wildcard_pattern
7440 if (p->error_indicator) {
7441 D(p->level--);
7442 return NULL;
7443 }
7444 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7445 Token * _literal;
7446 pattern_ty wildcard_pattern_var;
7447 if (
7448 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7449 &&
7450 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7451 )
7452 {
7453 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7454 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7455 if (_token == NULL) {
7456 D(p->level--);
7457 return NULL;
7458 }
7459 int _end_lineno = _token->end_lineno;
7460 UNUSED(_end_lineno); // Only used by EXTRA macro
7461 int _end_col_offset = _token->end_col_offset;
7462 UNUSED(_end_col_offset); // Only used by EXTRA macro
7463 _res = _PyAST_MatchStar ( NULL , EXTRA );
7464 if (_res == NULL && PyErr_Occurred()) {
7465 p->error_indicator = 1;
7466 D(p->level--);
7467 return NULL;
7468 }
7469 goto done;
7470 }
7471 p->mark = _mark;
7472 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007474 }
7475 _res = NULL;
7476 done:
7477 D(p->level--);
7478 return _res;
7479}
7480
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007481// mapping_pattern:
7482// | '{' '}'
7483// | '{' double_star_pattern ','? '}'
7484// | '{' items_pattern ',' double_star_pattern ','? '}'
7485// | '{' items_pattern ','? '}'
7486static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007487mapping_pattern_rule(Parser *p)
7488{
7489 D(p->level++);
7490 if (p->error_indicator) {
7491 D(p->level--);
7492 return NULL;
7493 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007494 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007495 int _mark = p->mark;
7496 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7497 p->error_indicator = 1;
7498 D(p->level--);
7499 return NULL;
7500 }
7501 int _start_lineno = p->tokens[_mark]->lineno;
7502 UNUSED(_start_lineno); // Only used by EXTRA macro
7503 int _start_col_offset = p->tokens[_mark]->col_offset;
7504 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007505 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007506 if (p->error_indicator) {
7507 D(p->level--);
7508 return NULL;
7509 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007510 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007511 Token * _literal;
7512 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007513 if (
7514 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7515 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007516 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7517 )
7518 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007519 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7521 if (_token == NULL) {
7522 D(p->level--);
7523 return NULL;
7524 }
7525 int _end_lineno = _token->end_lineno;
7526 UNUSED(_end_lineno); // Only used by EXTRA macro
7527 int _end_col_offset = _token->end_col_offset;
7528 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007529 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007530 if (_res == NULL && PyErr_Occurred()) {
7531 p->error_indicator = 1;
7532 D(p->level--);
7533 return NULL;
7534 }
7535 goto done;
7536 }
7537 p->mark = _mark;
7538 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7540 }
7541 { // '{' double_star_pattern ','? '}'
7542 if (p->error_indicator) {
7543 D(p->level--);
7544 return NULL;
7545 }
7546 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7547 Token * _literal;
7548 Token * _literal_1;
7549 void *_opt_var;
7550 UNUSED(_opt_var); // Silence compiler warnings
7551 expr_ty rest;
7552 if (
7553 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7554 &&
7555 (rest = double_star_pattern_rule(p)) // double_star_pattern
7556 &&
7557 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7558 &&
7559 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7560 )
7561 {
7562 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7564 if (_token == NULL) {
7565 D(p->level--);
7566 return NULL;
7567 }
7568 int _end_lineno = _token->end_lineno;
7569 UNUSED(_end_lineno); // Only used by EXTRA macro
7570 int _end_col_offset = _token->end_col_offset;
7571 UNUSED(_end_col_offset); // Only used by EXTRA macro
7572 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7573 if (_res == NULL && PyErr_Occurred()) {
7574 p->error_indicator = 1;
7575 D(p->level--);
7576 return NULL;
7577 }
7578 goto done;
7579 }
7580 p->mark = _mark;
7581 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7583 }
7584 { // '{' items_pattern ',' double_star_pattern ','? '}'
7585 if (p->error_indicator) {
7586 D(p->level--);
7587 return NULL;
7588 }
7589 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7590 Token * _literal;
7591 Token * _literal_1;
7592 Token * _literal_2;
7593 void *_opt_var;
7594 UNUSED(_opt_var); // Silence compiler warnings
7595 asdl_seq* items;
7596 expr_ty rest;
7597 if (
7598 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7599 &&
7600 (items = items_pattern_rule(p)) // items_pattern
7601 &&
7602 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7603 &&
7604 (rest = double_star_pattern_rule(p)) // double_star_pattern
7605 &&
7606 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7607 &&
7608 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7609 )
7610 {
7611 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7613 if (_token == NULL) {
7614 D(p->level--);
7615 return NULL;
7616 }
7617 int _end_lineno = _token->end_lineno;
7618 UNUSED(_end_lineno); // Only used by EXTRA macro
7619 int _end_col_offset = _token->end_col_offset;
7620 UNUSED(_end_col_offset); // Only used by EXTRA macro
7621 _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 );
7622 if (_res == NULL && PyErr_Occurred()) {
7623 p->error_indicator = 1;
7624 D(p->level--);
7625 return NULL;
7626 }
7627 goto done;
7628 }
7629 p->mark = _mark;
7630 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7632 }
7633 { // '{' items_pattern ','? '}'
7634 if (p->error_indicator) {
7635 D(p->level--);
7636 return NULL;
7637 }
7638 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7639 Token * _literal;
7640 Token * _literal_1;
7641 void *_opt_var;
7642 UNUSED(_opt_var); // Silence compiler warnings
7643 asdl_seq* items;
7644 if (
7645 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7646 &&
7647 (items = items_pattern_rule(p)) // items_pattern
7648 &&
7649 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7650 &&
7651 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7652 )
7653 {
7654 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7656 if (_token == NULL) {
7657 D(p->level--);
7658 return NULL;
7659 }
7660 int _end_lineno = _token->end_lineno;
7661 UNUSED(_end_lineno); // Only used by EXTRA macro
7662 int _end_col_offset = _token->end_col_offset;
7663 UNUSED(_end_col_offset); // Only used by EXTRA macro
7664 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7665 if (_res == NULL && PyErr_Occurred()) {
7666 p->error_indicator = 1;
7667 D(p->level--);
7668 return NULL;
7669 }
7670 goto done;
7671 }
7672 p->mark = _mark;
7673 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007675 }
7676 _res = NULL;
7677 done:
7678 D(p->level--);
7679 return _res;
7680}
7681
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007682// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007683static asdl_seq*
7684items_pattern_rule(Parser *p)
7685{
7686 D(p->level++);
7687 if (p->error_indicator) {
7688 D(p->level--);
7689 return NULL;
7690 }
7691 asdl_seq* _res = NULL;
7692 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007693 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007694 if (p->error_indicator) {
7695 D(p->level--);
7696 return NULL;
7697 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007698 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007699 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007700 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007701 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007702 )
7703 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007704 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007705 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007706 goto done;
7707 }
7708 p->mark = _mark;
7709 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007711 }
7712 _res = NULL;
7713 done:
7714 D(p->level--);
7715 return _res;
7716}
7717
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007718// key_value_pattern: (literal_expr | attr) ':' pattern
7719static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007720key_value_pattern_rule(Parser *p)
7721{
7722 D(p->level++);
7723 if (p->error_indicator) {
7724 D(p->level--);
7725 return NULL;
7726 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007727 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007728 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007729 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007730 if (p->error_indicator) {
7731 D(p->level--);
7732 return NULL;
7733 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007734 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 -08007735 Token * _literal;
7736 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007737 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007738 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007739 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007740 &&
7741 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7742 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007743 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007744 )
7745 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007746 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7747 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007748 if (_res == NULL && PyErr_Occurred()) {
7749 p->error_indicator = 1;
7750 D(p->level--);
7751 return NULL;
7752 }
7753 goto done;
7754 }
7755 p->mark = _mark;
7756 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007758 }
7759 _res = NULL;
7760 done:
7761 D(p->level--);
7762 return _res;
7763}
7764
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007765// double_star_pattern: '**' pattern_capture_target
7766static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007767double_star_pattern_rule(Parser *p)
7768{
7769 D(p->level++);
7770 if (p->error_indicator) {
7771 D(p->level--);
7772 return NULL;
7773 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007774 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007775 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007776 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007777 if (p->error_indicator) {
7778 D(p->level--);
7779 return NULL;
7780 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007781 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 -08007782 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007783 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007784 if (
7785 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7786 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007787 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007788 )
7789 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007790 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7791 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007792 if (_res == NULL && PyErr_Occurred()) {
7793 p->error_indicator = 1;
7794 D(p->level--);
7795 return NULL;
7796 }
7797 goto done;
7798 }
7799 p->mark = _mark;
7800 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007802 }
7803 _res = NULL;
7804 done:
7805 D(p->level--);
7806 return _res;
7807}
7808
7809// class_pattern:
7810// | name_or_attr '(' ')'
7811// | name_or_attr '(' positional_patterns ','? ')'
7812// | name_or_attr '(' keyword_patterns ','? ')'
7813// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07007814// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007815static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007816class_pattern_rule(Parser *p)
7817{
7818 D(p->level++);
7819 if (p->error_indicator) {
7820 D(p->level--);
7821 return NULL;
7822 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007823 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007824 int _mark = p->mark;
7825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7826 p->error_indicator = 1;
7827 D(p->level--);
7828 return NULL;
7829 }
7830 int _start_lineno = p->tokens[_mark]->lineno;
7831 UNUSED(_start_lineno); // Only used by EXTRA macro
7832 int _start_col_offset = p->tokens[_mark]->col_offset;
7833 UNUSED(_start_col_offset); // Only used by EXTRA macro
7834 { // name_or_attr '(' ')'
7835 if (p->error_indicator) {
7836 D(p->level--);
7837 return NULL;
7838 }
7839 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7840 Token * _literal;
7841 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007842 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007843 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007844 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007845 &&
7846 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7847 &&
7848 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7849 )
7850 {
7851 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7852 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7853 if (_token == NULL) {
7854 D(p->level--);
7855 return NULL;
7856 }
7857 int _end_lineno = _token->end_lineno;
7858 UNUSED(_end_lineno); // Only used by EXTRA macro
7859 int _end_col_offset = _token->end_col_offset;
7860 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007861 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007862 if (_res == NULL && PyErr_Occurred()) {
7863 p->error_indicator = 1;
7864 D(p->level--);
7865 return NULL;
7866 }
7867 goto done;
7868 }
7869 p->mark = _mark;
7870 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7872 }
7873 { // name_or_attr '(' positional_patterns ','? ')'
7874 if (p->error_indicator) {
7875 D(p->level--);
7876 return NULL;
7877 }
7878 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7879 Token * _literal;
7880 Token * _literal_1;
7881 void *_opt_var;
7882 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007883 expr_ty cls;
7884 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007885 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007886 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007887 &&
7888 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7889 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007890 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007891 &&
7892 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7893 &&
7894 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7895 )
7896 {
7897 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7899 if (_token == NULL) {
7900 D(p->level--);
7901 return NULL;
7902 }
7903 int _end_lineno = _token->end_lineno;
7904 UNUSED(_end_lineno); // Only used by EXTRA macro
7905 int _end_col_offset = _token->end_col_offset;
7906 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007907 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007908 if (_res == NULL && PyErr_Occurred()) {
7909 p->error_indicator = 1;
7910 D(p->level--);
7911 return NULL;
7912 }
7913 goto done;
7914 }
7915 p->mark = _mark;
7916 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7918 }
7919 { // name_or_attr '(' keyword_patterns ','? ')'
7920 if (p->error_indicator) {
7921 D(p->level--);
7922 return NULL;
7923 }
7924 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7925 Token * _literal;
7926 Token * _literal_1;
7927 void *_opt_var;
7928 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007929 expr_ty cls;
7930 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007931 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007932 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007933 &&
7934 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7935 &&
7936 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7937 &&
7938 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7939 &&
7940 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7941 )
7942 {
7943 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7945 if (_token == NULL) {
7946 D(p->level--);
7947 return NULL;
7948 }
7949 int _end_lineno = _token->end_lineno;
7950 UNUSED(_end_lineno); // Only used by EXTRA macro
7951 int _end_col_offset = _token->end_col_offset;
7952 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007953 _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 -08007954 if (_res == NULL && PyErr_Occurred()) {
7955 p->error_indicator = 1;
7956 D(p->level--);
7957 return NULL;
7958 }
7959 goto done;
7960 }
7961 p->mark = _mark;
7962 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7964 }
7965 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7966 if (p->error_indicator) {
7967 D(p->level--);
7968 return NULL;
7969 }
7970 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7971 Token * _literal;
7972 Token * _literal_1;
7973 Token * _literal_2;
7974 void *_opt_var;
7975 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007976 expr_ty cls;
7977 asdl_seq* keywords;
7978 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007979 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007980 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007981 &&
7982 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7983 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007984 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007985 &&
7986 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7987 &&
7988 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7989 &&
7990 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7991 &&
7992 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7993 )
7994 {
7995 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7997 if (_token == NULL) {
7998 D(p->level--);
7999 return NULL;
8000 }
8001 int _end_lineno = _token->end_lineno;
8002 UNUSED(_end_lineno); // Only used by EXTRA macro
8003 int _end_col_offset = _token->end_col_offset;
8004 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008005 _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 -08008006 if (_res == NULL && PyErr_Occurred()) {
8007 p->error_indicator = 1;
8008 D(p->level--);
8009 return NULL;
8010 }
8011 goto done;
8012 }
8013 p->mark = _mark;
8014 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8016 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008017 if (p->call_invalid_rules) { // invalid_class_pattern
8018 if (p->error_indicator) {
8019 D(p->level--);
8020 return NULL;
8021 }
8022 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8023 void *invalid_class_pattern_var;
8024 if (
8025 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8026 )
8027 {
8028 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8029 _res = invalid_class_pattern_var;
8030 goto done;
8031 }
8032 p->mark = _mark;
8033 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8035 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008036 _res = NULL;
8037 done:
8038 D(p->level--);
8039 return _res;
8040}
8041
8042// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008043static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008044positional_patterns_rule(Parser *p)
8045{
8046 D(p->level++);
8047 if (p->error_indicator) {
8048 D(p->level--);
8049 return NULL;
8050 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008051 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008052 int _mark = p->mark;
8053 { // ','.pattern+
8054 if (p->error_indicator) {
8055 D(p->level--);
8056 return NULL;
8057 }
8058 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008059 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008060 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008061 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 )
8063 {
8064 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8065 _res = args;
8066 if (_res == NULL && PyErr_Occurred()) {
8067 p->error_indicator = 1;
8068 D(p->level--);
8069 return NULL;
8070 }
8071 goto done;
8072 }
8073 p->mark = _mark;
8074 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8076 }
8077 _res = NULL;
8078 done:
8079 D(p->level--);
8080 return _res;
8081}
8082
8083// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008084static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008085keyword_patterns_rule(Parser *p)
8086{
8087 D(p->level++);
8088 if (p->error_indicator) {
8089 D(p->level--);
8090 return NULL;
8091 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008092 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008093 int _mark = p->mark;
8094 { // ','.keyword_pattern+
8095 if (p->error_indicator) {
8096 D(p->level--);
8097 return NULL;
8098 }
8099 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008100 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008101 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008102 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008103 )
8104 {
8105 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008106 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008107 goto done;
8108 }
8109 p->mark = _mark;
8110 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8112 }
8113 _res = NULL;
8114 done:
8115 D(p->level--);
8116 return _res;
8117}
8118
8119// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008120static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008121keyword_pattern_rule(Parser *p)
8122{
8123 D(p->level++);
8124 if (p->error_indicator) {
8125 D(p->level--);
8126 return NULL;
8127 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008128 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008129 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008130 { // NAME '=' pattern
8131 if (p->error_indicator) {
8132 D(p->level--);
8133 return NULL;
8134 }
8135 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8136 Token * _literal;
8137 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008138 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008139 if (
8140 (arg = _PyPegen_name_token(p)) // NAME
8141 &&
8142 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8143 &&
8144 (value = pattern_rule(p)) // pattern
8145 )
8146 {
8147 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 +10008148 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008149 if (_res == NULL && PyErr_Occurred()) {
8150 p->error_indicator = 1;
8151 D(p->level--);
8152 return NULL;
8153 }
8154 goto done;
8155 }
8156 p->mark = _mark;
8157 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8159 }
8160 _res = NULL;
8161 done:
8162 D(p->level--);
8163 return _res;
8164}
8165
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008166// return_stmt: 'return' star_expressions?
8167static stmt_ty
8168return_stmt_rule(Parser *p)
8169{
8170 D(p->level++);
8171 if (p->error_indicator) {
8172 D(p->level--);
8173 return NULL;
8174 }
8175 stmt_ty _res = NULL;
8176 int _mark = p->mark;
8177 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8178 p->error_indicator = 1;
8179 D(p->level--);
8180 return NULL;
8181 }
8182 int _start_lineno = p->tokens[_mark]->lineno;
8183 UNUSED(_start_lineno); // Only used by EXTRA macro
8184 int _start_col_offset = p->tokens[_mark]->col_offset;
8185 UNUSED(_start_col_offset); // Only used by EXTRA macro
8186 { // 'return' star_expressions?
8187 if (p->error_indicator) {
8188 D(p->level--);
8189 return NULL;
8190 }
8191 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8192 Token * _keyword;
8193 void *a;
8194 if (
8195 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8196 &&
8197 (a = star_expressions_rule(p), 1) // star_expressions?
8198 )
8199 {
8200 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8201 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8202 if (_token == NULL) {
8203 D(p->level--);
8204 return NULL;
8205 }
8206 int _end_lineno = _token->end_lineno;
8207 UNUSED(_end_lineno); // Only used by EXTRA macro
8208 int _end_col_offset = _token->end_col_offset;
8209 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008210 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008211 if (_res == NULL && PyErr_Occurred()) {
8212 p->error_indicator = 1;
8213 D(p->level--);
8214 return NULL;
8215 }
8216 goto done;
8217 }
8218 p->mark = _mark;
8219 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8221 }
8222 _res = NULL;
8223 done:
8224 D(p->level--);
8225 return _res;
8226}
8227
8228// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8229static stmt_ty
8230raise_stmt_rule(Parser *p)
8231{
8232 D(p->level++);
8233 if (p->error_indicator) {
8234 D(p->level--);
8235 return NULL;
8236 }
8237 stmt_ty _res = NULL;
8238 int _mark = p->mark;
8239 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8240 p->error_indicator = 1;
8241 D(p->level--);
8242 return NULL;
8243 }
8244 int _start_lineno = p->tokens[_mark]->lineno;
8245 UNUSED(_start_lineno); // Only used by EXTRA macro
8246 int _start_col_offset = p->tokens[_mark]->col_offset;
8247 UNUSED(_start_col_offset); // Only used by EXTRA macro
8248 { // 'raise' expression ['from' expression]
8249 if (p->error_indicator) {
8250 D(p->level--);
8251 return NULL;
8252 }
8253 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8254 Token * _keyword;
8255 expr_ty a;
8256 void *b;
8257 if (
8258 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8259 &&
8260 (a = expression_rule(p)) // expression
8261 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008262 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008263 )
8264 {
8265 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8266 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8267 if (_token == NULL) {
8268 D(p->level--);
8269 return NULL;
8270 }
8271 int _end_lineno = _token->end_lineno;
8272 UNUSED(_end_lineno); // Only used by EXTRA macro
8273 int _end_col_offset = _token->end_col_offset;
8274 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008275 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008276 if (_res == NULL && PyErr_Occurred()) {
8277 p->error_indicator = 1;
8278 D(p->level--);
8279 return NULL;
8280 }
8281 goto done;
8282 }
8283 p->mark = _mark;
8284 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8286 }
8287 { // 'raise'
8288 if (p->error_indicator) {
8289 D(p->level--);
8290 return NULL;
8291 }
8292 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8293 Token * _keyword;
8294 if (
8295 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8296 )
8297 {
8298 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8300 if (_token == NULL) {
8301 D(p->level--);
8302 return NULL;
8303 }
8304 int _end_lineno = _token->end_lineno;
8305 UNUSED(_end_lineno); // Only used by EXTRA macro
8306 int _end_col_offset = _token->end_col_offset;
8307 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008308 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008309 if (_res == NULL && PyErr_Occurred()) {
8310 p->error_indicator = 1;
8311 D(p->level--);
8312 return NULL;
8313 }
8314 goto done;
8315 }
8316 p->mark = _mark;
8317 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8319 }
8320 _res = NULL;
8321 done:
8322 D(p->level--);
8323 return _res;
8324}
8325
8326// function_def: decorators function_def_raw | function_def_raw
8327static stmt_ty
8328function_def_rule(Parser *p)
8329{
8330 D(p->level++);
8331 if (p->error_indicator) {
8332 D(p->level--);
8333 return NULL;
8334 }
8335 stmt_ty _res = NULL;
8336 int _mark = p->mark;
8337 { // decorators function_def_raw
8338 if (p->error_indicator) {
8339 D(p->level--);
8340 return NULL;
8341 }
8342 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 +01008343 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008344 stmt_ty f;
8345 if (
8346 (d = decorators_rule(p)) // decorators
8347 &&
8348 (f = function_def_raw_rule(p)) // function_def_raw
8349 )
8350 {
8351 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8352 _res = _PyPegen_function_def_decorators ( p , d , f );
8353 if (_res == NULL && PyErr_Occurred()) {
8354 p->error_indicator = 1;
8355 D(p->level--);
8356 return NULL;
8357 }
8358 goto done;
8359 }
8360 p->mark = _mark;
8361 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8363 }
8364 { // function_def_raw
8365 if (p->error_indicator) {
8366 D(p->level--);
8367 return NULL;
8368 }
8369 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8370 stmt_ty function_def_raw_var;
8371 if (
8372 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8373 )
8374 {
8375 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8376 _res = function_def_raw_var;
8377 goto done;
8378 }
8379 p->mark = _mark;
8380 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8382 }
8383 _res = NULL;
8384 done:
8385 D(p->level--);
8386 return _res;
8387}
8388
8389// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008390// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008391// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8392// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008393static stmt_ty
8394function_def_raw_rule(Parser *p)
8395{
8396 D(p->level++);
8397 if (p->error_indicator) {
8398 D(p->level--);
8399 return NULL;
8400 }
8401 stmt_ty _res = NULL;
8402 int _mark = p->mark;
8403 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8404 p->error_indicator = 1;
8405 D(p->level--);
8406 return NULL;
8407 }
8408 int _start_lineno = p->tokens[_mark]->lineno;
8409 UNUSED(_start_lineno); // Only used by EXTRA macro
8410 int _start_col_offset = p->tokens[_mark]->col_offset;
8411 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008412 if (p->call_invalid_rules) { // invalid_def_raw
8413 if (p->error_indicator) {
8414 D(p->level--);
8415 return NULL;
8416 }
8417 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8418 void *invalid_def_raw_var;
8419 if (
8420 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8421 )
8422 {
8423 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8424 _res = invalid_def_raw_var;
8425 goto done;
8426 }
8427 p->mark = _mark;
8428 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8430 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008431 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008432 if (p->error_indicator) {
8433 D(p->level--);
8434 return NULL;
8435 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008436 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 +01008437 Token * _keyword;
8438 Token * _literal;
8439 Token * _literal_1;
8440 Token * _literal_2;
8441 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008442 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008443 expr_ty n;
8444 void *params;
8445 void *tc;
8446 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008447 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008448 &&
8449 (n = _PyPegen_name_token(p)) // NAME
8450 &&
8451 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8452 &&
8453 (params = params_rule(p), 1) // params?
8454 &&
8455 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8456 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008457 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008458 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008459 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008460 &&
8461 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8462 &&
8463 (b = block_rule(p)) // block
8464 )
8465 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008466 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 +01008467 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8468 if (_token == NULL) {
8469 D(p->level--);
8470 return NULL;
8471 }
8472 int _end_lineno = _token->end_lineno;
8473 UNUSED(_end_lineno); // Only used by EXTRA macro
8474 int _end_col_offset = _token->end_col_offset;
8475 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008476 _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 +01008477 if (_res == NULL && PyErr_Occurred()) {
8478 p->error_indicator = 1;
8479 D(p->level--);
8480 return NULL;
8481 }
8482 goto done;
8483 }
8484 p->mark = _mark;
8485 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008487 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008488 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008489 if (p->error_indicator) {
8490 D(p->level--);
8491 return NULL;
8492 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008493 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 +01008494 Token * _keyword;
8495 Token * _literal;
8496 Token * _literal_1;
8497 Token * _literal_2;
8498 void *a;
8499 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008500 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008501 expr_ty n;
8502 void *params;
8503 void *tc;
8504 if (
8505 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8506 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008507 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008508 &&
8509 (n = _PyPegen_name_token(p)) // NAME
8510 &&
8511 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8512 &&
8513 (params = params_rule(p), 1) // params?
8514 &&
8515 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8516 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008517 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008518 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008519 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008520 &&
8521 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8522 &&
8523 (b = block_rule(p)) // block
8524 )
8525 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008526 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 +01008527 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8528 if (_token == NULL) {
8529 D(p->level--);
8530 return NULL;
8531 }
8532 int _end_lineno = _token->end_lineno;
8533 UNUSED(_end_lineno); // Only used by EXTRA macro
8534 int _end_col_offset = _token->end_col_offset;
8535 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008536 _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 +01008537 if (_res == NULL && PyErr_Occurred()) {
8538 p->error_indicator = 1;
8539 D(p->level--);
8540 return NULL;
8541 }
8542 goto done;
8543 }
8544 p->mark = _mark;
8545 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008547 }
8548 _res = NULL;
8549 done:
8550 D(p->level--);
8551 return _res;
8552}
8553
8554// func_type_comment:
8555// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8556// | invalid_double_type_comments
8557// | TYPE_COMMENT
8558static Token*
8559func_type_comment_rule(Parser *p)
8560{
8561 D(p->level++);
8562 if (p->error_indicator) {
8563 D(p->level--);
8564 return NULL;
8565 }
8566 Token* _res = NULL;
8567 int _mark = p->mark;
8568 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8569 if (p->error_indicator) {
8570 D(p->level--);
8571 return NULL;
8572 }
8573 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8574 Token * newline_var;
8575 Token * t;
8576 if (
8577 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8578 &&
8579 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8580 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008581 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008582 )
8583 {
8584 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8585 _res = t;
8586 if (_res == NULL && PyErr_Occurred()) {
8587 p->error_indicator = 1;
8588 D(p->level--);
8589 return NULL;
8590 }
8591 goto done;
8592 }
8593 p->mark = _mark;
8594 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8596 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008597 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008598 if (p->error_indicator) {
8599 D(p->level--);
8600 return NULL;
8601 }
8602 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8603 void *invalid_double_type_comments_var;
8604 if (
8605 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8606 )
8607 {
8608 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8609 _res = invalid_double_type_comments_var;
8610 goto done;
8611 }
8612 p->mark = _mark;
8613 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8615 }
8616 { // TYPE_COMMENT
8617 if (p->error_indicator) {
8618 D(p->level--);
8619 return NULL;
8620 }
8621 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8622 Token * type_comment_var;
8623 if (
8624 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8625 )
8626 {
8627 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8628 _res = type_comment_var;
8629 goto done;
8630 }
8631 p->mark = _mark;
8632 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8634 }
8635 _res = NULL;
8636 done:
8637 D(p->level--);
8638 return _res;
8639}
8640
8641// params: invalid_parameters | parameters
8642static arguments_ty
8643params_rule(Parser *p)
8644{
8645 D(p->level++);
8646 if (p->error_indicator) {
8647 D(p->level--);
8648 return NULL;
8649 }
8650 arguments_ty _res = NULL;
8651 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008652 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008653 if (p->error_indicator) {
8654 D(p->level--);
8655 return NULL;
8656 }
8657 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8658 void *invalid_parameters_var;
8659 if (
8660 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8661 )
8662 {
8663 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8664 _res = invalid_parameters_var;
8665 goto done;
8666 }
8667 p->mark = _mark;
8668 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8670 }
8671 { // parameters
8672 if (p->error_indicator) {
8673 D(p->level--);
8674 return NULL;
8675 }
8676 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8677 arguments_ty parameters_var;
8678 if (
8679 (parameters_var = parameters_rule(p)) // parameters
8680 )
8681 {
8682 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8683 _res = parameters_var;
8684 goto done;
8685 }
8686 p->mark = _mark;
8687 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8689 }
8690 _res = NULL;
8691 done:
8692 D(p->level--);
8693 return _res;
8694}
8695
8696// parameters:
8697// | slash_no_default param_no_default* param_with_default* star_etc?
8698// | slash_with_default param_with_default* star_etc?
8699// | param_no_default+ param_with_default* star_etc?
8700// | param_with_default+ star_etc?
8701// | star_etc
8702static arguments_ty
8703parameters_rule(Parser *p)
8704{
8705 D(p->level++);
8706 if (p->error_indicator) {
8707 D(p->level--);
8708 return NULL;
8709 }
8710 arguments_ty _res = NULL;
8711 int _mark = p->mark;
8712 { // slash_no_default param_no_default* param_with_default* star_etc?
8713 if (p->error_indicator) {
8714 D(p->level--);
8715 return NULL;
8716 }
8717 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 +01008718 asdl_arg_seq* a;
8719 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008720 asdl_seq * c;
8721 void *d;
8722 if (
8723 (a = slash_no_default_rule(p)) // slash_no_default
8724 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008725 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008726 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008727 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008728 &&
8729 (d = star_etc_rule(p), 1) // star_etc?
8730 )
8731 {
8732 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?"));
8733 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8734 if (_res == NULL && PyErr_Occurred()) {
8735 p->error_indicator = 1;
8736 D(p->level--);
8737 return NULL;
8738 }
8739 goto done;
8740 }
8741 p->mark = _mark;
8742 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8744 }
8745 { // slash_with_default param_with_default* star_etc?
8746 if (p->error_indicator) {
8747 D(p->level--);
8748 return NULL;
8749 }
8750 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8751 SlashWithDefault* a;
8752 asdl_seq * b;
8753 void *c;
8754 if (
8755 (a = slash_with_default_rule(p)) // slash_with_default
8756 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008757 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008758 &&
8759 (c = star_etc_rule(p), 1) // star_etc?
8760 )
8761 {
8762 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8763 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8764 if (_res == NULL && PyErr_Occurred()) {
8765 p->error_indicator = 1;
8766 D(p->level--);
8767 return NULL;
8768 }
8769 goto done;
8770 }
8771 p->mark = _mark;
8772 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8774 }
8775 { // param_no_default+ param_with_default* star_etc?
8776 if (p->error_indicator) {
8777 D(p->level--);
8778 return NULL;
8779 }
8780 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 +01008781 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008782 asdl_seq * b;
8783 void *c;
8784 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008785 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008786 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008787 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008788 &&
8789 (c = star_etc_rule(p), 1) // star_etc?
8790 )
8791 {
8792 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8793 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8794 if (_res == NULL && PyErr_Occurred()) {
8795 p->error_indicator = 1;
8796 D(p->level--);
8797 return NULL;
8798 }
8799 goto done;
8800 }
8801 p->mark = _mark;
8802 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8804 }
8805 { // param_with_default+ star_etc?
8806 if (p->error_indicator) {
8807 D(p->level--);
8808 return NULL;
8809 }
8810 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8811 asdl_seq * a;
8812 void *b;
8813 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008814 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008815 &&
8816 (b = star_etc_rule(p), 1) // star_etc?
8817 )
8818 {
8819 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8820 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8821 if (_res == NULL && PyErr_Occurred()) {
8822 p->error_indicator = 1;
8823 D(p->level--);
8824 return NULL;
8825 }
8826 goto done;
8827 }
8828 p->mark = _mark;
8829 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8831 }
8832 { // star_etc
8833 if (p->error_indicator) {
8834 D(p->level--);
8835 return NULL;
8836 }
8837 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8838 StarEtc* a;
8839 if (
8840 (a = star_etc_rule(p)) // star_etc
8841 )
8842 {
8843 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8844 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8845 if (_res == NULL && PyErr_Occurred()) {
8846 p->error_indicator = 1;
8847 D(p->level--);
8848 return NULL;
8849 }
8850 goto done;
8851 }
8852 p->mark = _mark;
8853 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8855 }
8856 _res = NULL;
8857 done:
8858 D(p->level--);
8859 return _res;
8860}
8861
8862// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008863static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008864slash_no_default_rule(Parser *p)
8865{
8866 D(p->level++);
8867 if (p->error_indicator) {
8868 D(p->level--);
8869 return NULL;
8870 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008871 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008872 int _mark = p->mark;
8873 { // param_no_default+ '/' ','
8874 if (p->error_indicator) {
8875 D(p->level--);
8876 return NULL;
8877 }
8878 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8879 Token * _literal;
8880 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008881 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008882 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008883 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008884 &&
8885 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8886 &&
8887 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8888 )
8889 {
8890 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8891 _res = a;
8892 if (_res == NULL && PyErr_Occurred()) {
8893 p->error_indicator = 1;
8894 D(p->level--);
8895 return NULL;
8896 }
8897 goto done;
8898 }
8899 p->mark = _mark;
8900 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8902 }
8903 { // param_no_default+ '/' &')'
8904 if (p->error_indicator) {
8905 D(p->level--);
8906 return NULL;
8907 }
8908 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8909 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008910 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008911 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008912 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008913 &&
8914 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8915 &&
8916 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8917 )
8918 {
8919 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8920 _res = a;
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 slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8931 }
8932 _res = NULL;
8933 done:
8934 D(p->level--);
8935 return _res;
8936}
8937
8938// slash_with_default:
8939// | param_no_default* param_with_default+ '/' ','
8940// | param_no_default* param_with_default+ '/' &')'
8941static SlashWithDefault*
8942slash_with_default_rule(Parser *p)
8943{
8944 D(p->level++);
8945 if (p->error_indicator) {
8946 D(p->level--);
8947 return NULL;
8948 }
8949 SlashWithDefault* _res = NULL;
8950 int _mark = p->mark;
8951 { // param_no_default* param_with_default+ '/' ','
8952 if (p->error_indicator) {
8953 D(p->level--);
8954 return NULL;
8955 }
8956 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8957 Token * _literal;
8958 Token * _literal_1;
8959 asdl_seq * a;
8960 asdl_seq * b;
8961 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008962 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008963 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008964 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008965 &&
8966 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8967 &&
8968 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8969 )
8970 {
8971 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 +01008972 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008973 if (_res == NULL && PyErr_Occurred()) {
8974 p->error_indicator = 1;
8975 D(p->level--);
8976 return NULL;
8977 }
8978 goto done;
8979 }
8980 p->mark = _mark;
8981 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8983 }
8984 { // param_no_default* param_with_default+ '/' &')'
8985 if (p->error_indicator) {
8986 D(p->level--);
8987 return NULL;
8988 }
8989 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8990 Token * _literal;
8991 asdl_seq * a;
8992 asdl_seq * b;
8993 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008994 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008995 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008996 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008997 &&
8998 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8999 &&
9000 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9001 )
9002 {
9003 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 +01009004 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009005 if (_res == NULL && PyErr_Occurred()) {
9006 p->error_indicator = 1;
9007 D(p->level--);
9008 return NULL;
9009 }
9010 goto done;
9011 }
9012 p->mark = _mark;
9013 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9015 }
9016 _res = NULL;
9017 done:
9018 D(p->level--);
9019 return _res;
9020}
9021
9022// star_etc:
9023// | '*' param_no_default param_maybe_default* kwds?
9024// | '*' ',' param_maybe_default+ kwds?
9025// | kwds
9026// | invalid_star_etc
9027static StarEtc*
9028star_etc_rule(Parser *p)
9029{
9030 D(p->level++);
9031 if (p->error_indicator) {
9032 D(p->level--);
9033 return NULL;
9034 }
9035 StarEtc* _res = NULL;
9036 int _mark = p->mark;
9037 { // '*' param_no_default param_maybe_default* kwds?
9038 if (p->error_indicator) {
9039 D(p->level--);
9040 return NULL;
9041 }
9042 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9043 Token * _literal;
9044 arg_ty a;
9045 asdl_seq * b;
9046 void *c;
9047 if (
9048 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9049 &&
9050 (a = param_no_default_rule(p)) // param_no_default
9051 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009052 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009053 &&
9054 (c = kwds_rule(p), 1) // kwds?
9055 )
9056 {
9057 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9058 _res = _PyPegen_star_etc ( p , a , b , c );
9059 if (_res == NULL && PyErr_Occurred()) {
9060 p->error_indicator = 1;
9061 D(p->level--);
9062 return NULL;
9063 }
9064 goto done;
9065 }
9066 p->mark = _mark;
9067 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9069 }
9070 { // '*' ',' param_maybe_default+ kwds?
9071 if (p->error_indicator) {
9072 D(p->level--);
9073 return NULL;
9074 }
9075 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9076 Token * _literal;
9077 Token * _literal_1;
9078 asdl_seq * b;
9079 void *c;
9080 if (
9081 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9082 &&
9083 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9084 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009085 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009086 &&
9087 (c = kwds_rule(p), 1) // kwds?
9088 )
9089 {
9090 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9091 _res = _PyPegen_star_etc ( p , NULL , b , c );
9092 if (_res == NULL && PyErr_Occurred()) {
9093 p->error_indicator = 1;
9094 D(p->level--);
9095 return NULL;
9096 }
9097 goto done;
9098 }
9099 p->mark = _mark;
9100 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9102 }
9103 { // kwds
9104 if (p->error_indicator) {
9105 D(p->level--);
9106 return NULL;
9107 }
9108 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9109 arg_ty a;
9110 if (
9111 (a = kwds_rule(p)) // kwds
9112 )
9113 {
9114 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9115 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9116 if (_res == NULL && PyErr_Occurred()) {
9117 p->error_indicator = 1;
9118 D(p->level--);
9119 return NULL;
9120 }
9121 goto done;
9122 }
9123 p->mark = _mark;
9124 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9126 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009127 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009128 if (p->error_indicator) {
9129 D(p->level--);
9130 return NULL;
9131 }
9132 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9133 void *invalid_star_etc_var;
9134 if (
9135 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9136 )
9137 {
9138 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9139 _res = invalid_star_etc_var;
9140 goto done;
9141 }
9142 p->mark = _mark;
9143 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9145 }
9146 _res = NULL;
9147 done:
9148 D(p->level--);
9149 return _res;
9150}
9151
9152// kwds: '**' param_no_default
9153static arg_ty
9154kwds_rule(Parser *p)
9155{
9156 D(p->level++);
9157 if (p->error_indicator) {
9158 D(p->level--);
9159 return NULL;
9160 }
9161 arg_ty _res = NULL;
9162 int _mark = p->mark;
9163 { // '**' param_no_default
9164 if (p->error_indicator) {
9165 D(p->level--);
9166 return NULL;
9167 }
9168 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9169 Token * _literal;
9170 arg_ty a;
9171 if (
9172 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9173 &&
9174 (a = param_no_default_rule(p)) // param_no_default
9175 )
9176 {
9177 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9178 _res = a;
9179 if (_res == NULL && PyErr_Occurred()) {
9180 p->error_indicator = 1;
9181 D(p->level--);
9182 return NULL;
9183 }
9184 goto done;
9185 }
9186 p->mark = _mark;
9187 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9189 }
9190 _res = NULL;
9191 done:
9192 D(p->level--);
9193 return _res;
9194}
9195
9196// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9197static arg_ty
9198param_no_default_rule(Parser *p)
9199{
9200 D(p->level++);
9201 if (p->error_indicator) {
9202 D(p->level--);
9203 return NULL;
9204 }
9205 arg_ty _res = NULL;
9206 int _mark = p->mark;
9207 { // param ',' TYPE_COMMENT?
9208 if (p->error_indicator) {
9209 D(p->level--);
9210 return NULL;
9211 }
9212 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9213 Token * _literal;
9214 arg_ty a;
9215 void *tc;
9216 if (
9217 (a = param_rule(p)) // param
9218 &&
9219 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9220 &&
9221 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9222 )
9223 {
9224 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9225 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9226 if (_res == NULL && PyErr_Occurred()) {
9227 p->error_indicator = 1;
9228 D(p->level--);
9229 return NULL;
9230 }
9231 goto done;
9232 }
9233 p->mark = _mark;
9234 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9236 }
9237 { // param TYPE_COMMENT? &')'
9238 if (p->error_indicator) {
9239 D(p->level--);
9240 return NULL;
9241 }
9242 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9243 arg_ty a;
9244 void *tc;
9245 if (
9246 (a = param_rule(p)) // param
9247 &&
9248 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9249 &&
9250 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9251 )
9252 {
9253 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9254 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9255 if (_res == NULL && PyErr_Occurred()) {
9256 p->error_indicator = 1;
9257 D(p->level--);
9258 return NULL;
9259 }
9260 goto done;
9261 }
9262 p->mark = _mark;
9263 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9265 }
9266 _res = NULL;
9267 done:
9268 D(p->level--);
9269 return _res;
9270}
9271
9272// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9273static NameDefaultPair*
9274param_with_default_rule(Parser *p)
9275{
9276 D(p->level++);
9277 if (p->error_indicator) {
9278 D(p->level--);
9279 return NULL;
9280 }
9281 NameDefaultPair* _res = NULL;
9282 int _mark = p->mark;
9283 { // param default ',' TYPE_COMMENT?
9284 if (p->error_indicator) {
9285 D(p->level--);
9286 return NULL;
9287 }
9288 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9289 Token * _literal;
9290 arg_ty a;
9291 expr_ty c;
9292 void *tc;
9293 if (
9294 (a = param_rule(p)) // param
9295 &&
9296 (c = default_rule(p)) // default
9297 &&
9298 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9299 &&
9300 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9301 )
9302 {
9303 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9304 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9305 if (_res == NULL && PyErr_Occurred()) {
9306 p->error_indicator = 1;
9307 D(p->level--);
9308 return NULL;
9309 }
9310 goto done;
9311 }
9312 p->mark = _mark;
9313 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9315 }
9316 { // param default TYPE_COMMENT? &')'
9317 if (p->error_indicator) {
9318 D(p->level--);
9319 return NULL;
9320 }
9321 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9322 arg_ty a;
9323 expr_ty c;
9324 void *tc;
9325 if (
9326 (a = param_rule(p)) // param
9327 &&
9328 (c = default_rule(p)) // default
9329 &&
9330 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9331 &&
9332 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9333 )
9334 {
9335 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9336 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9337 if (_res == NULL && PyErr_Occurred()) {
9338 p->error_indicator = 1;
9339 D(p->level--);
9340 return NULL;
9341 }
9342 goto done;
9343 }
9344 p->mark = _mark;
9345 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9347 }
9348 _res = NULL;
9349 done:
9350 D(p->level--);
9351 return _res;
9352}
9353
9354// param_maybe_default:
9355// | param default? ',' TYPE_COMMENT?
9356// | param default? TYPE_COMMENT? &')'
9357static NameDefaultPair*
9358param_maybe_default_rule(Parser *p)
9359{
9360 D(p->level++);
9361 if (p->error_indicator) {
9362 D(p->level--);
9363 return NULL;
9364 }
9365 NameDefaultPair* _res = NULL;
9366 int _mark = p->mark;
9367 { // param default? ',' TYPE_COMMENT?
9368 if (p->error_indicator) {
9369 D(p->level--);
9370 return NULL;
9371 }
9372 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9373 Token * _literal;
9374 arg_ty a;
9375 void *c;
9376 void *tc;
9377 if (
9378 (a = param_rule(p)) // param
9379 &&
9380 (c = default_rule(p), 1) // default?
9381 &&
9382 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9383 &&
9384 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9385 )
9386 {
9387 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9388 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9389 if (_res == NULL && PyErr_Occurred()) {
9390 p->error_indicator = 1;
9391 D(p->level--);
9392 return NULL;
9393 }
9394 goto done;
9395 }
9396 p->mark = _mark;
9397 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9399 }
9400 { // param default? TYPE_COMMENT? &')'
9401 if (p->error_indicator) {
9402 D(p->level--);
9403 return NULL;
9404 }
9405 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9406 arg_ty a;
9407 void *c;
9408 void *tc;
9409 if (
9410 (a = param_rule(p)) // param
9411 &&
9412 (c = default_rule(p), 1) // default?
9413 &&
9414 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9415 &&
9416 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9417 )
9418 {
9419 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9420 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9421 if (_res == NULL && PyErr_Occurred()) {
9422 p->error_indicator = 1;
9423 D(p->level--);
9424 return NULL;
9425 }
9426 goto done;
9427 }
9428 p->mark = _mark;
9429 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9431 }
9432 _res = NULL;
9433 done:
9434 D(p->level--);
9435 return _res;
9436}
9437
9438// param: NAME annotation?
9439static arg_ty
9440param_rule(Parser *p)
9441{
9442 D(p->level++);
9443 if (p->error_indicator) {
9444 D(p->level--);
9445 return NULL;
9446 }
9447 arg_ty _res = NULL;
9448 int _mark = p->mark;
9449 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9450 p->error_indicator = 1;
9451 D(p->level--);
9452 return NULL;
9453 }
9454 int _start_lineno = p->tokens[_mark]->lineno;
9455 UNUSED(_start_lineno); // Only used by EXTRA macro
9456 int _start_col_offset = p->tokens[_mark]->col_offset;
9457 UNUSED(_start_col_offset); // Only used by EXTRA macro
9458 { // NAME annotation?
9459 if (p->error_indicator) {
9460 D(p->level--);
9461 return NULL;
9462 }
9463 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9464 expr_ty a;
9465 void *b;
9466 if (
9467 (a = _PyPegen_name_token(p)) // NAME
9468 &&
9469 (b = annotation_rule(p), 1) // annotation?
9470 )
9471 {
9472 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9473 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9474 if (_token == NULL) {
9475 D(p->level--);
9476 return NULL;
9477 }
9478 int _end_lineno = _token->end_lineno;
9479 UNUSED(_end_lineno); // Only used by EXTRA macro
9480 int _end_col_offset = _token->end_col_offset;
9481 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009482 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009483 if (_res == NULL && PyErr_Occurred()) {
9484 p->error_indicator = 1;
9485 D(p->level--);
9486 return NULL;
9487 }
9488 goto done;
9489 }
9490 p->mark = _mark;
9491 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9493 }
9494 _res = NULL;
9495 done:
9496 D(p->level--);
9497 return _res;
9498}
9499
9500// annotation: ':' expression
9501static expr_ty
9502annotation_rule(Parser *p)
9503{
9504 D(p->level++);
9505 if (p->error_indicator) {
9506 D(p->level--);
9507 return NULL;
9508 }
9509 expr_ty _res = NULL;
9510 int _mark = p->mark;
9511 { // ':' expression
9512 if (p->error_indicator) {
9513 D(p->level--);
9514 return NULL;
9515 }
9516 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9517 Token * _literal;
9518 expr_ty a;
9519 if (
9520 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9521 &&
9522 (a = expression_rule(p)) // expression
9523 )
9524 {
9525 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9526 _res = a;
9527 if (_res == NULL && PyErr_Occurred()) {
9528 p->error_indicator = 1;
9529 D(p->level--);
9530 return NULL;
9531 }
9532 goto done;
9533 }
9534 p->mark = _mark;
9535 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9537 }
9538 _res = NULL;
9539 done:
9540 D(p->level--);
9541 return _res;
9542}
9543
9544// default: '=' expression
9545static expr_ty
9546default_rule(Parser *p)
9547{
9548 D(p->level++);
9549 if (p->error_indicator) {
9550 D(p->level--);
9551 return NULL;
9552 }
9553 expr_ty _res = NULL;
9554 int _mark = p->mark;
9555 { // '=' expression
9556 if (p->error_indicator) {
9557 D(p->level--);
9558 return NULL;
9559 }
9560 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9561 Token * _literal;
9562 expr_ty a;
9563 if (
9564 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9565 &&
9566 (a = expression_rule(p)) // expression
9567 )
9568 {
9569 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9570 _res = a;
9571 if (_res == NULL && PyErr_Occurred()) {
9572 p->error_indicator = 1;
9573 D(p->level--);
9574 return NULL;
9575 }
9576 goto done;
9577 }
9578 p->mark = _mark;
9579 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9581 }
9582 _res = NULL;
9583 done:
9584 D(p->level--);
9585 return _res;
9586}
9587
9588// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009589static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009590decorators_rule(Parser *p)
9591{
9592 D(p->level++);
9593 if (p->error_indicator) {
9594 D(p->level--);
9595 return NULL;
9596 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009597 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009598 int _mark = p->mark;
9599 { // (('@' named_expression NEWLINE))+
9600 if (p->error_indicator) {
9601 D(p->level--);
9602 return NULL;
9603 }
9604 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009605 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009606 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009607 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009608 )
9609 {
9610 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9611 _res = a;
9612 if (_res == NULL && PyErr_Occurred()) {
9613 p->error_indicator = 1;
9614 D(p->level--);
9615 return NULL;
9616 }
9617 goto done;
9618 }
9619 p->mark = _mark;
9620 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9622 }
9623 _res = NULL;
9624 done:
9625 D(p->level--);
9626 return _res;
9627}
9628
9629// class_def: decorators class_def_raw | class_def_raw
9630static stmt_ty
9631class_def_rule(Parser *p)
9632{
9633 D(p->level++);
9634 if (p->error_indicator) {
9635 D(p->level--);
9636 return NULL;
9637 }
9638 stmt_ty _res = NULL;
9639 int _mark = p->mark;
9640 { // decorators class_def_raw
9641 if (p->error_indicator) {
9642 D(p->level--);
9643 return NULL;
9644 }
9645 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 +01009646 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009647 stmt_ty b;
9648 if (
9649 (a = decorators_rule(p)) // decorators
9650 &&
9651 (b = class_def_raw_rule(p)) // class_def_raw
9652 )
9653 {
9654 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9655 _res = _PyPegen_class_def_decorators ( p , a , b );
9656 if (_res == NULL && PyErr_Occurred()) {
9657 p->error_indicator = 1;
9658 D(p->level--);
9659 return NULL;
9660 }
9661 goto done;
9662 }
9663 p->mark = _mark;
9664 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9666 }
9667 { // class_def_raw
9668 if (p->error_indicator) {
9669 D(p->level--);
9670 return NULL;
9671 }
9672 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9673 stmt_ty class_def_raw_var;
9674 if (
9675 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9676 )
9677 {
9678 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9679 _res = class_def_raw_var;
9680 goto done;
9681 }
9682 p->mark = _mark;
9683 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9685 }
9686 _res = NULL;
9687 done:
9688 D(p->level--);
9689 return _res;
9690}
9691
Pablo Galindo56c95df2021-04-21 15:28:21 +01009692// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009693static stmt_ty
9694class_def_raw_rule(Parser *p)
9695{
9696 D(p->level++);
9697 if (p->error_indicator) {
9698 D(p->level--);
9699 return NULL;
9700 }
9701 stmt_ty _res = NULL;
9702 int _mark = p->mark;
9703 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9704 p->error_indicator = 1;
9705 D(p->level--);
9706 return NULL;
9707 }
9708 int _start_lineno = p->tokens[_mark]->lineno;
9709 UNUSED(_start_lineno); // Only used by EXTRA macro
9710 int _start_col_offset = p->tokens[_mark]->col_offset;
9711 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009712 if (p->call_invalid_rules) { // invalid_class_def_raw
9713 if (p->error_indicator) {
9714 D(p->level--);
9715 return NULL;
9716 }
9717 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9718 void *invalid_class_def_raw_var;
9719 if (
9720 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9721 )
9722 {
9723 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9724 _res = invalid_class_def_raw_var;
9725 goto done;
9726 }
9727 p->mark = _mark;
9728 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9730 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009731 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009732 if (p->error_indicator) {
9733 D(p->level--);
9734 return NULL;
9735 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009736 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 +01009737 Token * _keyword;
9738 Token * _literal;
9739 expr_ty a;
9740 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009741 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009742 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009743 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009744 &&
9745 (a = _PyPegen_name_token(p)) // NAME
9746 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009747 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009748 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009749 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009750 &&
9751 (c = block_rule(p)) // block
9752 )
9753 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009754 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 +01009755 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9756 if (_token == NULL) {
9757 D(p->level--);
9758 return NULL;
9759 }
9760 int _end_lineno = _token->end_lineno;
9761 UNUSED(_end_lineno); // Only used by EXTRA macro
9762 int _end_col_offset = _token->end_col_offset;
9763 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009764 _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 +01009765 if (_res == NULL && PyErr_Occurred()) {
9766 p->error_indicator = 1;
9767 D(p->level--);
9768 return NULL;
9769 }
9770 goto done;
9771 }
9772 p->mark = _mark;
9773 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009775 }
9776 _res = NULL;
9777 done:
9778 D(p->level--);
9779 return _res;
9780}
9781
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009782// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009783static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009784block_rule(Parser *p)
9785{
9786 D(p->level++);
9787 if (p->error_indicator) {
9788 D(p->level--);
9789 return NULL;
9790 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009791 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009792 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9793 D(p->level--);
9794 return _res;
9795 }
9796 int _mark = p->mark;
9797 { // NEWLINE INDENT statements DEDENT
9798 if (p->error_indicator) {
9799 D(p->level--);
9800 return NULL;
9801 }
9802 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 +01009803 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009804 Token * dedent_var;
9805 Token * indent_var;
9806 Token * newline_var;
9807 if (
9808 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9809 &&
9810 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9811 &&
9812 (a = statements_rule(p)) // statements
9813 &&
9814 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9815 )
9816 {
9817 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9818 _res = a;
9819 if (_res == NULL && PyErr_Occurred()) {
9820 p->error_indicator = 1;
9821 D(p->level--);
9822 return NULL;
9823 }
9824 goto done;
9825 }
9826 p->mark = _mark;
9827 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9829 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009830 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009831 if (p->error_indicator) {
9832 D(p->level--);
9833 return NULL;
9834 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009835 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9836 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009837 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009838 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009839 )
9840 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009841 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9842 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009843 goto done;
9844 }
9845 p->mark = _mark;
9846 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009848 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009849 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009850 if (p->error_indicator) {
9851 D(p->level--);
9852 return NULL;
9853 }
9854 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9855 void *invalid_block_var;
9856 if (
9857 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9858 )
9859 {
9860 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9861 _res = invalid_block_var;
9862 goto done;
9863 }
9864 p->mark = _mark;
9865 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9867 }
9868 _res = NULL;
9869 done:
9870 _PyPegen_insert_memo(p, _mark, block_type, _res);
9871 D(p->level--);
9872 return _res;
9873}
9874
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009875// star_expressions:
9876// | star_expression ((',' star_expression))+ ','?
9877// | star_expression ','
9878// | star_expression
9879static expr_ty
9880star_expressions_rule(Parser *p)
9881{
9882 D(p->level++);
9883 if (p->error_indicator) {
9884 D(p->level--);
9885 return NULL;
9886 }
9887 expr_ty _res = NULL;
9888 int _mark = p->mark;
9889 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9890 p->error_indicator = 1;
9891 D(p->level--);
9892 return NULL;
9893 }
9894 int _start_lineno = p->tokens[_mark]->lineno;
9895 UNUSED(_start_lineno); // Only used by EXTRA macro
9896 int _start_col_offset = p->tokens[_mark]->col_offset;
9897 UNUSED(_start_col_offset); // Only used by EXTRA macro
9898 { // star_expression ((',' star_expression))+ ','?
9899 if (p->error_indicator) {
9900 D(p->level--);
9901 return NULL;
9902 }
9903 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9904 void *_opt_var;
9905 UNUSED(_opt_var); // Silence compiler warnings
9906 expr_ty a;
9907 asdl_seq * b;
9908 if (
9909 (a = star_expression_rule(p)) // star_expression
9910 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009911 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009912 &&
9913 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9914 )
9915 {
9916 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9918 if (_token == NULL) {
9919 D(p->level--);
9920 return NULL;
9921 }
9922 int _end_lineno = _token->end_lineno;
9923 UNUSED(_end_lineno); // Only used by EXTRA macro
9924 int _end_col_offset = _token->end_col_offset;
9925 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009926 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009927 if (_res == NULL && PyErr_Occurred()) {
9928 p->error_indicator = 1;
9929 D(p->level--);
9930 return NULL;
9931 }
9932 goto done;
9933 }
9934 p->mark = _mark;
9935 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9937 }
9938 { // star_expression ','
9939 if (p->error_indicator) {
9940 D(p->level--);
9941 return NULL;
9942 }
9943 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9944 Token * _literal;
9945 expr_ty a;
9946 if (
9947 (a = star_expression_rule(p)) // star_expression
9948 &&
9949 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9950 )
9951 {
9952 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9954 if (_token == NULL) {
9955 D(p->level--);
9956 return NULL;
9957 }
9958 int _end_lineno = _token->end_lineno;
9959 UNUSED(_end_lineno); // Only used by EXTRA macro
9960 int _end_col_offset = _token->end_col_offset;
9961 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009962 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009963 if (_res == NULL && PyErr_Occurred()) {
9964 p->error_indicator = 1;
9965 D(p->level--);
9966 return NULL;
9967 }
9968 goto done;
9969 }
9970 p->mark = _mark;
9971 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9973 }
9974 { // star_expression
9975 if (p->error_indicator) {
9976 D(p->level--);
9977 return NULL;
9978 }
9979 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9980 expr_ty star_expression_var;
9981 if (
9982 (star_expression_var = star_expression_rule(p)) // star_expression
9983 )
9984 {
9985 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9986 _res = star_expression_var;
9987 goto done;
9988 }
9989 p->mark = _mark;
9990 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9992 }
9993 _res = NULL;
9994 done:
9995 D(p->level--);
9996 return _res;
9997}
9998
9999// star_expression: '*' bitwise_or | expression
10000static expr_ty
10001star_expression_rule(Parser *p)
10002{
10003 D(p->level++);
10004 if (p->error_indicator) {
10005 D(p->level--);
10006 return NULL;
10007 }
10008 expr_ty _res = NULL;
10009 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10010 D(p->level--);
10011 return _res;
10012 }
10013 int _mark = p->mark;
10014 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10015 p->error_indicator = 1;
10016 D(p->level--);
10017 return NULL;
10018 }
10019 int _start_lineno = p->tokens[_mark]->lineno;
10020 UNUSED(_start_lineno); // Only used by EXTRA macro
10021 int _start_col_offset = p->tokens[_mark]->col_offset;
10022 UNUSED(_start_col_offset); // Only used by EXTRA macro
10023 { // '*' bitwise_or
10024 if (p->error_indicator) {
10025 D(p->level--);
10026 return NULL;
10027 }
10028 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10029 Token * _literal;
10030 expr_ty a;
10031 if (
10032 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10033 &&
10034 (a = bitwise_or_rule(p)) // bitwise_or
10035 )
10036 {
10037 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10039 if (_token == NULL) {
10040 D(p->level--);
10041 return NULL;
10042 }
10043 int _end_lineno = _token->end_lineno;
10044 UNUSED(_end_lineno); // Only used by EXTRA macro
10045 int _end_col_offset = _token->end_col_offset;
10046 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010047 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010048 if (_res == NULL && PyErr_Occurred()) {
10049 p->error_indicator = 1;
10050 D(p->level--);
10051 return NULL;
10052 }
10053 goto done;
10054 }
10055 p->mark = _mark;
10056 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10058 }
10059 { // expression
10060 if (p->error_indicator) {
10061 D(p->level--);
10062 return NULL;
10063 }
10064 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10065 expr_ty expression_var;
10066 if (
10067 (expression_var = expression_rule(p)) // expression
10068 )
10069 {
10070 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10071 _res = expression_var;
10072 goto done;
10073 }
10074 p->mark = _mark;
10075 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10077 }
10078 _res = NULL;
10079 done:
10080 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10081 D(p->level--);
10082 return _res;
10083}
10084
10085// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010086static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010087star_named_expressions_rule(Parser *p)
10088{
10089 D(p->level++);
10090 if (p->error_indicator) {
10091 D(p->level--);
10092 return NULL;
10093 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010094 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010095 int _mark = p->mark;
10096 { // ','.star_named_expression+ ','?
10097 if (p->error_indicator) {
10098 D(p->level--);
10099 return NULL;
10100 }
10101 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10102 void *_opt_var;
10103 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010104 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010105 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010106 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010107 &&
10108 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10109 )
10110 {
10111 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10112 _res = a;
10113 if (_res == NULL && PyErr_Occurred()) {
10114 p->error_indicator = 1;
10115 D(p->level--);
10116 return NULL;
10117 }
10118 goto done;
10119 }
10120 p->mark = _mark;
10121 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10123 }
10124 _res = NULL;
10125 done:
10126 D(p->level--);
10127 return _res;
10128}
10129
10130// star_named_expression: '*' bitwise_or | named_expression
10131static expr_ty
10132star_named_expression_rule(Parser *p)
10133{
10134 D(p->level++);
10135 if (p->error_indicator) {
10136 D(p->level--);
10137 return NULL;
10138 }
10139 expr_ty _res = NULL;
10140 int _mark = p->mark;
10141 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10142 p->error_indicator = 1;
10143 D(p->level--);
10144 return NULL;
10145 }
10146 int _start_lineno = p->tokens[_mark]->lineno;
10147 UNUSED(_start_lineno); // Only used by EXTRA macro
10148 int _start_col_offset = p->tokens[_mark]->col_offset;
10149 UNUSED(_start_col_offset); // Only used by EXTRA macro
10150 { // '*' bitwise_or
10151 if (p->error_indicator) {
10152 D(p->level--);
10153 return NULL;
10154 }
10155 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10156 Token * _literal;
10157 expr_ty a;
10158 if (
10159 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10160 &&
10161 (a = bitwise_or_rule(p)) // bitwise_or
10162 )
10163 {
10164 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10165 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10166 if (_token == NULL) {
10167 D(p->level--);
10168 return NULL;
10169 }
10170 int _end_lineno = _token->end_lineno;
10171 UNUSED(_end_lineno); // Only used by EXTRA macro
10172 int _end_col_offset = _token->end_col_offset;
10173 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010174 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010175 if (_res == NULL && PyErr_Occurred()) {
10176 p->error_indicator = 1;
10177 D(p->level--);
10178 return NULL;
10179 }
10180 goto done;
10181 }
10182 p->mark = _mark;
10183 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10185 }
10186 { // named_expression
10187 if (p->error_indicator) {
10188 D(p->level--);
10189 return NULL;
10190 }
10191 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10192 expr_ty named_expression_var;
10193 if (
10194 (named_expression_var = named_expression_rule(p)) // named_expression
10195 )
10196 {
10197 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10198 _res = named_expression_var;
10199 goto done;
10200 }
10201 p->mark = _mark;
10202 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10204 }
10205 _res = NULL;
10206 done:
10207 D(p->level--);
10208 return _res;
10209}
10210
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010211// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010212static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010213assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010214{
10215 D(p->level++);
10216 if (p->error_indicator) {
10217 D(p->level--);
10218 return NULL;
10219 }
10220 expr_ty _res = NULL;
10221 int _mark = p->mark;
10222 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10223 p->error_indicator = 1;
10224 D(p->level--);
10225 return NULL;
10226 }
10227 int _start_lineno = p->tokens[_mark]->lineno;
10228 UNUSED(_start_lineno); // Only used by EXTRA macro
10229 int _start_col_offset = p->tokens[_mark]->col_offset;
10230 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010231 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010232 if (p->error_indicator) {
10233 D(p->level--);
10234 return NULL;
10235 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010236 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010237 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010238 Token * _literal;
10239 expr_ty a;
10240 expr_ty b;
10241 if (
10242 (a = _PyPegen_name_token(p)) // NAME
10243 &&
10244 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10245 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010246 (_cut_var = 1)
10247 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010248 (b = expression_rule(p)) // expression
10249 )
10250 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010251 D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10253 if (_token == NULL) {
10254 D(p->level--);
10255 return NULL;
10256 }
10257 int _end_lineno = _token->end_lineno;
10258 UNUSED(_end_lineno); // Only used by EXTRA macro
10259 int _end_col_offset = _token->end_col_offset;
10260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010261 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010262 if (_res == NULL && PyErr_Occurred()) {
10263 p->error_indicator = 1;
10264 D(p->level--);
10265 return NULL;
10266 }
10267 goto done;
10268 }
10269 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010270 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10272 if (_cut_var) {
10273 D(p->level--);
10274 return NULL;
10275 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010276 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010277 _res = NULL;
10278 done:
10279 D(p->level--);
10280 return _res;
10281}
10282
10283// named_expression: assigment_expression | invalid_named_expression | expression !':='
10284static expr_ty
10285named_expression_rule(Parser *p)
10286{
10287 D(p->level++);
10288 if (p->error_indicator) {
10289 D(p->level--);
10290 return NULL;
10291 }
10292 expr_ty _res = NULL;
10293 int _mark = p->mark;
10294 { // assigment_expression
10295 if (p->error_indicator) {
10296 D(p->level--);
10297 return NULL;
10298 }
10299 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10300 expr_ty assigment_expression_var;
10301 if (
10302 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10303 )
10304 {
10305 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10306 _res = assigment_expression_var;
10307 goto done;
10308 }
10309 p->mark = _mark;
10310 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10312 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010313 if (p->call_invalid_rules) { // invalid_named_expression
10314 if (p->error_indicator) {
10315 D(p->level--);
10316 return NULL;
10317 }
10318 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10319 void *invalid_named_expression_var;
10320 if (
10321 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10322 )
10323 {
10324 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10325 _res = invalid_named_expression_var;
10326 goto done;
10327 }
10328 p->mark = _mark;
10329 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10331 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010332 { // expression !':='
10333 if (p->error_indicator) {
10334 D(p->level--);
10335 return NULL;
10336 }
10337 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10338 expr_ty expression_var;
10339 if (
10340 (expression_var = expression_rule(p)) // expression
10341 &&
10342 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10343 )
10344 {
10345 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10346 _res = expression_var;
10347 goto done;
10348 }
10349 p->mark = _mark;
10350 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10352 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010353 _res = NULL;
10354 done:
10355 D(p->level--);
10356 return _res;
10357}
10358
10359// annotated_rhs: yield_expr | star_expressions
10360static expr_ty
10361annotated_rhs_rule(Parser *p)
10362{
10363 D(p->level++);
10364 if (p->error_indicator) {
10365 D(p->level--);
10366 return NULL;
10367 }
10368 expr_ty _res = NULL;
10369 int _mark = p->mark;
10370 { // yield_expr
10371 if (p->error_indicator) {
10372 D(p->level--);
10373 return NULL;
10374 }
10375 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10376 expr_ty yield_expr_var;
10377 if (
10378 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10379 )
10380 {
10381 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10382 _res = yield_expr_var;
10383 goto done;
10384 }
10385 p->mark = _mark;
10386 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10388 }
10389 { // star_expressions
10390 if (p->error_indicator) {
10391 D(p->level--);
10392 return NULL;
10393 }
10394 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10395 expr_ty star_expressions_var;
10396 if (
10397 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10398 )
10399 {
10400 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10401 _res = star_expressions_var;
10402 goto done;
10403 }
10404 p->mark = _mark;
10405 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10407 }
10408 _res = NULL;
10409 done:
10410 D(p->level--);
10411 return _res;
10412}
10413
10414// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10415static expr_ty
10416expressions_rule(Parser *p)
10417{
10418 D(p->level++);
10419 if (p->error_indicator) {
10420 D(p->level--);
10421 return NULL;
10422 }
10423 expr_ty _res = NULL;
10424 int _mark = p->mark;
10425 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10426 p->error_indicator = 1;
10427 D(p->level--);
10428 return NULL;
10429 }
10430 int _start_lineno = p->tokens[_mark]->lineno;
10431 UNUSED(_start_lineno); // Only used by EXTRA macro
10432 int _start_col_offset = p->tokens[_mark]->col_offset;
10433 UNUSED(_start_col_offset); // Only used by EXTRA macro
10434 { // expression ((',' expression))+ ','?
10435 if (p->error_indicator) {
10436 D(p->level--);
10437 return NULL;
10438 }
10439 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10440 void *_opt_var;
10441 UNUSED(_opt_var); // Silence compiler warnings
10442 expr_ty a;
10443 asdl_seq * b;
10444 if (
10445 (a = expression_rule(p)) // expression
10446 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010447 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010448 &&
10449 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10450 )
10451 {
10452 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10453 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10454 if (_token == NULL) {
10455 D(p->level--);
10456 return NULL;
10457 }
10458 int _end_lineno = _token->end_lineno;
10459 UNUSED(_end_lineno); // Only used by EXTRA macro
10460 int _end_col_offset = _token->end_col_offset;
10461 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010462 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010463 if (_res == NULL && PyErr_Occurred()) {
10464 p->error_indicator = 1;
10465 D(p->level--);
10466 return NULL;
10467 }
10468 goto done;
10469 }
10470 p->mark = _mark;
10471 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10473 }
10474 { // expression ','
10475 if (p->error_indicator) {
10476 D(p->level--);
10477 return NULL;
10478 }
10479 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10480 Token * _literal;
10481 expr_ty a;
10482 if (
10483 (a = expression_rule(p)) // expression
10484 &&
10485 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10486 )
10487 {
10488 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10490 if (_token == NULL) {
10491 D(p->level--);
10492 return NULL;
10493 }
10494 int _end_lineno = _token->end_lineno;
10495 UNUSED(_end_lineno); // Only used by EXTRA macro
10496 int _end_col_offset = _token->end_col_offset;
10497 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010498 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010499 if (_res == NULL && PyErr_Occurred()) {
10500 p->error_indicator = 1;
10501 D(p->level--);
10502 return NULL;
10503 }
10504 goto done;
10505 }
10506 p->mark = _mark;
10507 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10509 }
10510 { // expression
10511 if (p->error_indicator) {
10512 D(p->level--);
10513 return NULL;
10514 }
10515 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10516 expr_ty expression_var;
10517 if (
10518 (expression_var = expression_rule(p)) // expression
10519 )
10520 {
10521 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10522 _res = expression_var;
10523 goto done;
10524 }
10525 p->mark = _mark;
10526 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10528 }
10529 _res = NULL;
10530 done:
10531 D(p->level--);
10532 return _res;
10533}
10534
Pablo Galindob2802482021-04-15 21:38:45 +010010535// expression:
10536// | invalid_expression
10537// | disjunction 'if' disjunction 'else' expression
10538// | disjunction
10539// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010540static expr_ty
10541expression_rule(Parser *p)
10542{
10543 D(p->level++);
10544 if (p->error_indicator) {
10545 D(p->level--);
10546 return NULL;
10547 }
10548 expr_ty _res = NULL;
10549 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10550 D(p->level--);
10551 return _res;
10552 }
10553 int _mark = p->mark;
10554 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10555 p->error_indicator = 1;
10556 D(p->level--);
10557 return NULL;
10558 }
10559 int _start_lineno = p->tokens[_mark]->lineno;
10560 UNUSED(_start_lineno); // Only used by EXTRA macro
10561 int _start_col_offset = p->tokens[_mark]->col_offset;
10562 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010563 if (p->call_invalid_rules) { // invalid_expression
10564 if (p->error_indicator) {
10565 D(p->level--);
10566 return NULL;
10567 }
10568 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10569 void *invalid_expression_var;
10570 if (
10571 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10572 )
10573 {
10574 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10575 _res = invalid_expression_var;
10576 goto done;
10577 }
10578 p->mark = _mark;
10579 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10581 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010582 { // disjunction 'if' disjunction 'else' expression
10583 if (p->error_indicator) {
10584 D(p->level--);
10585 return NULL;
10586 }
10587 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10588 Token * _keyword;
10589 Token * _keyword_1;
10590 expr_ty a;
10591 expr_ty b;
10592 expr_ty c;
10593 if (
10594 (a = disjunction_rule(p)) // disjunction
10595 &&
10596 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10597 &&
10598 (b = disjunction_rule(p)) // disjunction
10599 &&
10600 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10601 &&
10602 (c = expression_rule(p)) // expression
10603 )
10604 {
10605 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10606 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10607 if (_token == NULL) {
10608 D(p->level--);
10609 return NULL;
10610 }
10611 int _end_lineno = _token->end_lineno;
10612 UNUSED(_end_lineno); // Only used by EXTRA macro
10613 int _end_col_offset = _token->end_col_offset;
10614 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010615 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010616 if (_res == NULL && PyErr_Occurred()) {
10617 p->error_indicator = 1;
10618 D(p->level--);
10619 return NULL;
10620 }
10621 goto done;
10622 }
10623 p->mark = _mark;
10624 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10626 }
10627 { // disjunction
10628 if (p->error_indicator) {
10629 D(p->level--);
10630 return NULL;
10631 }
10632 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10633 expr_ty disjunction_var;
10634 if (
10635 (disjunction_var = disjunction_rule(p)) // disjunction
10636 )
10637 {
10638 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10639 _res = disjunction_var;
10640 goto done;
10641 }
10642 p->mark = _mark;
10643 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10645 }
10646 { // lambdef
10647 if (p->error_indicator) {
10648 D(p->level--);
10649 return NULL;
10650 }
10651 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10652 expr_ty lambdef_var;
10653 if (
10654 (lambdef_var = lambdef_rule(p)) // lambdef
10655 )
10656 {
10657 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10658 _res = lambdef_var;
10659 goto done;
10660 }
10661 p->mark = _mark;
10662 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10664 }
10665 _res = NULL;
10666 done:
10667 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10668 D(p->level--);
10669 return _res;
10670}
10671
10672// lambdef: 'lambda' lambda_params? ':' expression
10673static expr_ty
10674lambdef_rule(Parser *p)
10675{
10676 D(p->level++);
10677 if (p->error_indicator) {
10678 D(p->level--);
10679 return NULL;
10680 }
10681 expr_ty _res = NULL;
10682 int _mark = p->mark;
10683 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10684 p->error_indicator = 1;
10685 D(p->level--);
10686 return NULL;
10687 }
10688 int _start_lineno = p->tokens[_mark]->lineno;
10689 UNUSED(_start_lineno); // Only used by EXTRA macro
10690 int _start_col_offset = p->tokens[_mark]->col_offset;
10691 UNUSED(_start_col_offset); // Only used by EXTRA macro
10692 { // 'lambda' lambda_params? ':' expression
10693 if (p->error_indicator) {
10694 D(p->level--);
10695 return NULL;
10696 }
10697 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10698 Token * _keyword;
10699 Token * _literal;
10700 void *a;
10701 expr_ty b;
10702 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010703 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010704 &&
10705 (a = lambda_params_rule(p), 1) // lambda_params?
10706 &&
10707 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10708 &&
10709 (b = expression_rule(p)) // expression
10710 )
10711 {
10712 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10713 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10714 if (_token == NULL) {
10715 D(p->level--);
10716 return NULL;
10717 }
10718 int _end_lineno = _token->end_lineno;
10719 UNUSED(_end_lineno); // Only used by EXTRA macro
10720 int _end_col_offset = _token->end_col_offset;
10721 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010722 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010723 if (_res == NULL && PyErr_Occurred()) {
10724 p->error_indicator = 1;
10725 D(p->level--);
10726 return NULL;
10727 }
10728 goto done;
10729 }
10730 p->mark = _mark;
10731 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10733 }
10734 _res = NULL;
10735 done:
10736 D(p->level--);
10737 return _res;
10738}
10739
10740// lambda_params: invalid_lambda_parameters | lambda_parameters
10741static arguments_ty
10742lambda_params_rule(Parser *p)
10743{
10744 D(p->level++);
10745 if (p->error_indicator) {
10746 D(p->level--);
10747 return NULL;
10748 }
10749 arguments_ty _res = NULL;
10750 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010751 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010752 if (p->error_indicator) {
10753 D(p->level--);
10754 return NULL;
10755 }
10756 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10757 void *invalid_lambda_parameters_var;
10758 if (
10759 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10760 )
10761 {
10762 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10763 _res = invalid_lambda_parameters_var;
10764 goto done;
10765 }
10766 p->mark = _mark;
10767 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10769 }
10770 { // lambda_parameters
10771 if (p->error_indicator) {
10772 D(p->level--);
10773 return NULL;
10774 }
10775 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10776 arguments_ty lambda_parameters_var;
10777 if (
10778 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10779 )
10780 {
10781 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10782 _res = lambda_parameters_var;
10783 goto done;
10784 }
10785 p->mark = _mark;
10786 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10788 }
10789 _res = NULL;
10790 done:
10791 D(p->level--);
10792 return _res;
10793}
10794
10795// lambda_parameters:
10796// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10797// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10798// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10799// | lambda_param_with_default+ lambda_star_etc?
10800// | lambda_star_etc
10801static arguments_ty
10802lambda_parameters_rule(Parser *p)
10803{
10804 D(p->level++);
10805 if (p->error_indicator) {
10806 D(p->level--);
10807 return NULL;
10808 }
10809 arguments_ty _res = NULL;
10810 int _mark = p->mark;
10811 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10812 if (p->error_indicator) {
10813 D(p->level--);
10814 return NULL;
10815 }
10816 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 +010010817 asdl_arg_seq* a;
10818 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010819 asdl_seq * c;
10820 void *d;
10821 if (
10822 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10823 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010824 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010825 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010826 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010827 &&
10828 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10829 )
10830 {
10831 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?"));
10832 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10833 if (_res == NULL && PyErr_Occurred()) {
10834 p->error_indicator = 1;
10835 D(p->level--);
10836 return NULL;
10837 }
10838 goto done;
10839 }
10840 p->mark = _mark;
10841 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10843 }
10844 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10845 if (p->error_indicator) {
10846 D(p->level--);
10847 return NULL;
10848 }
10849 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?"));
10850 SlashWithDefault* a;
10851 asdl_seq * b;
10852 void *c;
10853 if (
10854 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10855 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010856 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010857 &&
10858 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10859 )
10860 {
10861 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?"));
10862 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10863 if (_res == NULL && PyErr_Occurred()) {
10864 p->error_indicator = 1;
10865 D(p->level--);
10866 return NULL;
10867 }
10868 goto done;
10869 }
10870 p->mark = _mark;
10871 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10873 }
10874 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10875 if (p->error_indicator) {
10876 D(p->level--);
10877 return NULL;
10878 }
10879 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 +010010880 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010881 asdl_seq * b;
10882 void *c;
10883 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010884 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010885 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010886 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010887 &&
10888 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10889 )
10890 {
10891 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?"));
10892 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10893 if (_res == NULL && PyErr_Occurred()) {
10894 p->error_indicator = 1;
10895 D(p->level--);
10896 return NULL;
10897 }
10898 goto done;
10899 }
10900 p->mark = _mark;
10901 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10903 }
10904 { // lambda_param_with_default+ lambda_star_etc?
10905 if (p->error_indicator) {
10906 D(p->level--);
10907 return NULL;
10908 }
10909 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10910 asdl_seq * a;
10911 void *b;
10912 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010913 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010914 &&
10915 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10916 )
10917 {
10918 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10919 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10920 if (_res == NULL && PyErr_Occurred()) {
10921 p->error_indicator = 1;
10922 D(p->level--);
10923 return NULL;
10924 }
10925 goto done;
10926 }
10927 p->mark = _mark;
10928 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10930 }
10931 { // lambda_star_etc
10932 if (p->error_indicator) {
10933 D(p->level--);
10934 return NULL;
10935 }
10936 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10937 StarEtc* a;
10938 if (
10939 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10940 )
10941 {
10942 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10943 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10944 if (_res == NULL && PyErr_Occurred()) {
10945 p->error_indicator = 1;
10946 D(p->level--);
10947 return NULL;
10948 }
10949 goto done;
10950 }
10951 p->mark = _mark;
10952 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10954 }
10955 _res = NULL;
10956 done:
10957 D(p->level--);
10958 return _res;
10959}
10960
10961// lambda_slash_no_default:
10962// | lambda_param_no_default+ '/' ','
10963// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010964static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010965lambda_slash_no_default_rule(Parser *p)
10966{
10967 D(p->level++);
10968 if (p->error_indicator) {
10969 D(p->level--);
10970 return NULL;
10971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010972 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010973 int _mark = p->mark;
10974 { // lambda_param_no_default+ '/' ','
10975 if (p->error_indicator) {
10976 D(p->level--);
10977 return NULL;
10978 }
10979 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10980 Token * _literal;
10981 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010982 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010983 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010984 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010985 &&
10986 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10987 &&
10988 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10989 )
10990 {
10991 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10992 _res = a;
10993 if (_res == NULL && PyErr_Occurred()) {
10994 p->error_indicator = 1;
10995 D(p->level--);
10996 return NULL;
10997 }
10998 goto done;
10999 }
11000 p->mark = _mark;
11001 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11003 }
11004 { // lambda_param_no_default+ '/' &':'
11005 if (p->error_indicator) {
11006 D(p->level--);
11007 return NULL;
11008 }
11009 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11010 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011011 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011012 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011013 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011014 &&
11015 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11016 &&
11017 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11018 )
11019 {
11020 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11021 _res = a;
11022 if (_res == NULL && PyErr_Occurred()) {
11023 p->error_indicator = 1;
11024 D(p->level--);
11025 return NULL;
11026 }
11027 goto done;
11028 }
11029 p->mark = _mark;
11030 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11032 }
11033 _res = NULL;
11034 done:
11035 D(p->level--);
11036 return _res;
11037}
11038
11039// lambda_slash_with_default:
11040// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11041// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11042static SlashWithDefault*
11043lambda_slash_with_default_rule(Parser *p)
11044{
11045 D(p->level++);
11046 if (p->error_indicator) {
11047 D(p->level--);
11048 return NULL;
11049 }
11050 SlashWithDefault* _res = NULL;
11051 int _mark = p->mark;
11052 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11053 if (p->error_indicator) {
11054 D(p->level--);
11055 return NULL;
11056 }
11057 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+ '/' ','"));
11058 Token * _literal;
11059 Token * _literal_1;
11060 asdl_seq * a;
11061 asdl_seq * b;
11062 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011063 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011064 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011065 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011066 &&
11067 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11068 &&
11069 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11070 )
11071 {
11072 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 +010011073 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011074 if (_res == NULL && PyErr_Occurred()) {
11075 p->error_indicator = 1;
11076 D(p->level--);
11077 return NULL;
11078 }
11079 goto done;
11080 }
11081 p->mark = _mark;
11082 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11084 }
11085 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11086 if (p->error_indicator) {
11087 D(p->level--);
11088 return NULL;
11089 }
11090 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+ '/' &':'"));
11091 Token * _literal;
11092 asdl_seq * a;
11093 asdl_seq * b;
11094 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011095 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011096 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011097 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011098 &&
11099 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11100 &&
11101 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11102 )
11103 {
11104 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 +010011105 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011106 if (_res == NULL && PyErr_Occurred()) {
11107 p->error_indicator = 1;
11108 D(p->level--);
11109 return NULL;
11110 }
11111 goto done;
11112 }
11113 p->mark = _mark;
11114 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11116 }
11117 _res = NULL;
11118 done:
11119 D(p->level--);
11120 return _res;
11121}
11122
11123// lambda_star_etc:
11124// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11125// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11126// | lambda_kwds
11127// | invalid_lambda_star_etc
11128static StarEtc*
11129lambda_star_etc_rule(Parser *p)
11130{
11131 D(p->level++);
11132 if (p->error_indicator) {
11133 D(p->level--);
11134 return NULL;
11135 }
11136 StarEtc* _res = NULL;
11137 int _mark = p->mark;
11138 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11139 if (p->error_indicator) {
11140 D(p->level--);
11141 return NULL;
11142 }
11143 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?"));
11144 Token * _literal;
11145 arg_ty a;
11146 asdl_seq * b;
11147 void *c;
11148 if (
11149 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11150 &&
11151 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11152 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011153 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011154 &&
11155 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11156 )
11157 {
11158 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?"));
11159 _res = _PyPegen_star_etc ( p , a , b , c );
11160 if (_res == NULL && PyErr_Occurred()) {
11161 p->error_indicator = 1;
11162 D(p->level--);
11163 return NULL;
11164 }
11165 goto done;
11166 }
11167 p->mark = _mark;
11168 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11170 }
11171 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11172 if (p->error_indicator) {
11173 D(p->level--);
11174 return NULL;
11175 }
11176 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11177 Token * _literal;
11178 Token * _literal_1;
11179 asdl_seq * b;
11180 void *c;
11181 if (
11182 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11183 &&
11184 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11185 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011186 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011187 &&
11188 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11189 )
11190 {
11191 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11192 _res = _PyPegen_star_etc ( p , NULL , b , c );
11193 if (_res == NULL && PyErr_Occurred()) {
11194 p->error_indicator = 1;
11195 D(p->level--);
11196 return NULL;
11197 }
11198 goto done;
11199 }
11200 p->mark = _mark;
11201 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11203 }
11204 { // lambda_kwds
11205 if (p->error_indicator) {
11206 D(p->level--);
11207 return NULL;
11208 }
11209 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11210 arg_ty a;
11211 if (
11212 (a = lambda_kwds_rule(p)) // lambda_kwds
11213 )
11214 {
11215 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11216 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11217 if (_res == NULL && PyErr_Occurred()) {
11218 p->error_indicator = 1;
11219 D(p->level--);
11220 return NULL;
11221 }
11222 goto done;
11223 }
11224 p->mark = _mark;
11225 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11227 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011228 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011229 if (p->error_indicator) {
11230 D(p->level--);
11231 return NULL;
11232 }
11233 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11234 void *invalid_lambda_star_etc_var;
11235 if (
11236 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11237 )
11238 {
11239 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11240 _res = invalid_lambda_star_etc_var;
11241 goto done;
11242 }
11243 p->mark = _mark;
11244 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11246 }
11247 _res = NULL;
11248 done:
11249 D(p->level--);
11250 return _res;
11251}
11252
11253// lambda_kwds: '**' lambda_param_no_default
11254static arg_ty
11255lambda_kwds_rule(Parser *p)
11256{
11257 D(p->level++);
11258 if (p->error_indicator) {
11259 D(p->level--);
11260 return NULL;
11261 }
11262 arg_ty _res = NULL;
11263 int _mark = p->mark;
11264 { // '**' lambda_param_no_default
11265 if (p->error_indicator) {
11266 D(p->level--);
11267 return NULL;
11268 }
11269 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11270 Token * _literal;
11271 arg_ty a;
11272 if (
11273 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11274 &&
11275 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11276 )
11277 {
11278 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11279 _res = a;
11280 if (_res == NULL && PyErr_Occurred()) {
11281 p->error_indicator = 1;
11282 D(p->level--);
11283 return NULL;
11284 }
11285 goto done;
11286 }
11287 p->mark = _mark;
11288 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11290 }
11291 _res = NULL;
11292 done:
11293 D(p->level--);
11294 return _res;
11295}
11296
11297// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11298static arg_ty
11299lambda_param_no_default_rule(Parser *p)
11300{
11301 D(p->level++);
11302 if (p->error_indicator) {
11303 D(p->level--);
11304 return NULL;
11305 }
11306 arg_ty _res = NULL;
11307 int _mark = p->mark;
11308 { // lambda_param ','
11309 if (p->error_indicator) {
11310 D(p->level--);
11311 return NULL;
11312 }
11313 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11314 Token * _literal;
11315 arg_ty a;
11316 if (
11317 (a = lambda_param_rule(p)) // lambda_param
11318 &&
11319 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11320 )
11321 {
11322 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11323 _res = a;
11324 if (_res == NULL && PyErr_Occurred()) {
11325 p->error_indicator = 1;
11326 D(p->level--);
11327 return NULL;
11328 }
11329 goto done;
11330 }
11331 p->mark = _mark;
11332 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11334 }
11335 { // lambda_param &':'
11336 if (p->error_indicator) {
11337 D(p->level--);
11338 return NULL;
11339 }
11340 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11341 arg_ty a;
11342 if (
11343 (a = lambda_param_rule(p)) // lambda_param
11344 &&
11345 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11346 )
11347 {
11348 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11349 _res = a;
11350 if (_res == NULL && PyErr_Occurred()) {
11351 p->error_indicator = 1;
11352 D(p->level--);
11353 return NULL;
11354 }
11355 goto done;
11356 }
11357 p->mark = _mark;
11358 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11360 }
11361 _res = NULL;
11362 done:
11363 D(p->level--);
11364 return _res;
11365}
11366
11367// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11368static NameDefaultPair*
11369lambda_param_with_default_rule(Parser *p)
11370{
11371 D(p->level++);
11372 if (p->error_indicator) {
11373 D(p->level--);
11374 return NULL;
11375 }
11376 NameDefaultPair* _res = NULL;
11377 int _mark = p->mark;
11378 { // lambda_param default ','
11379 if (p->error_indicator) {
11380 D(p->level--);
11381 return NULL;
11382 }
11383 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11384 Token * _literal;
11385 arg_ty a;
11386 expr_ty c;
11387 if (
11388 (a = lambda_param_rule(p)) // lambda_param
11389 &&
11390 (c = default_rule(p)) // default
11391 &&
11392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11393 )
11394 {
11395 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11396 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11397 if (_res == NULL && PyErr_Occurred()) {
11398 p->error_indicator = 1;
11399 D(p->level--);
11400 return NULL;
11401 }
11402 goto done;
11403 }
11404 p->mark = _mark;
11405 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11407 }
11408 { // lambda_param default &':'
11409 if (p->error_indicator) {
11410 D(p->level--);
11411 return NULL;
11412 }
11413 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11414 arg_ty a;
11415 expr_ty c;
11416 if (
11417 (a = lambda_param_rule(p)) // lambda_param
11418 &&
11419 (c = default_rule(p)) // default
11420 &&
11421 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11422 )
11423 {
11424 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11425 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11426 if (_res == NULL && PyErr_Occurred()) {
11427 p->error_indicator = 1;
11428 D(p->level--);
11429 return NULL;
11430 }
11431 goto done;
11432 }
11433 p->mark = _mark;
11434 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11436 }
11437 _res = NULL;
11438 done:
11439 D(p->level--);
11440 return _res;
11441}
11442
11443// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11444static NameDefaultPair*
11445lambda_param_maybe_default_rule(Parser *p)
11446{
11447 D(p->level++);
11448 if (p->error_indicator) {
11449 D(p->level--);
11450 return NULL;
11451 }
11452 NameDefaultPair* _res = NULL;
11453 int _mark = p->mark;
11454 { // lambda_param default? ','
11455 if (p->error_indicator) {
11456 D(p->level--);
11457 return NULL;
11458 }
11459 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11460 Token * _literal;
11461 arg_ty a;
11462 void *c;
11463 if (
11464 (a = lambda_param_rule(p)) // lambda_param
11465 &&
11466 (c = default_rule(p), 1) // default?
11467 &&
11468 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11469 )
11470 {
11471 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11472 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11473 if (_res == NULL && PyErr_Occurred()) {
11474 p->error_indicator = 1;
11475 D(p->level--);
11476 return NULL;
11477 }
11478 goto done;
11479 }
11480 p->mark = _mark;
11481 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11483 }
11484 { // lambda_param default? &':'
11485 if (p->error_indicator) {
11486 D(p->level--);
11487 return NULL;
11488 }
11489 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11490 arg_ty a;
11491 void *c;
11492 if (
11493 (a = lambda_param_rule(p)) // lambda_param
11494 &&
11495 (c = default_rule(p), 1) // default?
11496 &&
11497 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11498 )
11499 {
11500 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11501 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11502 if (_res == NULL && PyErr_Occurred()) {
11503 p->error_indicator = 1;
11504 D(p->level--);
11505 return NULL;
11506 }
11507 goto done;
11508 }
11509 p->mark = _mark;
11510 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11512 }
11513 _res = NULL;
11514 done:
11515 D(p->level--);
11516 return _res;
11517}
11518
11519// lambda_param: NAME
11520static arg_ty
11521lambda_param_rule(Parser *p)
11522{
11523 D(p->level++);
11524 if (p->error_indicator) {
11525 D(p->level--);
11526 return NULL;
11527 }
11528 arg_ty _res = NULL;
11529 int _mark = p->mark;
11530 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11531 p->error_indicator = 1;
11532 D(p->level--);
11533 return NULL;
11534 }
11535 int _start_lineno = p->tokens[_mark]->lineno;
11536 UNUSED(_start_lineno); // Only used by EXTRA macro
11537 int _start_col_offset = p->tokens[_mark]->col_offset;
11538 UNUSED(_start_col_offset); // Only used by EXTRA macro
11539 { // NAME
11540 if (p->error_indicator) {
11541 D(p->level--);
11542 return NULL;
11543 }
11544 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11545 expr_ty a;
11546 if (
11547 (a = _PyPegen_name_token(p)) // NAME
11548 )
11549 {
11550 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11551 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11552 if (_token == NULL) {
11553 D(p->level--);
11554 return NULL;
11555 }
11556 int _end_lineno = _token->end_lineno;
11557 UNUSED(_end_lineno); // Only used by EXTRA macro
11558 int _end_col_offset = _token->end_col_offset;
11559 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011560 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011561 if (_res == NULL && PyErr_Occurred()) {
11562 p->error_indicator = 1;
11563 D(p->level--);
11564 return NULL;
11565 }
11566 goto done;
11567 }
11568 p->mark = _mark;
11569 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11571 }
11572 _res = NULL;
11573 done:
11574 D(p->level--);
11575 return _res;
11576}
11577
11578// disjunction: conjunction (('or' conjunction))+ | conjunction
11579static expr_ty
11580disjunction_rule(Parser *p)
11581{
11582 D(p->level++);
11583 if (p->error_indicator) {
11584 D(p->level--);
11585 return NULL;
11586 }
11587 expr_ty _res = NULL;
11588 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11589 D(p->level--);
11590 return _res;
11591 }
11592 int _mark = p->mark;
11593 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11594 p->error_indicator = 1;
11595 D(p->level--);
11596 return NULL;
11597 }
11598 int _start_lineno = p->tokens[_mark]->lineno;
11599 UNUSED(_start_lineno); // Only used by EXTRA macro
11600 int _start_col_offset = p->tokens[_mark]->col_offset;
11601 UNUSED(_start_col_offset); // Only used by EXTRA macro
11602 { // conjunction (('or' conjunction))+
11603 if (p->error_indicator) {
11604 D(p->level--);
11605 return NULL;
11606 }
11607 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11608 expr_ty a;
11609 asdl_seq * b;
11610 if (
11611 (a = conjunction_rule(p)) // conjunction
11612 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011613 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011614 )
11615 {
11616 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11617 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11618 if (_token == NULL) {
11619 D(p->level--);
11620 return NULL;
11621 }
11622 int _end_lineno = _token->end_lineno;
11623 UNUSED(_end_lineno); // Only used by EXTRA macro
11624 int _end_col_offset = _token->end_col_offset;
11625 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011626 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011627 if (_res == NULL && PyErr_Occurred()) {
11628 p->error_indicator = 1;
11629 D(p->level--);
11630 return NULL;
11631 }
11632 goto done;
11633 }
11634 p->mark = _mark;
11635 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11637 }
11638 { // conjunction
11639 if (p->error_indicator) {
11640 D(p->level--);
11641 return NULL;
11642 }
11643 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11644 expr_ty conjunction_var;
11645 if (
11646 (conjunction_var = conjunction_rule(p)) // conjunction
11647 )
11648 {
11649 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11650 _res = conjunction_var;
11651 goto done;
11652 }
11653 p->mark = _mark;
11654 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11656 }
11657 _res = NULL;
11658 done:
11659 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11660 D(p->level--);
11661 return _res;
11662}
11663
11664// conjunction: inversion (('and' inversion))+ | inversion
11665static expr_ty
11666conjunction_rule(Parser *p)
11667{
11668 D(p->level++);
11669 if (p->error_indicator) {
11670 D(p->level--);
11671 return NULL;
11672 }
11673 expr_ty _res = NULL;
11674 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11675 D(p->level--);
11676 return _res;
11677 }
11678 int _mark = p->mark;
11679 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11680 p->error_indicator = 1;
11681 D(p->level--);
11682 return NULL;
11683 }
11684 int _start_lineno = p->tokens[_mark]->lineno;
11685 UNUSED(_start_lineno); // Only used by EXTRA macro
11686 int _start_col_offset = p->tokens[_mark]->col_offset;
11687 UNUSED(_start_col_offset); // Only used by EXTRA macro
11688 { // inversion (('and' inversion))+
11689 if (p->error_indicator) {
11690 D(p->level--);
11691 return NULL;
11692 }
11693 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11694 expr_ty a;
11695 asdl_seq * b;
11696 if (
11697 (a = inversion_rule(p)) // inversion
11698 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011699 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011700 )
11701 {
11702 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11704 if (_token == NULL) {
11705 D(p->level--);
11706 return NULL;
11707 }
11708 int _end_lineno = _token->end_lineno;
11709 UNUSED(_end_lineno); // Only used by EXTRA macro
11710 int _end_col_offset = _token->end_col_offset;
11711 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011712 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011713 if (_res == NULL && PyErr_Occurred()) {
11714 p->error_indicator = 1;
11715 D(p->level--);
11716 return NULL;
11717 }
11718 goto done;
11719 }
11720 p->mark = _mark;
11721 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11723 }
11724 { // inversion
11725 if (p->error_indicator) {
11726 D(p->level--);
11727 return NULL;
11728 }
11729 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11730 expr_ty inversion_var;
11731 if (
11732 (inversion_var = inversion_rule(p)) // inversion
11733 )
11734 {
11735 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11736 _res = inversion_var;
11737 goto done;
11738 }
11739 p->mark = _mark;
11740 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11742 }
11743 _res = NULL;
11744 done:
11745 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11746 D(p->level--);
11747 return _res;
11748}
11749
11750// inversion: 'not' inversion | comparison
11751static expr_ty
11752inversion_rule(Parser *p)
11753{
11754 D(p->level++);
11755 if (p->error_indicator) {
11756 D(p->level--);
11757 return NULL;
11758 }
11759 expr_ty _res = NULL;
11760 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11761 D(p->level--);
11762 return _res;
11763 }
11764 int _mark = p->mark;
11765 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11766 p->error_indicator = 1;
11767 D(p->level--);
11768 return NULL;
11769 }
11770 int _start_lineno = p->tokens[_mark]->lineno;
11771 UNUSED(_start_lineno); // Only used by EXTRA macro
11772 int _start_col_offset = p->tokens[_mark]->col_offset;
11773 UNUSED(_start_col_offset); // Only used by EXTRA macro
11774 { // 'not' inversion
11775 if (p->error_indicator) {
11776 D(p->level--);
11777 return NULL;
11778 }
11779 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11780 Token * _keyword;
11781 expr_ty a;
11782 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011783 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011784 &&
11785 (a = inversion_rule(p)) // inversion
11786 )
11787 {
11788 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11790 if (_token == NULL) {
11791 D(p->level--);
11792 return NULL;
11793 }
11794 int _end_lineno = _token->end_lineno;
11795 UNUSED(_end_lineno); // Only used by EXTRA macro
11796 int _end_col_offset = _token->end_col_offset;
11797 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011798 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011799 if (_res == NULL && PyErr_Occurred()) {
11800 p->error_indicator = 1;
11801 D(p->level--);
11802 return NULL;
11803 }
11804 goto done;
11805 }
11806 p->mark = _mark;
11807 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11809 }
11810 { // comparison
11811 if (p->error_indicator) {
11812 D(p->level--);
11813 return NULL;
11814 }
11815 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11816 expr_ty comparison_var;
11817 if (
11818 (comparison_var = comparison_rule(p)) // comparison
11819 )
11820 {
11821 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11822 _res = comparison_var;
11823 goto done;
11824 }
11825 p->mark = _mark;
11826 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11828 }
11829 _res = NULL;
11830 done:
11831 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11832 D(p->level--);
11833 return _res;
11834}
11835
11836// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11837static expr_ty
11838comparison_rule(Parser *p)
11839{
11840 D(p->level++);
11841 if (p->error_indicator) {
11842 D(p->level--);
11843 return NULL;
11844 }
11845 expr_ty _res = NULL;
11846 int _mark = p->mark;
11847 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11848 p->error_indicator = 1;
11849 D(p->level--);
11850 return NULL;
11851 }
11852 int _start_lineno = p->tokens[_mark]->lineno;
11853 UNUSED(_start_lineno); // Only used by EXTRA macro
11854 int _start_col_offset = p->tokens[_mark]->col_offset;
11855 UNUSED(_start_col_offset); // Only used by EXTRA macro
11856 { // bitwise_or compare_op_bitwise_or_pair+
11857 if (p->error_indicator) {
11858 D(p->level--);
11859 return NULL;
11860 }
11861 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11862 expr_ty a;
11863 asdl_seq * b;
11864 if (
11865 (a = bitwise_or_rule(p)) // bitwise_or
11866 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011867 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011868 )
11869 {
11870 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11871 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11872 if (_token == NULL) {
11873 D(p->level--);
11874 return NULL;
11875 }
11876 int _end_lineno = _token->end_lineno;
11877 UNUSED(_end_lineno); // Only used by EXTRA macro
11878 int _end_col_offset = _token->end_col_offset;
11879 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011880 _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 +010011881 if (_res == NULL && PyErr_Occurred()) {
11882 p->error_indicator = 1;
11883 D(p->level--);
11884 return NULL;
11885 }
11886 goto done;
11887 }
11888 p->mark = _mark;
11889 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11891 }
11892 { // bitwise_or
11893 if (p->error_indicator) {
11894 D(p->level--);
11895 return NULL;
11896 }
11897 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11898 expr_ty bitwise_or_var;
11899 if (
11900 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11901 )
11902 {
11903 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11904 _res = bitwise_or_var;
11905 goto done;
11906 }
11907 p->mark = _mark;
11908 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11910 }
11911 _res = NULL;
11912 done:
11913 D(p->level--);
11914 return _res;
11915}
11916
11917// compare_op_bitwise_or_pair:
11918// | eq_bitwise_or
11919// | noteq_bitwise_or
11920// | lte_bitwise_or
11921// | lt_bitwise_or
11922// | gte_bitwise_or
11923// | gt_bitwise_or
11924// | notin_bitwise_or
11925// | in_bitwise_or
11926// | isnot_bitwise_or
11927// | is_bitwise_or
11928static CmpopExprPair*
11929compare_op_bitwise_or_pair_rule(Parser *p)
11930{
11931 D(p->level++);
11932 if (p->error_indicator) {
11933 D(p->level--);
11934 return NULL;
11935 }
11936 CmpopExprPair* _res = NULL;
11937 int _mark = p->mark;
11938 { // eq_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, "eq_bitwise_or"));
11944 CmpopExprPair* eq_bitwise_or_var;
11945 if (
11946 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11947 )
11948 {
11949 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11950 _res = eq_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, "eq_bitwise_or"));
11956 }
11957 { // noteq_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, "noteq_bitwise_or"));
11963 CmpopExprPair* noteq_bitwise_or_var;
11964 if (
11965 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11966 )
11967 {
11968 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11969 _res = noteq_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, "noteq_bitwise_or"));
11975 }
11976 { // lte_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, "lte_bitwise_or"));
11982 CmpopExprPair* lte_bitwise_or_var;
11983 if (
11984 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11985 )
11986 {
11987 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11988 _res = lte_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, "lte_bitwise_or"));
11994 }
11995 { // lt_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, "lt_bitwise_or"));
12001 CmpopExprPair* lt_bitwise_or_var;
12002 if (
12003 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12004 )
12005 {
12006 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12007 _res = lt_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, "lt_bitwise_or"));
12013 }
12014 { // gte_bitwise_or
12015 if (p->error_indicator) {
12016 D(p->level--);
12017 return NULL;
12018 }
12019 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12020 CmpopExprPair* gte_bitwise_or_var;
12021 if (
12022 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12023 )
12024 {
12025 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12026 _res = gte_bitwise_or_var;
12027 goto done;
12028 }
12029 p->mark = _mark;
12030 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12032 }
12033 { // gt_bitwise_or
12034 if (p->error_indicator) {
12035 D(p->level--);
12036 return NULL;
12037 }
12038 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12039 CmpopExprPair* gt_bitwise_or_var;
12040 if (
12041 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12042 )
12043 {
12044 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12045 _res = gt_bitwise_or_var;
12046 goto done;
12047 }
12048 p->mark = _mark;
12049 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12051 }
12052 { // notin_bitwise_or
12053 if (p->error_indicator) {
12054 D(p->level--);
12055 return NULL;
12056 }
12057 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12058 CmpopExprPair* notin_bitwise_or_var;
12059 if (
12060 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12061 )
12062 {
12063 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12064 _res = notin_bitwise_or_var;
12065 goto done;
12066 }
12067 p->mark = _mark;
12068 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12070 }
12071 { // in_bitwise_or
12072 if (p->error_indicator) {
12073 D(p->level--);
12074 return NULL;
12075 }
12076 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12077 CmpopExprPair* in_bitwise_or_var;
12078 if (
12079 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12080 )
12081 {
12082 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12083 _res = in_bitwise_or_var;
12084 goto done;
12085 }
12086 p->mark = _mark;
12087 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12089 }
12090 { // isnot_bitwise_or
12091 if (p->error_indicator) {
12092 D(p->level--);
12093 return NULL;
12094 }
12095 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12096 CmpopExprPair* isnot_bitwise_or_var;
12097 if (
12098 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12099 )
12100 {
12101 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12102 _res = isnot_bitwise_or_var;
12103 goto done;
12104 }
12105 p->mark = _mark;
12106 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12108 }
12109 { // is_bitwise_or
12110 if (p->error_indicator) {
12111 D(p->level--);
12112 return NULL;
12113 }
12114 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12115 CmpopExprPair* is_bitwise_or_var;
12116 if (
12117 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12118 )
12119 {
12120 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12121 _res = is_bitwise_or_var;
12122 goto done;
12123 }
12124 p->mark = _mark;
12125 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12127 }
12128 _res = NULL;
12129 done:
12130 D(p->level--);
12131 return _res;
12132}
12133
12134// eq_bitwise_or: '==' bitwise_or
12135static CmpopExprPair*
12136eq_bitwise_or_rule(Parser *p)
12137{
12138 D(p->level++);
12139 if (p->error_indicator) {
12140 D(p->level--);
12141 return NULL;
12142 }
12143 CmpopExprPair* _res = NULL;
12144 int _mark = p->mark;
12145 { // '==' bitwise_or
12146 if (p->error_indicator) {
12147 D(p->level--);
12148 return NULL;
12149 }
12150 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12151 Token * _literal;
12152 expr_ty a;
12153 if (
12154 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12155 &&
12156 (a = bitwise_or_rule(p)) // bitwise_or
12157 )
12158 {
12159 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12160 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12161 if (_res == NULL && PyErr_Occurred()) {
12162 p->error_indicator = 1;
12163 D(p->level--);
12164 return NULL;
12165 }
12166 goto done;
12167 }
12168 p->mark = _mark;
12169 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12171 }
12172 _res = NULL;
12173 done:
12174 D(p->level--);
12175 return _res;
12176}
12177
12178// noteq_bitwise_or: ('!=') bitwise_or
12179static CmpopExprPair*
12180noteq_bitwise_or_rule(Parser *p)
12181{
12182 D(p->level++);
12183 if (p->error_indicator) {
12184 D(p->level--);
12185 return NULL;
12186 }
12187 CmpopExprPair* _res = NULL;
12188 int _mark = p->mark;
12189 { // ('!=') bitwise_or
12190 if (p->error_indicator) {
12191 D(p->level--);
12192 return NULL;
12193 }
12194 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 -080012195 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012196 expr_ty a;
12197 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012198 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012199 &&
12200 (a = bitwise_or_rule(p)) // bitwise_or
12201 )
12202 {
12203 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12204 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12205 if (_res == NULL && PyErr_Occurred()) {
12206 p->error_indicator = 1;
12207 D(p->level--);
12208 return NULL;
12209 }
12210 goto done;
12211 }
12212 p->mark = _mark;
12213 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12215 }
12216 _res = NULL;
12217 done:
12218 D(p->level--);
12219 return _res;
12220}
12221
12222// lte_bitwise_or: '<=' bitwise_or
12223static CmpopExprPair*
12224lte_bitwise_or_rule(Parser *p)
12225{
12226 D(p->level++);
12227 if (p->error_indicator) {
12228 D(p->level--);
12229 return NULL;
12230 }
12231 CmpopExprPair* _res = NULL;
12232 int _mark = p->mark;
12233 { // '<=' bitwise_or
12234 if (p->error_indicator) {
12235 D(p->level--);
12236 return NULL;
12237 }
12238 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12239 Token * _literal;
12240 expr_ty a;
12241 if (
12242 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12243 &&
12244 (a = bitwise_or_rule(p)) // bitwise_or
12245 )
12246 {
12247 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12248 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12249 if (_res == NULL && PyErr_Occurred()) {
12250 p->error_indicator = 1;
12251 D(p->level--);
12252 return NULL;
12253 }
12254 goto done;
12255 }
12256 p->mark = _mark;
12257 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12259 }
12260 _res = NULL;
12261 done:
12262 D(p->level--);
12263 return _res;
12264}
12265
12266// lt_bitwise_or: '<' bitwise_or
12267static CmpopExprPair*
12268lt_bitwise_or_rule(Parser *p)
12269{
12270 D(p->level++);
12271 if (p->error_indicator) {
12272 D(p->level--);
12273 return NULL;
12274 }
12275 CmpopExprPair* _res = NULL;
12276 int _mark = p->mark;
12277 { // '<' bitwise_or
12278 if (p->error_indicator) {
12279 D(p->level--);
12280 return NULL;
12281 }
12282 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12283 Token * _literal;
12284 expr_ty a;
12285 if (
12286 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12287 &&
12288 (a = bitwise_or_rule(p)) // bitwise_or
12289 )
12290 {
12291 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12292 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12293 if (_res == NULL && PyErr_Occurred()) {
12294 p->error_indicator = 1;
12295 D(p->level--);
12296 return NULL;
12297 }
12298 goto done;
12299 }
12300 p->mark = _mark;
12301 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12303 }
12304 _res = NULL;
12305 done:
12306 D(p->level--);
12307 return _res;
12308}
12309
12310// gte_bitwise_or: '>=' bitwise_or
12311static CmpopExprPair*
12312gte_bitwise_or_rule(Parser *p)
12313{
12314 D(p->level++);
12315 if (p->error_indicator) {
12316 D(p->level--);
12317 return NULL;
12318 }
12319 CmpopExprPair* _res = NULL;
12320 int _mark = p->mark;
12321 { // '>=' bitwise_or
12322 if (p->error_indicator) {
12323 D(p->level--);
12324 return NULL;
12325 }
12326 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12327 Token * _literal;
12328 expr_ty a;
12329 if (
12330 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12331 &&
12332 (a = bitwise_or_rule(p)) // bitwise_or
12333 )
12334 {
12335 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12336 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12337 if (_res == NULL && PyErr_Occurred()) {
12338 p->error_indicator = 1;
12339 D(p->level--);
12340 return NULL;
12341 }
12342 goto done;
12343 }
12344 p->mark = _mark;
12345 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12347 }
12348 _res = NULL;
12349 done:
12350 D(p->level--);
12351 return _res;
12352}
12353
12354// gt_bitwise_or: '>' bitwise_or
12355static CmpopExprPair*
12356gt_bitwise_or_rule(Parser *p)
12357{
12358 D(p->level++);
12359 if (p->error_indicator) {
12360 D(p->level--);
12361 return NULL;
12362 }
12363 CmpopExprPair* _res = NULL;
12364 int _mark = p->mark;
12365 { // '>' bitwise_or
12366 if (p->error_indicator) {
12367 D(p->level--);
12368 return NULL;
12369 }
12370 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12371 Token * _literal;
12372 expr_ty a;
12373 if (
12374 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12375 &&
12376 (a = bitwise_or_rule(p)) // bitwise_or
12377 )
12378 {
12379 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12380 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12381 if (_res == NULL && PyErr_Occurred()) {
12382 p->error_indicator = 1;
12383 D(p->level--);
12384 return NULL;
12385 }
12386 goto done;
12387 }
12388 p->mark = _mark;
12389 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12391 }
12392 _res = NULL;
12393 done:
12394 D(p->level--);
12395 return _res;
12396}
12397
12398// notin_bitwise_or: 'not' 'in' bitwise_or
12399static CmpopExprPair*
12400notin_bitwise_or_rule(Parser *p)
12401{
12402 D(p->level++);
12403 if (p->error_indicator) {
12404 D(p->level--);
12405 return NULL;
12406 }
12407 CmpopExprPair* _res = NULL;
12408 int _mark = p->mark;
12409 { // 'not' 'in' bitwise_or
12410 if (p->error_indicator) {
12411 D(p->level--);
12412 return NULL;
12413 }
12414 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12415 Token * _keyword;
12416 Token * _keyword_1;
12417 expr_ty a;
12418 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012419 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012420 &&
12421 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12422 &&
12423 (a = bitwise_or_rule(p)) // bitwise_or
12424 )
12425 {
12426 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12427 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12428 if (_res == NULL && PyErr_Occurred()) {
12429 p->error_indicator = 1;
12430 D(p->level--);
12431 return NULL;
12432 }
12433 goto done;
12434 }
12435 p->mark = _mark;
12436 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12438 }
12439 _res = NULL;
12440 done:
12441 D(p->level--);
12442 return _res;
12443}
12444
12445// in_bitwise_or: 'in' bitwise_or
12446static CmpopExprPair*
12447in_bitwise_or_rule(Parser *p)
12448{
12449 D(p->level++);
12450 if (p->error_indicator) {
12451 D(p->level--);
12452 return NULL;
12453 }
12454 CmpopExprPair* _res = NULL;
12455 int _mark = p->mark;
12456 { // 'in' bitwise_or
12457 if (p->error_indicator) {
12458 D(p->level--);
12459 return NULL;
12460 }
12461 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12462 Token * _keyword;
12463 expr_ty a;
12464 if (
12465 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12466 &&
12467 (a = bitwise_or_rule(p)) // bitwise_or
12468 )
12469 {
12470 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12471 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12472 if (_res == NULL && PyErr_Occurred()) {
12473 p->error_indicator = 1;
12474 D(p->level--);
12475 return NULL;
12476 }
12477 goto done;
12478 }
12479 p->mark = _mark;
12480 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12482 }
12483 _res = NULL;
12484 done:
12485 D(p->level--);
12486 return _res;
12487}
12488
12489// isnot_bitwise_or: 'is' 'not' bitwise_or
12490static CmpopExprPair*
12491isnot_bitwise_or_rule(Parser *p)
12492{
12493 D(p->level++);
12494 if (p->error_indicator) {
12495 D(p->level--);
12496 return NULL;
12497 }
12498 CmpopExprPair* _res = NULL;
12499 int _mark = p->mark;
12500 { // 'is' 'not' bitwise_or
12501 if (p->error_indicator) {
12502 D(p->level--);
12503 return NULL;
12504 }
12505 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12506 Token * _keyword;
12507 Token * _keyword_1;
12508 expr_ty a;
12509 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012510 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012511 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012512 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012513 &&
12514 (a = bitwise_or_rule(p)) // bitwise_or
12515 )
12516 {
12517 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12518 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12519 if (_res == NULL && PyErr_Occurred()) {
12520 p->error_indicator = 1;
12521 D(p->level--);
12522 return NULL;
12523 }
12524 goto done;
12525 }
12526 p->mark = _mark;
12527 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12529 }
12530 _res = NULL;
12531 done:
12532 D(p->level--);
12533 return _res;
12534}
12535
12536// is_bitwise_or: 'is' bitwise_or
12537static CmpopExprPair*
12538is_bitwise_or_rule(Parser *p)
12539{
12540 D(p->level++);
12541 if (p->error_indicator) {
12542 D(p->level--);
12543 return NULL;
12544 }
12545 CmpopExprPair* _res = NULL;
12546 int _mark = p->mark;
12547 { // 'is' bitwise_or
12548 if (p->error_indicator) {
12549 D(p->level--);
12550 return NULL;
12551 }
12552 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12553 Token * _keyword;
12554 expr_ty a;
12555 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012556 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012557 &&
12558 (a = bitwise_or_rule(p)) // bitwise_or
12559 )
12560 {
12561 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12562 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12563 if (_res == NULL && PyErr_Occurred()) {
12564 p->error_indicator = 1;
12565 D(p->level--);
12566 return NULL;
12567 }
12568 goto done;
12569 }
12570 p->mark = _mark;
12571 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12573 }
12574 _res = NULL;
12575 done:
12576 D(p->level--);
12577 return _res;
12578}
12579
12580// Left-recursive
12581// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12582static expr_ty bitwise_or_raw(Parser *);
12583static expr_ty
12584bitwise_or_rule(Parser *p)
12585{
12586 D(p->level++);
12587 expr_ty _res = NULL;
12588 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12589 D(p->level--);
12590 return _res;
12591 }
12592 int _mark = p->mark;
12593 int _resmark = p->mark;
12594 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012595 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12596 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012597 D(p->level--);
12598 return _res;
12599 }
12600 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012601 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012602 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012603 p->in_raw_rule--;
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_or_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_or '|' bitwise_xor
12635 if (p->error_indicator) {
12636 D(p->level--);
12637 return NULL;
12638 }
12639 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12640 Token * _literal;
12641 expr_ty a;
12642 expr_ty b;
12643 if (
12644 (a = bitwise_or_rule(p)) // bitwise_or
12645 &&
12646 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12647 &&
12648 (b = bitwise_xor_rule(p)) // bitwise_xor
12649 )
12650 {
12651 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
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 , BitOr , 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_or[%d-%d]: %s failed!\n", p->level, ' ',
12671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12672 }
12673 { // bitwise_xor
12674 if (p->error_indicator) {
12675 D(p->level--);
12676 return NULL;
12677 }
12678 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12679 expr_ty bitwise_xor_var;
12680 if (
12681 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12682 )
12683 {
12684 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12685 _res = bitwise_xor_var;
12686 goto done;
12687 }
12688 p->mark = _mark;
12689 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12691 }
12692 _res = NULL;
12693 done:
12694 D(p->level--);
12695 return _res;
12696}
12697
12698// Left-recursive
12699// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12700static expr_ty bitwise_xor_raw(Parser *);
12701static expr_ty
12702bitwise_xor_rule(Parser *p)
12703{
12704 D(p->level++);
12705 expr_ty _res = NULL;
12706 if (_PyPegen_is_memoized(p, bitwise_xor_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_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12714 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012715 D(p->level--);
12716 return _res;
12717 }
12718 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012719 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012720 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012721 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012722 if (p->error_indicator)
12723 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 if (_raw == NULL || p->mark <= _resmark)
12725 break;
12726 _resmark = p->mark;
12727 _res = _raw;
12728 }
12729 p->mark = _resmark;
12730 D(p->level--);
12731 return _res;
12732}
12733static expr_ty
12734bitwise_xor_raw(Parser *p)
12735{
12736 D(p->level++);
12737 if (p->error_indicator) {
12738 D(p->level--);
12739 return NULL;
12740 }
12741 expr_ty _res = NULL;
12742 int _mark = p->mark;
12743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12744 p->error_indicator = 1;
12745 D(p->level--);
12746 return NULL;
12747 }
12748 int _start_lineno = p->tokens[_mark]->lineno;
12749 UNUSED(_start_lineno); // Only used by EXTRA macro
12750 int _start_col_offset = p->tokens[_mark]->col_offset;
12751 UNUSED(_start_col_offset); // Only used by EXTRA macro
12752 { // bitwise_xor '^' bitwise_and
12753 if (p->error_indicator) {
12754 D(p->level--);
12755 return NULL;
12756 }
12757 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12758 Token * _literal;
12759 expr_ty a;
12760 expr_ty b;
12761 if (
12762 (a = bitwise_xor_rule(p)) // bitwise_xor
12763 &&
12764 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12765 &&
12766 (b = bitwise_and_rule(p)) // bitwise_and
12767 )
12768 {
12769 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12771 if (_token == NULL) {
12772 D(p->level--);
12773 return NULL;
12774 }
12775 int _end_lineno = _token->end_lineno;
12776 UNUSED(_end_lineno); // Only used by EXTRA macro
12777 int _end_col_offset = _token->end_col_offset;
12778 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012779 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012780 if (_res == NULL && PyErr_Occurred()) {
12781 p->error_indicator = 1;
12782 D(p->level--);
12783 return NULL;
12784 }
12785 goto done;
12786 }
12787 p->mark = _mark;
12788 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12790 }
12791 { // bitwise_and
12792 if (p->error_indicator) {
12793 D(p->level--);
12794 return NULL;
12795 }
12796 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12797 expr_ty bitwise_and_var;
12798 if (
12799 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12800 )
12801 {
12802 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12803 _res = bitwise_and_var;
12804 goto done;
12805 }
12806 p->mark = _mark;
12807 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12809 }
12810 _res = NULL;
12811 done:
12812 D(p->level--);
12813 return _res;
12814}
12815
12816// Left-recursive
12817// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12818static expr_ty bitwise_and_raw(Parser *);
12819static expr_ty
12820bitwise_and_rule(Parser *p)
12821{
12822 D(p->level++);
12823 expr_ty _res = NULL;
12824 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12825 D(p->level--);
12826 return _res;
12827 }
12828 int _mark = p->mark;
12829 int _resmark = p->mark;
12830 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012831 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12832 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012833 D(p->level--);
12834 return _res;
12835 }
12836 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012837 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012838 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012839 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012840 if (p->error_indicator)
12841 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012842 if (_raw == NULL || p->mark <= _resmark)
12843 break;
12844 _resmark = p->mark;
12845 _res = _raw;
12846 }
12847 p->mark = _resmark;
12848 D(p->level--);
12849 return _res;
12850}
12851static expr_ty
12852bitwise_and_raw(Parser *p)
12853{
12854 D(p->level++);
12855 if (p->error_indicator) {
12856 D(p->level--);
12857 return NULL;
12858 }
12859 expr_ty _res = NULL;
12860 int _mark = p->mark;
12861 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12862 p->error_indicator = 1;
12863 D(p->level--);
12864 return NULL;
12865 }
12866 int _start_lineno = p->tokens[_mark]->lineno;
12867 UNUSED(_start_lineno); // Only used by EXTRA macro
12868 int _start_col_offset = p->tokens[_mark]->col_offset;
12869 UNUSED(_start_col_offset); // Only used by EXTRA macro
12870 { // bitwise_and '&' shift_expr
12871 if (p->error_indicator) {
12872 D(p->level--);
12873 return NULL;
12874 }
12875 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12876 Token * _literal;
12877 expr_ty a;
12878 expr_ty b;
12879 if (
12880 (a = bitwise_and_rule(p)) // bitwise_and
12881 &&
12882 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12883 &&
12884 (b = shift_expr_rule(p)) // shift_expr
12885 )
12886 {
12887 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12889 if (_token == NULL) {
12890 D(p->level--);
12891 return NULL;
12892 }
12893 int _end_lineno = _token->end_lineno;
12894 UNUSED(_end_lineno); // Only used by EXTRA macro
12895 int _end_col_offset = _token->end_col_offset;
12896 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012897 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012898 if (_res == NULL && PyErr_Occurred()) {
12899 p->error_indicator = 1;
12900 D(p->level--);
12901 return NULL;
12902 }
12903 goto done;
12904 }
12905 p->mark = _mark;
12906 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12908 }
12909 { // shift_expr
12910 if (p->error_indicator) {
12911 D(p->level--);
12912 return NULL;
12913 }
12914 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12915 expr_ty shift_expr_var;
12916 if (
12917 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12918 )
12919 {
12920 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12921 _res = shift_expr_var;
12922 goto done;
12923 }
12924 p->mark = _mark;
12925 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12927 }
12928 _res = NULL;
12929 done:
12930 D(p->level--);
12931 return _res;
12932}
12933
12934// Left-recursive
12935// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12936static expr_ty shift_expr_raw(Parser *);
12937static expr_ty
12938shift_expr_rule(Parser *p)
12939{
12940 D(p->level++);
12941 expr_ty _res = NULL;
12942 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12943 D(p->level--);
12944 return _res;
12945 }
12946 int _mark = p->mark;
12947 int _resmark = p->mark;
12948 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012949 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12950 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012951 D(p->level--);
12952 return _res;
12953 }
12954 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012955 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012956 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012957 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012958 if (p->error_indicator)
12959 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012960 if (_raw == NULL || p->mark <= _resmark)
12961 break;
12962 _resmark = p->mark;
12963 _res = _raw;
12964 }
12965 p->mark = _resmark;
12966 D(p->level--);
12967 return _res;
12968}
12969static expr_ty
12970shift_expr_raw(Parser *p)
12971{
12972 D(p->level++);
12973 if (p->error_indicator) {
12974 D(p->level--);
12975 return NULL;
12976 }
12977 expr_ty _res = NULL;
12978 int _mark = p->mark;
12979 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12980 p->error_indicator = 1;
12981 D(p->level--);
12982 return NULL;
12983 }
12984 int _start_lineno = p->tokens[_mark]->lineno;
12985 UNUSED(_start_lineno); // Only used by EXTRA macro
12986 int _start_col_offset = p->tokens[_mark]->col_offset;
12987 UNUSED(_start_col_offset); // Only used by EXTRA macro
12988 { // shift_expr '<<' sum
12989 if (p->error_indicator) {
12990 D(p->level--);
12991 return NULL;
12992 }
12993 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12994 Token * _literal;
12995 expr_ty a;
12996 expr_ty b;
12997 if (
12998 (a = shift_expr_rule(p)) // shift_expr
12999 &&
13000 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
13001 &&
13002 (b = sum_rule(p)) // sum
13003 )
13004 {
13005 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13007 if (_token == NULL) {
13008 D(p->level--);
13009 return NULL;
13010 }
13011 int _end_lineno = _token->end_lineno;
13012 UNUSED(_end_lineno); // Only used by EXTRA macro
13013 int _end_col_offset = _token->end_col_offset;
13014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013015 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013016 if (_res == NULL && PyErr_Occurred()) {
13017 p->error_indicator = 1;
13018 D(p->level--);
13019 return NULL;
13020 }
13021 goto done;
13022 }
13023 p->mark = _mark;
13024 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13026 }
13027 { // shift_expr '>>' sum
13028 if (p->error_indicator) {
13029 D(p->level--);
13030 return NULL;
13031 }
13032 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13033 Token * _literal;
13034 expr_ty a;
13035 expr_ty b;
13036 if (
13037 (a = shift_expr_rule(p)) // shift_expr
13038 &&
13039 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13040 &&
13041 (b = sum_rule(p)) // sum
13042 )
13043 {
13044 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13046 if (_token == NULL) {
13047 D(p->level--);
13048 return NULL;
13049 }
13050 int _end_lineno = _token->end_lineno;
13051 UNUSED(_end_lineno); // Only used by EXTRA macro
13052 int _end_col_offset = _token->end_col_offset;
13053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013054 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013055 if (_res == NULL && PyErr_Occurred()) {
13056 p->error_indicator = 1;
13057 D(p->level--);
13058 return NULL;
13059 }
13060 goto done;
13061 }
13062 p->mark = _mark;
13063 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13065 }
13066 { // sum
13067 if (p->error_indicator) {
13068 D(p->level--);
13069 return NULL;
13070 }
13071 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13072 expr_ty sum_var;
13073 if (
13074 (sum_var = sum_rule(p)) // sum
13075 )
13076 {
13077 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13078 _res = sum_var;
13079 goto done;
13080 }
13081 p->mark = _mark;
13082 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13084 }
13085 _res = NULL;
13086 done:
13087 D(p->level--);
13088 return _res;
13089}
13090
13091// Left-recursive
13092// sum: sum '+' term | sum '-' term | term
13093static expr_ty sum_raw(Parser *);
13094static expr_ty
13095sum_rule(Parser *p)
13096{
13097 D(p->level++);
13098 expr_ty _res = NULL;
13099 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13100 D(p->level--);
13101 return _res;
13102 }
13103 int _mark = p->mark;
13104 int _resmark = p->mark;
13105 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013106 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13107 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013108 D(p->level--);
13109 return _res;
13110 }
13111 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013112 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013113 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013114 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013115 if (p->error_indicator)
13116 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013117 if (_raw == NULL || p->mark <= _resmark)
13118 break;
13119 _resmark = p->mark;
13120 _res = _raw;
13121 }
13122 p->mark = _resmark;
13123 D(p->level--);
13124 return _res;
13125}
13126static expr_ty
13127sum_raw(Parser *p)
13128{
13129 D(p->level++);
13130 if (p->error_indicator) {
13131 D(p->level--);
13132 return NULL;
13133 }
13134 expr_ty _res = NULL;
13135 int _mark = p->mark;
13136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13137 p->error_indicator = 1;
13138 D(p->level--);
13139 return NULL;
13140 }
13141 int _start_lineno = p->tokens[_mark]->lineno;
13142 UNUSED(_start_lineno); // Only used by EXTRA macro
13143 int _start_col_offset = p->tokens[_mark]->col_offset;
13144 UNUSED(_start_col_offset); // Only used by EXTRA macro
13145 { // sum '+' term
13146 if (p->error_indicator) {
13147 D(p->level--);
13148 return NULL;
13149 }
13150 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13151 Token * _literal;
13152 expr_ty a;
13153 expr_ty b;
13154 if (
13155 (a = sum_rule(p)) // sum
13156 &&
13157 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13158 &&
13159 (b = term_rule(p)) // term
13160 )
13161 {
13162 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13163 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13164 if (_token == NULL) {
13165 D(p->level--);
13166 return NULL;
13167 }
13168 int _end_lineno = _token->end_lineno;
13169 UNUSED(_end_lineno); // Only used by EXTRA macro
13170 int _end_col_offset = _token->end_col_offset;
13171 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013172 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013173 if (_res == NULL && PyErr_Occurred()) {
13174 p->error_indicator = 1;
13175 D(p->level--);
13176 return NULL;
13177 }
13178 goto done;
13179 }
13180 p->mark = _mark;
13181 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13183 }
13184 { // sum '-' term
13185 if (p->error_indicator) {
13186 D(p->level--);
13187 return NULL;
13188 }
13189 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13190 Token * _literal;
13191 expr_ty a;
13192 expr_ty b;
13193 if (
13194 (a = sum_rule(p)) // sum
13195 &&
13196 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13197 &&
13198 (b = term_rule(p)) // term
13199 )
13200 {
13201 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13203 if (_token == NULL) {
13204 D(p->level--);
13205 return NULL;
13206 }
13207 int _end_lineno = _token->end_lineno;
13208 UNUSED(_end_lineno); // Only used by EXTRA macro
13209 int _end_col_offset = _token->end_col_offset;
13210 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013211 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013212 if (_res == NULL && PyErr_Occurred()) {
13213 p->error_indicator = 1;
13214 D(p->level--);
13215 return NULL;
13216 }
13217 goto done;
13218 }
13219 p->mark = _mark;
13220 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13222 }
13223 { // term
13224 if (p->error_indicator) {
13225 D(p->level--);
13226 return NULL;
13227 }
13228 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13229 expr_ty term_var;
13230 if (
13231 (term_var = term_rule(p)) // term
13232 )
13233 {
13234 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13235 _res = term_var;
13236 goto done;
13237 }
13238 p->mark = _mark;
13239 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13241 }
13242 _res = NULL;
13243 done:
13244 D(p->level--);
13245 return _res;
13246}
13247
13248// Left-recursive
13249// term:
13250// | term '*' factor
13251// | term '/' factor
13252// | term '//' factor
13253// | term '%' factor
13254// | term '@' factor
13255// | factor
13256static expr_ty term_raw(Parser *);
13257static expr_ty
13258term_rule(Parser *p)
13259{
13260 D(p->level++);
13261 expr_ty _res = NULL;
13262 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13263 D(p->level--);
13264 return _res;
13265 }
13266 int _mark = p->mark;
13267 int _resmark = p->mark;
13268 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013269 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13270 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013271 D(p->level--);
13272 return _res;
13273 }
13274 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013275 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013276 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013277 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013278 if (p->error_indicator)
13279 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013280 if (_raw == NULL || p->mark <= _resmark)
13281 break;
13282 _resmark = p->mark;
13283 _res = _raw;
13284 }
13285 p->mark = _resmark;
13286 D(p->level--);
13287 return _res;
13288}
13289static expr_ty
13290term_raw(Parser *p)
13291{
13292 D(p->level++);
13293 if (p->error_indicator) {
13294 D(p->level--);
13295 return NULL;
13296 }
13297 expr_ty _res = NULL;
13298 int _mark = p->mark;
13299 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13300 p->error_indicator = 1;
13301 D(p->level--);
13302 return NULL;
13303 }
13304 int _start_lineno = p->tokens[_mark]->lineno;
13305 UNUSED(_start_lineno); // Only used by EXTRA macro
13306 int _start_col_offset = p->tokens[_mark]->col_offset;
13307 UNUSED(_start_col_offset); // Only used by EXTRA macro
13308 { // term '*' factor
13309 if (p->error_indicator) {
13310 D(p->level--);
13311 return NULL;
13312 }
13313 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13314 Token * _literal;
13315 expr_ty a;
13316 expr_ty b;
13317 if (
13318 (a = term_rule(p)) // term
13319 &&
13320 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13321 &&
13322 (b = factor_rule(p)) // factor
13323 )
13324 {
13325 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13326 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13327 if (_token == NULL) {
13328 D(p->level--);
13329 return NULL;
13330 }
13331 int _end_lineno = _token->end_lineno;
13332 UNUSED(_end_lineno); // Only used by EXTRA macro
13333 int _end_col_offset = _token->end_col_offset;
13334 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013335 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013336 if (_res == NULL && PyErr_Occurred()) {
13337 p->error_indicator = 1;
13338 D(p->level--);
13339 return NULL;
13340 }
13341 goto done;
13342 }
13343 p->mark = _mark;
13344 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13346 }
13347 { // term '/' factor
13348 if (p->error_indicator) {
13349 D(p->level--);
13350 return NULL;
13351 }
13352 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13353 Token * _literal;
13354 expr_ty a;
13355 expr_ty b;
13356 if (
13357 (a = term_rule(p)) // term
13358 &&
13359 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13360 &&
13361 (b = factor_rule(p)) // factor
13362 )
13363 {
13364 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13366 if (_token == NULL) {
13367 D(p->level--);
13368 return NULL;
13369 }
13370 int _end_lineno = _token->end_lineno;
13371 UNUSED(_end_lineno); // Only used by EXTRA macro
13372 int _end_col_offset = _token->end_col_offset;
13373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013374 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013375 if (_res == NULL && PyErr_Occurred()) {
13376 p->error_indicator = 1;
13377 D(p->level--);
13378 return NULL;
13379 }
13380 goto done;
13381 }
13382 p->mark = _mark;
13383 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13385 }
13386 { // term '//' factor
13387 if (p->error_indicator) {
13388 D(p->level--);
13389 return NULL;
13390 }
13391 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13392 Token * _literal;
13393 expr_ty a;
13394 expr_ty b;
13395 if (
13396 (a = term_rule(p)) // term
13397 &&
13398 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13399 &&
13400 (b = factor_rule(p)) // factor
13401 )
13402 {
13403 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13405 if (_token == NULL) {
13406 D(p->level--);
13407 return NULL;
13408 }
13409 int _end_lineno = _token->end_lineno;
13410 UNUSED(_end_lineno); // Only used by EXTRA macro
13411 int _end_col_offset = _token->end_col_offset;
13412 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013413 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013414 if (_res == NULL && PyErr_Occurred()) {
13415 p->error_indicator = 1;
13416 D(p->level--);
13417 return NULL;
13418 }
13419 goto done;
13420 }
13421 p->mark = _mark;
13422 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13424 }
13425 { // term '%' factor
13426 if (p->error_indicator) {
13427 D(p->level--);
13428 return NULL;
13429 }
13430 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13431 Token * _literal;
13432 expr_ty a;
13433 expr_ty b;
13434 if (
13435 (a = term_rule(p)) // term
13436 &&
13437 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13438 &&
13439 (b = factor_rule(p)) // factor
13440 )
13441 {
13442 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13443 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13444 if (_token == NULL) {
13445 D(p->level--);
13446 return NULL;
13447 }
13448 int _end_lineno = _token->end_lineno;
13449 UNUSED(_end_lineno); // Only used by EXTRA macro
13450 int _end_col_offset = _token->end_col_offset;
13451 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013452 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013453 if (_res == NULL && PyErr_Occurred()) {
13454 p->error_indicator = 1;
13455 D(p->level--);
13456 return NULL;
13457 }
13458 goto done;
13459 }
13460 p->mark = _mark;
13461 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13463 }
13464 { // term '@' factor
13465 if (p->error_indicator) {
13466 D(p->level--);
13467 return NULL;
13468 }
13469 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13470 Token * _literal;
13471 expr_ty a;
13472 expr_ty b;
13473 if (
13474 (a = term_rule(p)) // term
13475 &&
13476 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13477 &&
13478 (b = factor_rule(p)) // factor
13479 )
13480 {
13481 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13482 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13483 if (_token == NULL) {
13484 D(p->level--);
13485 return NULL;
13486 }
13487 int _end_lineno = _token->end_lineno;
13488 UNUSED(_end_lineno); // Only used by EXTRA macro
13489 int _end_col_offset = _token->end_col_offset;
13490 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013491 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013492 if (_res == NULL && PyErr_Occurred()) {
13493 p->error_indicator = 1;
13494 D(p->level--);
13495 return NULL;
13496 }
13497 goto done;
13498 }
13499 p->mark = _mark;
13500 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13502 }
13503 { // factor
13504 if (p->error_indicator) {
13505 D(p->level--);
13506 return NULL;
13507 }
13508 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13509 expr_ty factor_var;
13510 if (
13511 (factor_var = factor_rule(p)) // factor
13512 )
13513 {
13514 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13515 _res = factor_var;
13516 goto done;
13517 }
13518 p->mark = _mark;
13519 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13521 }
13522 _res = NULL;
13523 done:
13524 D(p->level--);
13525 return _res;
13526}
13527
13528// factor: '+' factor | '-' factor | '~' factor | power
13529static expr_ty
13530factor_rule(Parser *p)
13531{
13532 D(p->level++);
13533 if (p->error_indicator) {
13534 D(p->level--);
13535 return NULL;
13536 }
13537 expr_ty _res = NULL;
13538 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13539 D(p->level--);
13540 return _res;
13541 }
13542 int _mark = p->mark;
13543 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13544 p->error_indicator = 1;
13545 D(p->level--);
13546 return NULL;
13547 }
13548 int _start_lineno = p->tokens[_mark]->lineno;
13549 UNUSED(_start_lineno); // Only used by EXTRA macro
13550 int _start_col_offset = p->tokens[_mark]->col_offset;
13551 UNUSED(_start_col_offset); // Only used by EXTRA macro
13552 { // '+' factor
13553 if (p->error_indicator) {
13554 D(p->level--);
13555 return NULL;
13556 }
13557 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13558 Token * _literal;
13559 expr_ty a;
13560 if (
13561 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13562 &&
13563 (a = factor_rule(p)) // factor
13564 )
13565 {
13566 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13568 if (_token == NULL) {
13569 D(p->level--);
13570 return NULL;
13571 }
13572 int _end_lineno = _token->end_lineno;
13573 UNUSED(_end_lineno); // Only used by EXTRA macro
13574 int _end_col_offset = _token->end_col_offset;
13575 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013576 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013577 if (_res == NULL && PyErr_Occurred()) {
13578 p->error_indicator = 1;
13579 D(p->level--);
13580 return NULL;
13581 }
13582 goto done;
13583 }
13584 p->mark = _mark;
13585 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13587 }
13588 { // '-' factor
13589 if (p->error_indicator) {
13590 D(p->level--);
13591 return NULL;
13592 }
13593 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13594 Token * _literal;
13595 expr_ty a;
13596 if (
13597 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13598 &&
13599 (a = factor_rule(p)) // factor
13600 )
13601 {
13602 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13603 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13604 if (_token == NULL) {
13605 D(p->level--);
13606 return NULL;
13607 }
13608 int _end_lineno = _token->end_lineno;
13609 UNUSED(_end_lineno); // Only used by EXTRA macro
13610 int _end_col_offset = _token->end_col_offset;
13611 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013612 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013613 if (_res == NULL && PyErr_Occurred()) {
13614 p->error_indicator = 1;
13615 D(p->level--);
13616 return NULL;
13617 }
13618 goto done;
13619 }
13620 p->mark = _mark;
13621 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13623 }
13624 { // '~' factor
13625 if (p->error_indicator) {
13626 D(p->level--);
13627 return NULL;
13628 }
13629 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13630 Token * _literal;
13631 expr_ty a;
13632 if (
13633 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13634 &&
13635 (a = factor_rule(p)) // factor
13636 )
13637 {
13638 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13640 if (_token == NULL) {
13641 D(p->level--);
13642 return NULL;
13643 }
13644 int _end_lineno = _token->end_lineno;
13645 UNUSED(_end_lineno); // Only used by EXTRA macro
13646 int _end_col_offset = _token->end_col_offset;
13647 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013648 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013649 if (_res == NULL && PyErr_Occurred()) {
13650 p->error_indicator = 1;
13651 D(p->level--);
13652 return NULL;
13653 }
13654 goto done;
13655 }
13656 p->mark = _mark;
13657 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13659 }
13660 { // power
13661 if (p->error_indicator) {
13662 D(p->level--);
13663 return NULL;
13664 }
13665 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13666 expr_ty power_var;
13667 if (
13668 (power_var = power_rule(p)) // power
13669 )
13670 {
13671 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13672 _res = power_var;
13673 goto done;
13674 }
13675 p->mark = _mark;
13676 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13678 }
13679 _res = NULL;
13680 done:
13681 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13682 D(p->level--);
13683 return _res;
13684}
13685
13686// power: await_primary '**' factor | await_primary
13687static expr_ty
13688power_rule(Parser *p)
13689{
13690 D(p->level++);
13691 if (p->error_indicator) {
13692 D(p->level--);
13693 return NULL;
13694 }
13695 expr_ty _res = NULL;
13696 int _mark = p->mark;
13697 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13698 p->error_indicator = 1;
13699 D(p->level--);
13700 return NULL;
13701 }
13702 int _start_lineno = p->tokens[_mark]->lineno;
13703 UNUSED(_start_lineno); // Only used by EXTRA macro
13704 int _start_col_offset = p->tokens[_mark]->col_offset;
13705 UNUSED(_start_col_offset); // Only used by EXTRA macro
13706 { // await_primary '**' factor
13707 if (p->error_indicator) {
13708 D(p->level--);
13709 return NULL;
13710 }
13711 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13712 Token * _literal;
13713 expr_ty a;
13714 expr_ty b;
13715 if (
13716 (a = await_primary_rule(p)) // await_primary
13717 &&
13718 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13719 &&
13720 (b = factor_rule(p)) // factor
13721 )
13722 {
13723 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13724 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13725 if (_token == NULL) {
13726 D(p->level--);
13727 return NULL;
13728 }
13729 int _end_lineno = _token->end_lineno;
13730 UNUSED(_end_lineno); // Only used by EXTRA macro
13731 int _end_col_offset = _token->end_col_offset;
13732 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013733 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013734 if (_res == NULL && PyErr_Occurred()) {
13735 p->error_indicator = 1;
13736 D(p->level--);
13737 return NULL;
13738 }
13739 goto done;
13740 }
13741 p->mark = _mark;
13742 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13744 }
13745 { // await_primary
13746 if (p->error_indicator) {
13747 D(p->level--);
13748 return NULL;
13749 }
13750 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13751 expr_ty await_primary_var;
13752 if (
13753 (await_primary_var = await_primary_rule(p)) // await_primary
13754 )
13755 {
13756 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13757 _res = await_primary_var;
13758 goto done;
13759 }
13760 p->mark = _mark;
13761 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13763 }
13764 _res = NULL;
13765 done:
13766 D(p->level--);
13767 return _res;
13768}
13769
13770// await_primary: AWAIT primary | primary
13771static expr_ty
13772await_primary_rule(Parser *p)
13773{
13774 D(p->level++);
13775 if (p->error_indicator) {
13776 D(p->level--);
13777 return NULL;
13778 }
13779 expr_ty _res = NULL;
13780 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13781 D(p->level--);
13782 return _res;
13783 }
13784 int _mark = p->mark;
13785 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13786 p->error_indicator = 1;
13787 D(p->level--);
13788 return NULL;
13789 }
13790 int _start_lineno = p->tokens[_mark]->lineno;
13791 UNUSED(_start_lineno); // Only used by EXTRA macro
13792 int _start_col_offset = p->tokens[_mark]->col_offset;
13793 UNUSED(_start_col_offset); // Only used by EXTRA macro
13794 { // AWAIT primary
13795 if (p->error_indicator) {
13796 D(p->level--);
13797 return NULL;
13798 }
13799 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13800 expr_ty a;
13801 Token * await_var;
13802 if (
13803 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13804 &&
13805 (a = primary_rule(p)) // primary
13806 )
13807 {
13808 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13809 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13810 if (_token == NULL) {
13811 D(p->level--);
13812 return NULL;
13813 }
13814 int _end_lineno = _token->end_lineno;
13815 UNUSED(_end_lineno); // Only used by EXTRA macro
13816 int _end_col_offset = _token->end_col_offset;
13817 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013818 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013819 if (_res == NULL && PyErr_Occurred()) {
13820 p->error_indicator = 1;
13821 D(p->level--);
13822 return NULL;
13823 }
13824 goto done;
13825 }
13826 p->mark = _mark;
13827 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13829 }
13830 { // primary
13831 if (p->error_indicator) {
13832 D(p->level--);
13833 return NULL;
13834 }
13835 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13836 expr_ty primary_var;
13837 if (
13838 (primary_var = primary_rule(p)) // primary
13839 )
13840 {
13841 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13842 _res = primary_var;
13843 goto done;
13844 }
13845 p->mark = _mark;
13846 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13848 }
13849 _res = NULL;
13850 done:
13851 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13852 D(p->level--);
13853 return _res;
13854}
13855
13856// Left-recursive
13857// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013858// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013859// | primary '.' NAME
13860// | primary genexp
13861// | primary '(' arguments? ')'
13862// | primary '[' slices ']'
13863// | atom
13864static expr_ty primary_raw(Parser *);
13865static expr_ty
13866primary_rule(Parser *p)
13867{
13868 D(p->level++);
13869 expr_ty _res = NULL;
13870 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13871 D(p->level--);
13872 return _res;
13873 }
13874 int _mark = p->mark;
13875 int _resmark = p->mark;
13876 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013877 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13878 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013879 D(p->level--);
13880 return _res;
13881 }
13882 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013883 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013884 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013885 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013886 if (p->error_indicator)
13887 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013888 if (_raw == NULL || p->mark <= _resmark)
13889 break;
13890 _resmark = p->mark;
13891 _res = _raw;
13892 }
13893 p->mark = _resmark;
13894 D(p->level--);
13895 return _res;
13896}
13897static expr_ty
13898primary_raw(Parser *p)
13899{
13900 D(p->level++);
13901 if (p->error_indicator) {
13902 D(p->level--);
13903 return NULL;
13904 }
13905 expr_ty _res = NULL;
13906 int _mark = p->mark;
13907 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13908 p->error_indicator = 1;
13909 D(p->level--);
13910 return NULL;
13911 }
13912 int _start_lineno = p->tokens[_mark]->lineno;
13913 UNUSED(_start_lineno); // Only used by EXTRA macro
13914 int _start_col_offset = p->tokens[_mark]->col_offset;
13915 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013916 if (p->call_invalid_rules) { // invalid_primary
13917 if (p->error_indicator) {
13918 D(p->level--);
13919 return NULL;
13920 }
13921 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13922 void *invalid_primary_var;
13923 if (
13924 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13925 )
13926 {
13927 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13928 _res = invalid_primary_var;
13929 goto done;
13930 }
13931 p->mark = _mark;
13932 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13934 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013935 { // primary '.' NAME
13936 if (p->error_indicator) {
13937 D(p->level--);
13938 return NULL;
13939 }
13940 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13941 Token * _literal;
13942 expr_ty a;
13943 expr_ty b;
13944 if (
13945 (a = primary_rule(p)) // primary
13946 &&
13947 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13948 &&
13949 (b = _PyPegen_name_token(p)) // NAME
13950 )
13951 {
13952 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13954 if (_token == NULL) {
13955 D(p->level--);
13956 return NULL;
13957 }
13958 int _end_lineno = _token->end_lineno;
13959 UNUSED(_end_lineno); // Only used by EXTRA macro
13960 int _end_col_offset = _token->end_col_offset;
13961 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013962 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013963 if (_res == NULL && PyErr_Occurred()) {
13964 p->error_indicator = 1;
13965 D(p->level--);
13966 return NULL;
13967 }
13968 goto done;
13969 }
13970 p->mark = _mark;
13971 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13973 }
13974 { // primary genexp
13975 if (p->error_indicator) {
13976 D(p->level--);
13977 return NULL;
13978 }
13979 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13980 expr_ty a;
13981 expr_ty b;
13982 if (
13983 (a = primary_rule(p)) // primary
13984 &&
13985 (b = genexp_rule(p)) // genexp
13986 )
13987 {
13988 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13989 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13990 if (_token == NULL) {
13991 D(p->level--);
13992 return NULL;
13993 }
13994 int _end_lineno = _token->end_lineno;
13995 UNUSED(_end_lineno); // Only used by EXTRA macro
13996 int _end_col_offset = _token->end_col_offset;
13997 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013998 _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 +010013999 if (_res == NULL && PyErr_Occurred()) {
14000 p->error_indicator = 1;
14001 D(p->level--);
14002 return NULL;
14003 }
14004 goto done;
14005 }
14006 p->mark = _mark;
14007 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14009 }
14010 { // primary '(' arguments? ')'
14011 if (p->error_indicator) {
14012 D(p->level--);
14013 return NULL;
14014 }
14015 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14016 Token * _literal;
14017 Token * _literal_1;
14018 expr_ty a;
14019 void *b;
14020 if (
14021 (a = primary_rule(p)) // primary
14022 &&
14023 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14024 &&
14025 (b = arguments_rule(p), 1) // arguments?
14026 &&
14027 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14028 )
14029 {
14030 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14031 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14032 if (_token == NULL) {
14033 D(p->level--);
14034 return NULL;
14035 }
14036 int _end_lineno = _token->end_lineno;
14037 UNUSED(_end_lineno); // Only used by EXTRA macro
14038 int _end_col_offset = _token->end_col_offset;
14039 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014040 _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 +010014041 if (_res == NULL && PyErr_Occurred()) {
14042 p->error_indicator = 1;
14043 D(p->level--);
14044 return NULL;
14045 }
14046 goto done;
14047 }
14048 p->mark = _mark;
14049 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14051 }
14052 { // primary '[' slices ']'
14053 if (p->error_indicator) {
14054 D(p->level--);
14055 return NULL;
14056 }
14057 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14058 Token * _literal;
14059 Token * _literal_1;
14060 expr_ty a;
14061 expr_ty b;
14062 if (
14063 (a = primary_rule(p)) // primary
14064 &&
14065 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14066 &&
14067 (b = slices_rule(p)) // slices
14068 &&
14069 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14070 )
14071 {
14072 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14073 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14074 if (_token == NULL) {
14075 D(p->level--);
14076 return NULL;
14077 }
14078 int _end_lineno = _token->end_lineno;
14079 UNUSED(_end_lineno); // Only used by EXTRA macro
14080 int _end_col_offset = _token->end_col_offset;
14081 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014082 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014083 if (_res == NULL && PyErr_Occurred()) {
14084 p->error_indicator = 1;
14085 D(p->level--);
14086 return NULL;
14087 }
14088 goto done;
14089 }
14090 p->mark = _mark;
14091 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14093 }
14094 { // atom
14095 if (p->error_indicator) {
14096 D(p->level--);
14097 return NULL;
14098 }
14099 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14100 expr_ty atom_var;
14101 if (
14102 (atom_var = atom_rule(p)) // atom
14103 )
14104 {
14105 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14106 _res = atom_var;
14107 goto done;
14108 }
14109 p->mark = _mark;
14110 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14112 }
14113 _res = NULL;
14114 done:
14115 D(p->level--);
14116 return _res;
14117}
14118
14119// slices: slice !',' | ','.slice+ ','?
14120static expr_ty
14121slices_rule(Parser *p)
14122{
14123 D(p->level++);
14124 if (p->error_indicator) {
14125 D(p->level--);
14126 return NULL;
14127 }
14128 expr_ty _res = NULL;
14129 int _mark = p->mark;
14130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14131 p->error_indicator = 1;
14132 D(p->level--);
14133 return NULL;
14134 }
14135 int _start_lineno = p->tokens[_mark]->lineno;
14136 UNUSED(_start_lineno); // Only used by EXTRA macro
14137 int _start_col_offset = p->tokens[_mark]->col_offset;
14138 UNUSED(_start_col_offset); // Only used by EXTRA macro
14139 { // slice !','
14140 if (p->error_indicator) {
14141 D(p->level--);
14142 return NULL;
14143 }
14144 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14145 expr_ty a;
14146 if (
14147 (a = slice_rule(p)) // slice
14148 &&
14149 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14150 )
14151 {
14152 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14153 _res = a;
14154 if (_res == NULL && PyErr_Occurred()) {
14155 p->error_indicator = 1;
14156 D(p->level--);
14157 return NULL;
14158 }
14159 goto done;
14160 }
14161 p->mark = _mark;
14162 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14164 }
14165 { // ','.slice+ ','?
14166 if (p->error_indicator) {
14167 D(p->level--);
14168 return NULL;
14169 }
14170 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14171 void *_opt_var;
14172 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014173 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014174 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014175 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014176 &&
14177 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14178 )
14179 {
14180 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14181 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14182 if (_token == NULL) {
14183 D(p->level--);
14184 return NULL;
14185 }
14186 int _end_lineno = _token->end_lineno;
14187 UNUSED(_end_lineno); // Only used by EXTRA macro
14188 int _end_col_offset = _token->end_col_offset;
14189 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014190 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014191 if (_res == NULL && PyErr_Occurred()) {
14192 p->error_indicator = 1;
14193 D(p->level--);
14194 return NULL;
14195 }
14196 goto done;
14197 }
14198 p->mark = _mark;
14199 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14201 }
14202 _res = NULL;
14203 done:
14204 D(p->level--);
14205 return _res;
14206}
14207
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014208// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014209static expr_ty
14210slice_rule(Parser *p)
14211{
14212 D(p->level++);
14213 if (p->error_indicator) {
14214 D(p->level--);
14215 return NULL;
14216 }
14217 expr_ty _res = NULL;
14218 int _mark = p->mark;
14219 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14220 p->error_indicator = 1;
14221 D(p->level--);
14222 return NULL;
14223 }
14224 int _start_lineno = p->tokens[_mark]->lineno;
14225 UNUSED(_start_lineno); // Only used by EXTRA macro
14226 int _start_col_offset = p->tokens[_mark]->col_offset;
14227 UNUSED(_start_col_offset); // Only used by EXTRA macro
14228 { // expression? ':' expression? [':' expression?]
14229 if (p->error_indicator) {
14230 D(p->level--);
14231 return NULL;
14232 }
14233 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14234 Token * _literal;
14235 void *a;
14236 void *b;
14237 void *c;
14238 if (
14239 (a = expression_rule(p), 1) // expression?
14240 &&
14241 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14242 &&
14243 (b = expression_rule(p), 1) // expression?
14244 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014245 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014246 )
14247 {
14248 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14249 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14250 if (_token == NULL) {
14251 D(p->level--);
14252 return NULL;
14253 }
14254 int _end_lineno = _token->end_lineno;
14255 UNUSED(_end_lineno); // Only used by EXTRA macro
14256 int _end_col_offset = _token->end_col_offset;
14257 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014258 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014259 if (_res == NULL && PyErr_Occurred()) {
14260 p->error_indicator = 1;
14261 D(p->level--);
14262 return NULL;
14263 }
14264 goto done;
14265 }
14266 p->mark = _mark;
14267 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14269 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014270 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014271 if (p->error_indicator) {
14272 D(p->level--);
14273 return NULL;
14274 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014275 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014276 expr_ty a;
14277 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014278 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014279 )
14280 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014281 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014282 _res = a;
14283 if (_res == NULL && PyErr_Occurred()) {
14284 p->error_indicator = 1;
14285 D(p->level--);
14286 return NULL;
14287 }
14288 goto done;
14289 }
14290 p->mark = _mark;
14291 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014293 }
14294 _res = NULL;
14295 done:
14296 D(p->level--);
14297 return _res;
14298}
14299
14300// atom:
14301// | NAME
14302// | 'True'
14303// | 'False'
14304// | 'None'
14305// | &STRING strings
14306// | NUMBER
14307// | &'(' (tuple | group | genexp)
14308// | &'[' (list | listcomp)
14309// | &'{' (dict | set | dictcomp | setcomp)
14310// | '...'
14311static expr_ty
14312atom_rule(Parser *p)
14313{
14314 D(p->level++);
14315 if (p->error_indicator) {
14316 D(p->level--);
14317 return NULL;
14318 }
14319 expr_ty _res = NULL;
14320 int _mark = p->mark;
14321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14322 p->error_indicator = 1;
14323 D(p->level--);
14324 return NULL;
14325 }
14326 int _start_lineno = p->tokens[_mark]->lineno;
14327 UNUSED(_start_lineno); // Only used by EXTRA macro
14328 int _start_col_offset = p->tokens[_mark]->col_offset;
14329 UNUSED(_start_col_offset); // Only used by EXTRA macro
14330 { // NAME
14331 if (p->error_indicator) {
14332 D(p->level--);
14333 return NULL;
14334 }
14335 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14336 expr_ty name_var;
14337 if (
14338 (name_var = _PyPegen_name_token(p)) // NAME
14339 )
14340 {
14341 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14342 _res = name_var;
14343 goto done;
14344 }
14345 p->mark = _mark;
14346 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14348 }
14349 { // 'True'
14350 if (p->error_indicator) {
14351 D(p->level--);
14352 return NULL;
14353 }
14354 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14355 Token * _keyword;
14356 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014357 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014358 )
14359 {
14360 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14361 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14362 if (_token == NULL) {
14363 D(p->level--);
14364 return NULL;
14365 }
14366 int _end_lineno = _token->end_lineno;
14367 UNUSED(_end_lineno); // Only used by EXTRA macro
14368 int _end_col_offset = _token->end_col_offset;
14369 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014370 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014371 if (_res == NULL && PyErr_Occurred()) {
14372 p->error_indicator = 1;
14373 D(p->level--);
14374 return NULL;
14375 }
14376 goto done;
14377 }
14378 p->mark = _mark;
14379 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14381 }
14382 { // 'False'
14383 if (p->error_indicator) {
14384 D(p->level--);
14385 return NULL;
14386 }
14387 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14388 Token * _keyword;
14389 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014390 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014391 )
14392 {
14393 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14395 if (_token == NULL) {
14396 D(p->level--);
14397 return NULL;
14398 }
14399 int _end_lineno = _token->end_lineno;
14400 UNUSED(_end_lineno); // Only used by EXTRA macro
14401 int _end_col_offset = _token->end_col_offset;
14402 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014403 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014404 if (_res == NULL && PyErr_Occurred()) {
14405 p->error_indicator = 1;
14406 D(p->level--);
14407 return NULL;
14408 }
14409 goto done;
14410 }
14411 p->mark = _mark;
14412 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14414 }
14415 { // 'None'
14416 if (p->error_indicator) {
14417 D(p->level--);
14418 return NULL;
14419 }
14420 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14421 Token * _keyword;
14422 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014423 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014424 )
14425 {
14426 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14428 if (_token == NULL) {
14429 D(p->level--);
14430 return NULL;
14431 }
14432 int _end_lineno = _token->end_lineno;
14433 UNUSED(_end_lineno); // Only used by EXTRA macro
14434 int _end_col_offset = _token->end_col_offset;
14435 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014436 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014437 if (_res == NULL && PyErr_Occurred()) {
14438 p->error_indicator = 1;
14439 D(p->level--);
14440 return NULL;
14441 }
14442 goto done;
14443 }
14444 p->mark = _mark;
14445 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14447 }
14448 { // &STRING strings
14449 if (p->error_indicator) {
14450 D(p->level--);
14451 return NULL;
14452 }
14453 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14454 expr_ty strings_var;
14455 if (
14456 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14457 &&
14458 (strings_var = strings_rule(p)) // strings
14459 )
14460 {
14461 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14462 _res = strings_var;
14463 goto done;
14464 }
14465 p->mark = _mark;
14466 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14468 }
14469 { // NUMBER
14470 if (p->error_indicator) {
14471 D(p->level--);
14472 return NULL;
14473 }
14474 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14475 expr_ty number_var;
14476 if (
14477 (number_var = _PyPegen_number_token(p)) // NUMBER
14478 )
14479 {
14480 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14481 _res = number_var;
14482 goto done;
14483 }
14484 p->mark = _mark;
14485 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14487 }
14488 { // &'(' (tuple | group | genexp)
14489 if (p->error_indicator) {
14490 D(p->level--);
14491 return NULL;
14492 }
14493 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014494 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014495 if (
14496 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14497 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014498 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014499 )
14500 {
14501 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 -080014502 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014503 goto done;
14504 }
14505 p->mark = _mark;
14506 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14508 }
14509 { // &'[' (list | listcomp)
14510 if (p->error_indicator) {
14511 D(p->level--);
14512 return NULL;
14513 }
14514 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014515 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014516 if (
14517 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14518 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014519 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014520 )
14521 {
14522 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014523 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014524 goto done;
14525 }
14526 p->mark = _mark;
14527 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14529 }
14530 { // &'{' (dict | set | dictcomp | setcomp)
14531 if (p->error_indicator) {
14532 D(p->level--);
14533 return NULL;
14534 }
14535 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 -080014536 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014537 if (
14538 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14539 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014540 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014541 )
14542 {
14543 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 -080014544 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014545 goto done;
14546 }
14547 p->mark = _mark;
14548 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14550 }
14551 { // '...'
14552 if (p->error_indicator) {
14553 D(p->level--);
14554 return NULL;
14555 }
14556 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14557 Token * _literal;
14558 if (
14559 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14560 )
14561 {
14562 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14564 if (_token == NULL) {
14565 D(p->level--);
14566 return NULL;
14567 }
14568 int _end_lineno = _token->end_lineno;
14569 UNUSED(_end_lineno); // Only used by EXTRA macro
14570 int _end_col_offset = _token->end_col_offset;
14571 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014572 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014573 if (_res == NULL && PyErr_Occurred()) {
14574 p->error_indicator = 1;
14575 D(p->level--);
14576 return NULL;
14577 }
14578 goto done;
14579 }
14580 p->mark = _mark;
14581 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14583 }
14584 _res = NULL;
14585 done:
14586 D(p->level--);
14587 return _res;
14588}
14589
14590// strings: STRING+
14591static expr_ty
14592strings_rule(Parser *p)
14593{
14594 D(p->level++);
14595 if (p->error_indicator) {
14596 D(p->level--);
14597 return NULL;
14598 }
14599 expr_ty _res = NULL;
14600 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14601 D(p->level--);
14602 return _res;
14603 }
14604 int _mark = p->mark;
14605 { // STRING+
14606 if (p->error_indicator) {
14607 D(p->level--);
14608 return NULL;
14609 }
14610 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14611 asdl_seq * a;
14612 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014613 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014614 )
14615 {
14616 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14617 _res = _PyPegen_concatenate_strings ( p , a );
14618 if (_res == NULL && PyErr_Occurred()) {
14619 p->error_indicator = 1;
14620 D(p->level--);
14621 return NULL;
14622 }
14623 goto done;
14624 }
14625 p->mark = _mark;
14626 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14628 }
14629 _res = NULL;
14630 done:
14631 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14632 D(p->level--);
14633 return _res;
14634}
14635
14636// list: '[' star_named_expressions? ']'
14637static expr_ty
14638list_rule(Parser *p)
14639{
14640 D(p->level++);
14641 if (p->error_indicator) {
14642 D(p->level--);
14643 return NULL;
14644 }
14645 expr_ty _res = NULL;
14646 int _mark = p->mark;
14647 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14648 p->error_indicator = 1;
14649 D(p->level--);
14650 return NULL;
14651 }
14652 int _start_lineno = p->tokens[_mark]->lineno;
14653 UNUSED(_start_lineno); // Only used by EXTRA macro
14654 int _start_col_offset = p->tokens[_mark]->col_offset;
14655 UNUSED(_start_col_offset); // Only used by EXTRA macro
14656 { // '[' star_named_expressions? ']'
14657 if (p->error_indicator) {
14658 D(p->level--);
14659 return NULL;
14660 }
14661 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14662 Token * _literal;
14663 Token * _literal_1;
14664 void *a;
14665 if (
14666 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14667 &&
14668 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14669 &&
14670 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14671 )
14672 {
14673 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14675 if (_token == NULL) {
14676 D(p->level--);
14677 return NULL;
14678 }
14679 int _end_lineno = _token->end_lineno;
14680 UNUSED(_end_lineno); // Only used by EXTRA macro
14681 int _end_col_offset = _token->end_col_offset;
14682 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014683 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014684 if (_res == NULL && PyErr_Occurred()) {
14685 p->error_indicator = 1;
14686 D(p->level--);
14687 return NULL;
14688 }
14689 goto done;
14690 }
14691 p->mark = _mark;
14692 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14694 }
14695 _res = NULL;
14696 done:
14697 D(p->level--);
14698 return _res;
14699}
14700
Pablo Galindo835f14f2021-01-31 22:52:56 +000014701// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014702static expr_ty
14703listcomp_rule(Parser *p)
14704{
14705 D(p->level++);
14706 if (p->error_indicator) {
14707 D(p->level--);
14708 return NULL;
14709 }
14710 expr_ty _res = NULL;
14711 int _mark = p->mark;
14712 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14713 p->error_indicator = 1;
14714 D(p->level--);
14715 return NULL;
14716 }
14717 int _start_lineno = p->tokens[_mark]->lineno;
14718 UNUSED(_start_lineno); // Only used by EXTRA macro
14719 int _start_col_offset = p->tokens[_mark]->col_offset;
14720 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014721 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014722 if (p->error_indicator) {
14723 D(p->level--);
14724 return NULL;
14725 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014726 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 +010014727 Token * _literal;
14728 Token * _literal_1;
14729 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014730 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014731 if (
14732 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14733 &&
14734 (a = named_expression_rule(p)) // named_expression
14735 &&
14736 (b = for_if_clauses_rule(p)) // for_if_clauses
14737 &&
14738 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14739 )
14740 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014741 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 +010014742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14743 if (_token == NULL) {
14744 D(p->level--);
14745 return NULL;
14746 }
14747 int _end_lineno = _token->end_lineno;
14748 UNUSED(_end_lineno); // Only used by EXTRA macro
14749 int _end_col_offset = _token->end_col_offset;
14750 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014751 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014752 if (_res == NULL && PyErr_Occurred()) {
14753 p->error_indicator = 1;
14754 D(p->level--);
14755 return NULL;
14756 }
14757 goto done;
14758 }
14759 p->mark = _mark;
14760 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014762 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014763 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014764 if (p->error_indicator) {
14765 D(p->level--);
14766 return NULL;
14767 }
14768 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14769 void *invalid_comprehension_var;
14770 if (
14771 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14772 )
14773 {
14774 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14775 _res = invalid_comprehension_var;
14776 goto done;
14777 }
14778 p->mark = _mark;
14779 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14781 }
14782 _res = NULL;
14783 done:
14784 D(p->level--);
14785 return _res;
14786}
14787
14788// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14789static expr_ty
14790tuple_rule(Parser *p)
14791{
14792 D(p->level++);
14793 if (p->error_indicator) {
14794 D(p->level--);
14795 return NULL;
14796 }
14797 expr_ty _res = NULL;
14798 int _mark = p->mark;
14799 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14800 p->error_indicator = 1;
14801 D(p->level--);
14802 return NULL;
14803 }
14804 int _start_lineno = p->tokens[_mark]->lineno;
14805 UNUSED(_start_lineno); // Only used by EXTRA macro
14806 int _start_col_offset = p->tokens[_mark]->col_offset;
14807 UNUSED(_start_col_offset); // Only used by EXTRA macro
14808 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14809 if (p->error_indicator) {
14810 D(p->level--);
14811 return NULL;
14812 }
14813 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14814 Token * _literal;
14815 Token * _literal_1;
14816 void *a;
14817 if (
14818 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14819 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014820 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014821 &&
14822 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14823 )
14824 {
14825 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14826 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14827 if (_token == NULL) {
14828 D(p->level--);
14829 return NULL;
14830 }
14831 int _end_lineno = _token->end_lineno;
14832 UNUSED(_end_lineno); // Only used by EXTRA macro
14833 int _end_col_offset = _token->end_col_offset;
14834 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014835 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014836 if (_res == NULL && PyErr_Occurred()) {
14837 p->error_indicator = 1;
14838 D(p->level--);
14839 return NULL;
14840 }
14841 goto done;
14842 }
14843 p->mark = _mark;
14844 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14846 }
14847 _res = NULL;
14848 done:
14849 D(p->level--);
14850 return _res;
14851}
14852
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014853// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014854static expr_ty
14855group_rule(Parser *p)
14856{
14857 D(p->level++);
14858 if (p->error_indicator) {
14859 D(p->level--);
14860 return NULL;
14861 }
14862 expr_ty _res = NULL;
14863 int _mark = p->mark;
14864 { // '(' (yield_expr | named_expression) ')'
14865 if (p->error_indicator) {
14866 D(p->level--);
14867 return NULL;
14868 }
14869 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14870 Token * _literal;
14871 Token * _literal_1;
14872 void *a;
14873 if (
14874 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14875 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014876 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014877 &&
14878 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14879 )
14880 {
14881 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14882 _res = a;
14883 if (_res == NULL && PyErr_Occurred()) {
14884 p->error_indicator = 1;
14885 D(p->level--);
14886 return NULL;
14887 }
14888 goto done;
14889 }
14890 p->mark = _mark;
14891 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14893 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014894 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014895 if (p->error_indicator) {
14896 D(p->level--);
14897 return NULL;
14898 }
14899 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14900 void *invalid_group_var;
14901 if (
14902 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14903 )
14904 {
14905 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14906 _res = invalid_group_var;
14907 goto done;
14908 }
14909 p->mark = _mark;
14910 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14912 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014913 _res = NULL;
14914 done:
14915 D(p->level--);
14916 return _res;
14917}
14918
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014919// genexp:
14920// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14921// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014922static expr_ty
14923genexp_rule(Parser *p)
14924{
14925 D(p->level++);
14926 if (p->error_indicator) {
14927 D(p->level--);
14928 return NULL;
14929 }
14930 expr_ty _res = NULL;
14931 int _mark = p->mark;
14932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14933 p->error_indicator = 1;
14934 D(p->level--);
14935 return NULL;
14936 }
14937 int _start_lineno = p->tokens[_mark]->lineno;
14938 UNUSED(_start_lineno); // Only used by EXTRA macro
14939 int _start_col_offset = p->tokens[_mark]->col_offset;
14940 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014941 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014942 if (p->error_indicator) {
14943 D(p->level--);
14944 return NULL;
14945 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014946 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014947 Token * _literal;
14948 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014949 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014950 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014951 if (
14952 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14953 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014954 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014955 &&
14956 (b = for_if_clauses_rule(p)) // for_if_clauses
14957 &&
14958 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14959 )
14960 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014961 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014962 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14963 if (_token == NULL) {
14964 D(p->level--);
14965 return NULL;
14966 }
14967 int _end_lineno = _token->end_lineno;
14968 UNUSED(_end_lineno); // Only used by EXTRA macro
14969 int _end_col_offset = _token->end_col_offset;
14970 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014971 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 if (_res == NULL && PyErr_Occurred()) {
14973 p->error_indicator = 1;
14974 D(p->level--);
14975 return NULL;
14976 }
14977 goto done;
14978 }
14979 p->mark = _mark;
14980 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014982 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014983 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014984 if (p->error_indicator) {
14985 D(p->level--);
14986 return NULL;
14987 }
14988 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14989 void *invalid_comprehension_var;
14990 if (
14991 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14992 )
14993 {
14994 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14995 _res = invalid_comprehension_var;
14996 goto done;
14997 }
14998 p->mark = _mark;
14999 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
15000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15001 }
15002 _res = NULL;
15003 done:
15004 D(p->level--);
15005 return _res;
15006}
15007
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015008// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015009static expr_ty
15010set_rule(Parser *p)
15011{
15012 D(p->level++);
15013 if (p->error_indicator) {
15014 D(p->level--);
15015 return NULL;
15016 }
15017 expr_ty _res = NULL;
15018 int _mark = p->mark;
15019 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15020 p->error_indicator = 1;
15021 D(p->level--);
15022 return NULL;
15023 }
15024 int _start_lineno = p->tokens[_mark]->lineno;
15025 UNUSED(_start_lineno); // Only used by EXTRA macro
15026 int _start_col_offset = p->tokens[_mark]->col_offset;
15027 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015028 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015029 if (p->error_indicator) {
15030 D(p->level--);
15031 return NULL;
15032 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015033 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015034 Token * _literal;
15035 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015036 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015037 if (
15038 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15039 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015040 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015041 &&
15042 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15043 )
15044 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015045 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 +010015046 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15047 if (_token == NULL) {
15048 D(p->level--);
15049 return NULL;
15050 }
15051 int _end_lineno = _token->end_lineno;
15052 UNUSED(_end_lineno); // Only used by EXTRA macro
15053 int _end_col_offset = _token->end_col_offset;
15054 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015055 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015056 if (_res == NULL && PyErr_Occurred()) {
15057 p->error_indicator = 1;
15058 D(p->level--);
15059 return NULL;
15060 }
15061 goto done;
15062 }
15063 p->mark = _mark;
15064 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015066 }
15067 _res = NULL;
15068 done:
15069 D(p->level--);
15070 return _res;
15071}
15072
Pablo Galindo835f14f2021-01-31 22:52:56 +000015073// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015074static expr_ty
15075setcomp_rule(Parser *p)
15076{
15077 D(p->level++);
15078 if (p->error_indicator) {
15079 D(p->level--);
15080 return NULL;
15081 }
15082 expr_ty _res = NULL;
15083 int _mark = p->mark;
15084 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15085 p->error_indicator = 1;
15086 D(p->level--);
15087 return NULL;
15088 }
15089 int _start_lineno = p->tokens[_mark]->lineno;
15090 UNUSED(_start_lineno); // Only used by EXTRA macro
15091 int _start_col_offset = p->tokens[_mark]->col_offset;
15092 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015093 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015094 if (p->error_indicator) {
15095 D(p->level--);
15096 return NULL;
15097 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015098 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 +010015099 Token * _literal;
15100 Token * _literal_1;
15101 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015102 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015103 if (
15104 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15105 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015106 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015107 &&
15108 (b = for_if_clauses_rule(p)) // for_if_clauses
15109 &&
15110 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15111 )
15112 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015113 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 +010015114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15115 if (_token == NULL) {
15116 D(p->level--);
15117 return NULL;
15118 }
15119 int _end_lineno = _token->end_lineno;
15120 UNUSED(_end_lineno); // Only used by EXTRA macro
15121 int _end_col_offset = _token->end_col_offset;
15122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015123 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015124 if (_res == NULL && PyErr_Occurred()) {
15125 p->error_indicator = 1;
15126 D(p->level--);
15127 return NULL;
15128 }
15129 goto done;
15130 }
15131 p->mark = _mark;
15132 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015134 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015135 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015136 if (p->error_indicator) {
15137 D(p->level--);
15138 return NULL;
15139 }
15140 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15141 void *invalid_comprehension_var;
15142 if (
15143 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15144 )
15145 {
15146 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15147 _res = invalid_comprehension_var;
15148 goto done;
15149 }
15150 p->mark = _mark;
15151 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15153 }
15154 _res = NULL;
15155 done:
15156 D(p->level--);
15157 return _res;
15158}
15159
Pablo Galindoda743502021-04-15 14:06:39 +010015160// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015161static expr_ty
15162dict_rule(Parser *p)
15163{
15164 D(p->level++);
15165 if (p->error_indicator) {
15166 D(p->level--);
15167 return NULL;
15168 }
15169 expr_ty _res = NULL;
15170 int _mark = p->mark;
15171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15172 p->error_indicator = 1;
15173 D(p->level--);
15174 return NULL;
15175 }
15176 int _start_lineno = p->tokens[_mark]->lineno;
15177 UNUSED(_start_lineno); // Only used by EXTRA macro
15178 int _start_col_offset = p->tokens[_mark]->col_offset;
15179 UNUSED(_start_col_offset); // Only used by EXTRA macro
15180 { // '{' double_starred_kvpairs? '}'
15181 if (p->error_indicator) {
15182 D(p->level--);
15183 return NULL;
15184 }
15185 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15186 Token * _literal;
15187 Token * _literal_1;
15188 void *a;
15189 if (
15190 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15191 &&
15192 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15193 &&
15194 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15195 )
15196 {
15197 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15198 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15199 if (_token == NULL) {
15200 D(p->level--);
15201 return NULL;
15202 }
15203 int _end_lineno = _token->end_lineno;
15204 UNUSED(_end_lineno); // Only used by EXTRA macro
15205 int _end_col_offset = _token->end_col_offset;
15206 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015207 _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 +010015208 if (_res == NULL && PyErr_Occurred()) {
15209 p->error_indicator = 1;
15210 D(p->level--);
15211 return NULL;
15212 }
15213 goto done;
15214 }
15215 p->mark = _mark;
15216 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15218 }
Pablo Galindoda743502021-04-15 14:06:39 +010015219 { // '{' invalid_double_starred_kvpairs '}'
15220 if (p->error_indicator) {
15221 D(p->level--);
15222 return NULL;
15223 }
15224 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15225 Token * _literal;
15226 Token * _literal_1;
15227 void *invalid_double_starred_kvpairs_var;
15228 if (
15229 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15230 &&
15231 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15232 &&
15233 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15234 )
15235 {
15236 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15237 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15238 goto done;
15239 }
15240 p->mark = _mark;
15241 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15243 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015244 _res = NULL;
15245 done:
15246 D(p->level--);
15247 return _res;
15248}
15249
15250// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15251static expr_ty
15252dictcomp_rule(Parser *p)
15253{
15254 D(p->level++);
15255 if (p->error_indicator) {
15256 D(p->level--);
15257 return NULL;
15258 }
15259 expr_ty _res = NULL;
15260 int _mark = p->mark;
15261 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15262 p->error_indicator = 1;
15263 D(p->level--);
15264 return NULL;
15265 }
15266 int _start_lineno = p->tokens[_mark]->lineno;
15267 UNUSED(_start_lineno); // Only used by EXTRA macro
15268 int _start_col_offset = p->tokens[_mark]->col_offset;
15269 UNUSED(_start_col_offset); // Only used by EXTRA macro
15270 { // '{' kvpair for_if_clauses '}'
15271 if (p->error_indicator) {
15272 D(p->level--);
15273 return NULL;
15274 }
15275 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15276 Token * _literal;
15277 Token * _literal_1;
15278 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015279 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015280 if (
15281 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15282 &&
15283 (a = kvpair_rule(p)) // kvpair
15284 &&
15285 (b = for_if_clauses_rule(p)) // for_if_clauses
15286 &&
15287 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15288 )
15289 {
15290 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15291 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15292 if (_token == NULL) {
15293 D(p->level--);
15294 return NULL;
15295 }
15296 int _end_lineno = _token->end_lineno;
15297 UNUSED(_end_lineno); // Only used by EXTRA macro
15298 int _end_col_offset = _token->end_col_offset;
15299 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015300 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015301 if (_res == NULL && PyErr_Occurred()) {
15302 p->error_indicator = 1;
15303 D(p->level--);
15304 return NULL;
15305 }
15306 goto done;
15307 }
15308 p->mark = _mark;
15309 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15311 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015312 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015313 if (p->error_indicator) {
15314 D(p->level--);
15315 return NULL;
15316 }
15317 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15318 void *invalid_dict_comprehension_var;
15319 if (
15320 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15321 )
15322 {
15323 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15324 _res = invalid_dict_comprehension_var;
15325 goto done;
15326 }
15327 p->mark = _mark;
15328 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15330 }
15331 _res = NULL;
15332 done:
15333 D(p->level--);
15334 return _res;
15335}
15336
15337// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15338static asdl_seq*
15339double_starred_kvpairs_rule(Parser *p)
15340{
15341 D(p->level++);
15342 if (p->error_indicator) {
15343 D(p->level--);
15344 return NULL;
15345 }
15346 asdl_seq* _res = NULL;
15347 int _mark = p->mark;
15348 { // ','.double_starred_kvpair+ ','?
15349 if (p->error_indicator) {
15350 D(p->level--);
15351 return NULL;
15352 }
15353 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15354 void *_opt_var;
15355 UNUSED(_opt_var); // Silence compiler warnings
15356 asdl_seq * a;
15357 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015358 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015359 &&
15360 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15361 )
15362 {
15363 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15364 _res = a;
15365 if (_res == NULL && PyErr_Occurred()) {
15366 p->error_indicator = 1;
15367 D(p->level--);
15368 return NULL;
15369 }
15370 goto done;
15371 }
15372 p->mark = _mark;
15373 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15375 }
15376 _res = NULL;
15377 done:
15378 D(p->level--);
15379 return _res;
15380}
15381
15382// double_starred_kvpair: '**' bitwise_or | kvpair
15383static KeyValuePair*
15384double_starred_kvpair_rule(Parser *p)
15385{
15386 D(p->level++);
15387 if (p->error_indicator) {
15388 D(p->level--);
15389 return NULL;
15390 }
15391 KeyValuePair* _res = NULL;
15392 int _mark = p->mark;
15393 { // '**' bitwise_or
15394 if (p->error_indicator) {
15395 D(p->level--);
15396 return NULL;
15397 }
15398 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15399 Token * _literal;
15400 expr_ty a;
15401 if (
15402 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15403 &&
15404 (a = bitwise_or_rule(p)) // bitwise_or
15405 )
15406 {
15407 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15408 _res = _PyPegen_key_value_pair ( p , NULL , a );
15409 if (_res == NULL && PyErr_Occurred()) {
15410 p->error_indicator = 1;
15411 D(p->level--);
15412 return NULL;
15413 }
15414 goto done;
15415 }
15416 p->mark = _mark;
15417 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15419 }
15420 { // kvpair
15421 if (p->error_indicator) {
15422 D(p->level--);
15423 return NULL;
15424 }
15425 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15426 KeyValuePair* kvpair_var;
15427 if (
15428 (kvpair_var = kvpair_rule(p)) // kvpair
15429 )
15430 {
15431 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15432 _res = kvpair_var;
15433 goto done;
15434 }
15435 p->mark = _mark;
15436 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15438 }
15439 _res = NULL;
15440 done:
15441 D(p->level--);
15442 return _res;
15443}
15444
15445// kvpair: expression ':' expression
15446static KeyValuePair*
15447kvpair_rule(Parser *p)
15448{
15449 D(p->level++);
15450 if (p->error_indicator) {
15451 D(p->level--);
15452 return NULL;
15453 }
15454 KeyValuePair* _res = NULL;
15455 int _mark = p->mark;
15456 { // expression ':' expression
15457 if (p->error_indicator) {
15458 D(p->level--);
15459 return NULL;
15460 }
15461 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15462 Token * _literal;
15463 expr_ty a;
15464 expr_ty b;
15465 if (
15466 (a = expression_rule(p)) // expression
15467 &&
15468 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15469 &&
15470 (b = expression_rule(p)) // expression
15471 )
15472 {
15473 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15474 _res = _PyPegen_key_value_pair ( p , a , b );
15475 if (_res == NULL && PyErr_Occurred()) {
15476 p->error_indicator = 1;
15477 D(p->level--);
15478 return NULL;
15479 }
15480 goto done;
15481 }
15482 p->mark = _mark;
15483 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15485 }
15486 _res = NULL;
15487 done:
15488 D(p->level--);
15489 return _res;
15490}
15491
15492// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015493static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015494for_if_clauses_rule(Parser *p)
15495{
15496 D(p->level++);
15497 if (p->error_indicator) {
15498 D(p->level--);
15499 return NULL;
15500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015501 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015502 int _mark = p->mark;
15503 { // for_if_clause+
15504 if (p->error_indicator) {
15505 D(p->level--);
15506 return NULL;
15507 }
15508 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 +010015509 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015510 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015511 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015512 )
15513 {
15514 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 +010015515 _res = a;
15516 if (_res == NULL && PyErr_Occurred()) {
15517 p->error_indicator = 1;
15518 D(p->level--);
15519 return NULL;
15520 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015521 goto done;
15522 }
15523 p->mark = _mark;
15524 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15526 }
15527 _res = NULL;
15528 done:
15529 D(p->level--);
15530 return _res;
15531}
15532
15533// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015534// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15535// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15536// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015537static comprehension_ty
15538for_if_clause_rule(Parser *p)
15539{
15540 D(p->level++);
15541 if (p->error_indicator) {
15542 D(p->level--);
15543 return NULL;
15544 }
15545 comprehension_ty _res = NULL;
15546 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015547 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015548 if (p->error_indicator) {
15549 D(p->level--);
15550 return NULL;
15551 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015552 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15553 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015554 Token * _keyword;
15555 Token * _keyword_1;
15556 expr_ty a;
15557 Token * async_var;
15558 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015559 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015560 if (
15561 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15562 &&
15563 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15564 &&
15565 (a = star_targets_rule(p)) // star_targets
15566 &&
15567 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15568 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015569 (_cut_var = 1)
15570 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015571 (b = disjunction_rule(p)) // disjunction
15572 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015573 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015574 )
15575 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015576 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 +020015577 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015578 if (_res == NULL && PyErr_Occurred()) {
15579 p->error_indicator = 1;
15580 D(p->level--);
15581 return NULL;
15582 }
15583 goto done;
15584 }
15585 p->mark = _mark;
15586 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15588 if (_cut_var) {
15589 D(p->level--);
15590 return NULL;
15591 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015592 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015593 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015594 if (p->error_indicator) {
15595 D(p->level--);
15596 return NULL;
15597 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015598 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15599 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015600 Token * _keyword;
15601 Token * _keyword_1;
15602 expr_ty a;
15603 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015604 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015605 if (
15606 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15607 &&
15608 (a = star_targets_rule(p)) // star_targets
15609 &&
15610 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15611 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015612 (_cut_var = 1)
15613 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015614 (b = disjunction_rule(p)) // disjunction
15615 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015616 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015617 )
15618 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015619 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 +020015620 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015621 if (_res == NULL && PyErr_Occurred()) {
15622 p->error_indicator = 1;
15623 D(p->level--);
15624 return NULL;
15625 }
15626 goto done;
15627 }
15628 p->mark = _mark;
15629 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15631 if (_cut_var) {
15632 D(p->level--);
15633 return NULL;
15634 }
15635 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015636 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015637 if (p->error_indicator) {
15638 D(p->level--);
15639 return NULL;
15640 }
15641 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15642 void *invalid_for_target_var;
15643 if (
15644 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15645 )
15646 {
15647 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15648 _res = invalid_for_target_var;
15649 goto done;
15650 }
15651 p->mark = _mark;
15652 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015654 }
15655 _res = NULL;
15656 done:
15657 D(p->level--);
15658 return _res;
15659}
15660
15661// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15662static expr_ty
15663yield_expr_rule(Parser *p)
15664{
15665 D(p->level++);
15666 if (p->error_indicator) {
15667 D(p->level--);
15668 return NULL;
15669 }
15670 expr_ty _res = NULL;
15671 int _mark = p->mark;
15672 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15673 p->error_indicator = 1;
15674 D(p->level--);
15675 return NULL;
15676 }
15677 int _start_lineno = p->tokens[_mark]->lineno;
15678 UNUSED(_start_lineno); // Only used by EXTRA macro
15679 int _start_col_offset = p->tokens[_mark]->col_offset;
15680 UNUSED(_start_col_offset); // Only used by EXTRA macro
15681 { // 'yield' 'from' expression
15682 if (p->error_indicator) {
15683 D(p->level--);
15684 return NULL;
15685 }
15686 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15687 Token * _keyword;
15688 Token * _keyword_1;
15689 expr_ty a;
15690 if (
15691 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15692 &&
15693 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15694 &&
15695 (a = expression_rule(p)) // expression
15696 )
15697 {
15698 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15700 if (_token == NULL) {
15701 D(p->level--);
15702 return NULL;
15703 }
15704 int _end_lineno = _token->end_lineno;
15705 UNUSED(_end_lineno); // Only used by EXTRA macro
15706 int _end_col_offset = _token->end_col_offset;
15707 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015708 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015709 if (_res == NULL && PyErr_Occurred()) {
15710 p->error_indicator = 1;
15711 D(p->level--);
15712 return NULL;
15713 }
15714 goto done;
15715 }
15716 p->mark = _mark;
15717 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15719 }
15720 { // 'yield' star_expressions?
15721 if (p->error_indicator) {
15722 D(p->level--);
15723 return NULL;
15724 }
15725 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15726 Token * _keyword;
15727 void *a;
15728 if (
15729 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15730 &&
15731 (a = star_expressions_rule(p), 1) // star_expressions?
15732 )
15733 {
15734 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15735 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15736 if (_token == NULL) {
15737 D(p->level--);
15738 return NULL;
15739 }
15740 int _end_lineno = _token->end_lineno;
15741 UNUSED(_end_lineno); // Only used by EXTRA macro
15742 int _end_col_offset = _token->end_col_offset;
15743 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015744 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015745 if (_res == NULL && PyErr_Occurred()) {
15746 p->error_indicator = 1;
15747 D(p->level--);
15748 return NULL;
15749 }
15750 goto done;
15751 }
15752 p->mark = _mark;
15753 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15755 }
15756 _res = NULL;
15757 done:
15758 D(p->level--);
15759 return _res;
15760}
15761
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015762// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015763static expr_ty
15764arguments_rule(Parser *p)
15765{
15766 D(p->level++);
15767 if (p->error_indicator) {
15768 D(p->level--);
15769 return NULL;
15770 }
15771 expr_ty _res = NULL;
15772 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15773 D(p->level--);
15774 return _res;
15775 }
15776 int _mark = p->mark;
15777 { // args ','? &')'
15778 if (p->error_indicator) {
15779 D(p->level--);
15780 return NULL;
15781 }
15782 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15783 void *_opt_var;
15784 UNUSED(_opt_var); // Silence compiler warnings
15785 expr_ty a;
15786 if (
15787 (a = args_rule(p)) // args
15788 &&
15789 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15790 &&
15791 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15792 )
15793 {
15794 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15795 _res = a;
15796 if (_res == NULL && PyErr_Occurred()) {
15797 p->error_indicator = 1;
15798 D(p->level--);
15799 return NULL;
15800 }
15801 goto done;
15802 }
15803 p->mark = _mark;
15804 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15806 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015807 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015808 if (p->error_indicator) {
15809 D(p->level--);
15810 return NULL;
15811 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015812 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15813 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015814 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015815 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015816 )
15817 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015818 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15819 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015820 goto done;
15821 }
15822 p->mark = _mark;
15823 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015825 }
15826 _res = NULL;
15827 done:
15828 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15829 D(p->level--);
15830 return _res;
15831}
15832
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015833// args:
15834// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15835// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015836static expr_ty
15837args_rule(Parser *p)
15838{
15839 D(p->level++);
15840 if (p->error_indicator) {
15841 D(p->level--);
15842 return NULL;
15843 }
15844 expr_ty _res = NULL;
15845 int _mark = p->mark;
15846 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15847 p->error_indicator = 1;
15848 D(p->level--);
15849 return NULL;
15850 }
15851 int _start_lineno = p->tokens[_mark]->lineno;
15852 UNUSED(_start_lineno); // Only used by EXTRA macro
15853 int _start_col_offset = p->tokens[_mark]->col_offset;
15854 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015855 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015856 if (p->error_indicator) {
15857 D(p->level--);
15858 return NULL;
15859 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015860 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015861 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015862 void *b;
15863 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015864 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015865 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015866 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015867 )
15868 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015869 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15871 if (_token == NULL) {
15872 D(p->level--);
15873 return NULL;
15874 }
15875 int _end_lineno = _token->end_lineno;
15876 UNUSED(_end_lineno); // Only used by EXTRA macro
15877 int _end_col_offset = _token->end_col_offset;
15878 UNUSED(_end_col_offset); // Only used by EXTRA macro
15879 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015880 if (_res == NULL && PyErr_Occurred()) {
15881 p->error_indicator = 1;
15882 D(p->level--);
15883 return NULL;
15884 }
15885 goto done;
15886 }
15887 p->mark = _mark;
15888 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015890 }
15891 { // kwargs
15892 if (p->error_indicator) {
15893 D(p->level--);
15894 return NULL;
15895 }
15896 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15897 asdl_seq* a;
15898 if (
15899 (a = kwargs_rule(p)) // kwargs
15900 )
15901 {
15902 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15904 if (_token == NULL) {
15905 D(p->level--);
15906 return NULL;
15907 }
15908 int _end_lineno = _token->end_lineno;
15909 UNUSED(_end_lineno); // Only used by EXTRA macro
15910 int _end_col_offset = _token->end_col_offset;
15911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015912 _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 +010015913 if (_res == NULL && PyErr_Occurred()) {
15914 p->error_indicator = 1;
15915 D(p->level--);
15916 return NULL;
15917 }
15918 goto done;
15919 }
15920 p->mark = _mark;
15921 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15923 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015924 _res = NULL;
15925 done:
15926 D(p->level--);
15927 return _res;
15928}
15929
15930// kwargs:
15931// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15932// | ','.kwarg_or_starred+
15933// | ','.kwarg_or_double_starred+
15934static asdl_seq*
15935kwargs_rule(Parser *p)
15936{
15937 D(p->level++);
15938 if (p->error_indicator) {
15939 D(p->level--);
15940 return NULL;
15941 }
15942 asdl_seq* _res = NULL;
15943 int _mark = p->mark;
15944 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15945 if (p->error_indicator) {
15946 D(p->level--);
15947 return NULL;
15948 }
15949 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15950 Token * _literal;
15951 asdl_seq * a;
15952 asdl_seq * b;
15953 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015954 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015955 &&
15956 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15957 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015958 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 )
15960 {
15961 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15962 _res = _PyPegen_join_sequences ( p , a , b );
15963 if (_res == NULL && PyErr_Occurred()) {
15964 p->error_indicator = 1;
15965 D(p->level--);
15966 return NULL;
15967 }
15968 goto done;
15969 }
15970 p->mark = _mark;
15971 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15973 }
15974 { // ','.kwarg_or_starred+
15975 if (p->error_indicator) {
15976 D(p->level--);
15977 return NULL;
15978 }
15979 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015980 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015981 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015982 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015983 )
15984 {
15985 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015986 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015987 goto done;
15988 }
15989 p->mark = _mark;
15990 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15992 }
15993 { // ','.kwarg_or_double_starred+
15994 if (p->error_indicator) {
15995 D(p->level--);
15996 return NULL;
15997 }
15998 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015999 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016000 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016001 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016002 )
16003 {
16004 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016005 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016006 goto done;
16007 }
16008 p->mark = _mark;
16009 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16011 }
16012 _res = NULL;
16013 done:
16014 D(p->level--);
16015 return _res;
16016}
16017
16018// starred_expression: '*' expression
16019static expr_ty
16020starred_expression_rule(Parser *p)
16021{
16022 D(p->level++);
16023 if (p->error_indicator) {
16024 D(p->level--);
16025 return NULL;
16026 }
16027 expr_ty _res = NULL;
16028 int _mark = p->mark;
16029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16030 p->error_indicator = 1;
16031 D(p->level--);
16032 return NULL;
16033 }
16034 int _start_lineno = p->tokens[_mark]->lineno;
16035 UNUSED(_start_lineno); // Only used by EXTRA macro
16036 int _start_col_offset = p->tokens[_mark]->col_offset;
16037 UNUSED(_start_col_offset); // Only used by EXTRA macro
16038 { // '*' expression
16039 if (p->error_indicator) {
16040 D(p->level--);
16041 return NULL;
16042 }
16043 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16044 Token * _literal;
16045 expr_ty a;
16046 if (
16047 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16048 &&
16049 (a = expression_rule(p)) // expression
16050 )
16051 {
16052 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16054 if (_token == NULL) {
16055 D(p->level--);
16056 return NULL;
16057 }
16058 int _end_lineno = _token->end_lineno;
16059 UNUSED(_end_lineno); // Only used by EXTRA macro
16060 int _end_col_offset = _token->end_col_offset;
16061 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016062 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016063 if (_res == NULL && PyErr_Occurred()) {
16064 p->error_indicator = 1;
16065 D(p->level--);
16066 return NULL;
16067 }
16068 goto done;
16069 }
16070 p->mark = _mark;
16071 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16073 }
16074 _res = NULL;
16075 done:
16076 D(p->level--);
16077 return _res;
16078}
16079
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016080// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016081static KeywordOrStarred*
16082kwarg_or_starred_rule(Parser *p)
16083{
16084 D(p->level++);
16085 if (p->error_indicator) {
16086 D(p->level--);
16087 return NULL;
16088 }
16089 KeywordOrStarred* _res = NULL;
16090 int _mark = p->mark;
16091 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16092 p->error_indicator = 1;
16093 D(p->level--);
16094 return NULL;
16095 }
16096 int _start_lineno = p->tokens[_mark]->lineno;
16097 UNUSED(_start_lineno); // Only used by EXTRA macro
16098 int _start_col_offset = p->tokens[_mark]->col_offset;
16099 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016100 if (p->call_invalid_rules) { // invalid_kwarg
16101 if (p->error_indicator) {
16102 D(p->level--);
16103 return NULL;
16104 }
16105 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16106 void *invalid_kwarg_var;
16107 if (
16108 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16109 )
16110 {
16111 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16112 _res = invalid_kwarg_var;
16113 goto done;
16114 }
16115 p->mark = _mark;
16116 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16118 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016119 { // NAME '=' expression
16120 if (p->error_indicator) {
16121 D(p->level--);
16122 return NULL;
16123 }
16124 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16125 Token * _literal;
16126 expr_ty a;
16127 expr_ty b;
16128 if (
16129 (a = _PyPegen_name_token(p)) // NAME
16130 &&
16131 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16132 &&
16133 (b = expression_rule(p)) // expression
16134 )
16135 {
16136 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16138 if (_token == NULL) {
16139 D(p->level--);
16140 return NULL;
16141 }
16142 int _end_lineno = _token->end_lineno;
16143 UNUSED(_end_lineno); // Only used by EXTRA macro
16144 int _end_col_offset = _token->end_col_offset;
16145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016146 _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 +010016147 if (_res == NULL && PyErr_Occurred()) {
16148 p->error_indicator = 1;
16149 D(p->level--);
16150 return NULL;
16151 }
16152 goto done;
16153 }
16154 p->mark = _mark;
16155 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16157 }
16158 { // starred_expression
16159 if (p->error_indicator) {
16160 D(p->level--);
16161 return NULL;
16162 }
16163 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16164 expr_ty a;
16165 if (
16166 (a = starred_expression_rule(p)) // starred_expression
16167 )
16168 {
16169 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16170 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16171 if (_res == NULL && PyErr_Occurred()) {
16172 p->error_indicator = 1;
16173 D(p->level--);
16174 return NULL;
16175 }
16176 goto done;
16177 }
16178 p->mark = _mark;
16179 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16181 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016182 _res = NULL;
16183 done:
16184 D(p->level--);
16185 return _res;
16186}
16187
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016188// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016189static KeywordOrStarred*
16190kwarg_or_double_starred_rule(Parser *p)
16191{
16192 D(p->level++);
16193 if (p->error_indicator) {
16194 D(p->level--);
16195 return NULL;
16196 }
16197 KeywordOrStarred* _res = NULL;
16198 int _mark = p->mark;
16199 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16200 p->error_indicator = 1;
16201 D(p->level--);
16202 return NULL;
16203 }
16204 int _start_lineno = p->tokens[_mark]->lineno;
16205 UNUSED(_start_lineno); // Only used by EXTRA macro
16206 int _start_col_offset = p->tokens[_mark]->col_offset;
16207 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016208 if (p->call_invalid_rules) { // invalid_kwarg
16209 if (p->error_indicator) {
16210 D(p->level--);
16211 return NULL;
16212 }
16213 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16214 void *invalid_kwarg_var;
16215 if (
16216 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16217 )
16218 {
16219 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16220 _res = invalid_kwarg_var;
16221 goto done;
16222 }
16223 p->mark = _mark;
16224 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16226 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016227 { // NAME '=' expression
16228 if (p->error_indicator) {
16229 D(p->level--);
16230 return NULL;
16231 }
16232 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16233 Token * _literal;
16234 expr_ty a;
16235 expr_ty b;
16236 if (
16237 (a = _PyPegen_name_token(p)) // NAME
16238 &&
16239 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16240 &&
16241 (b = expression_rule(p)) // expression
16242 )
16243 {
16244 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16245 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16246 if (_token == NULL) {
16247 D(p->level--);
16248 return NULL;
16249 }
16250 int _end_lineno = _token->end_lineno;
16251 UNUSED(_end_lineno); // Only used by EXTRA macro
16252 int _end_col_offset = _token->end_col_offset;
16253 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016254 _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 +010016255 if (_res == NULL && PyErr_Occurred()) {
16256 p->error_indicator = 1;
16257 D(p->level--);
16258 return NULL;
16259 }
16260 goto done;
16261 }
16262 p->mark = _mark;
16263 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16265 }
16266 { // '**' expression
16267 if (p->error_indicator) {
16268 D(p->level--);
16269 return NULL;
16270 }
16271 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16272 Token * _literal;
16273 expr_ty a;
16274 if (
16275 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16276 &&
16277 (a = expression_rule(p)) // expression
16278 )
16279 {
16280 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16281 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16282 if (_token == NULL) {
16283 D(p->level--);
16284 return NULL;
16285 }
16286 int _end_lineno = _token->end_lineno;
16287 UNUSED(_end_lineno); // Only used by EXTRA macro
16288 int _end_col_offset = _token->end_col_offset;
16289 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016290 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016291 if (_res == NULL && PyErr_Occurred()) {
16292 p->error_indicator = 1;
16293 D(p->level--);
16294 return NULL;
16295 }
16296 goto done;
16297 }
16298 p->mark = _mark;
16299 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16301 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016302 _res = NULL;
16303 done:
16304 D(p->level--);
16305 return _res;
16306}
16307
16308// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16309static expr_ty
16310star_targets_rule(Parser *p)
16311{
16312 D(p->level++);
16313 if (p->error_indicator) {
16314 D(p->level--);
16315 return NULL;
16316 }
16317 expr_ty _res = NULL;
16318 int _mark = p->mark;
16319 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16320 p->error_indicator = 1;
16321 D(p->level--);
16322 return NULL;
16323 }
16324 int _start_lineno = p->tokens[_mark]->lineno;
16325 UNUSED(_start_lineno); // Only used by EXTRA macro
16326 int _start_col_offset = p->tokens[_mark]->col_offset;
16327 UNUSED(_start_col_offset); // Only used by EXTRA macro
16328 { // star_target !','
16329 if (p->error_indicator) {
16330 D(p->level--);
16331 return NULL;
16332 }
16333 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16334 expr_ty a;
16335 if (
16336 (a = star_target_rule(p)) // star_target
16337 &&
16338 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16339 )
16340 {
16341 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16342 _res = a;
16343 if (_res == NULL && PyErr_Occurred()) {
16344 p->error_indicator = 1;
16345 D(p->level--);
16346 return NULL;
16347 }
16348 goto done;
16349 }
16350 p->mark = _mark;
16351 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16353 }
16354 { // star_target ((',' star_target))* ','?
16355 if (p->error_indicator) {
16356 D(p->level--);
16357 return NULL;
16358 }
16359 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16360 void *_opt_var;
16361 UNUSED(_opt_var); // Silence compiler warnings
16362 expr_ty a;
16363 asdl_seq * b;
16364 if (
16365 (a = star_target_rule(p)) // star_target
16366 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016367 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016368 &&
16369 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16370 )
16371 {
16372 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16373 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16374 if (_token == NULL) {
16375 D(p->level--);
16376 return NULL;
16377 }
16378 int _end_lineno = _token->end_lineno;
16379 UNUSED(_end_lineno); // Only used by EXTRA macro
16380 int _end_col_offset = _token->end_col_offset;
16381 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016382 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016383 if (_res == NULL && PyErr_Occurred()) {
16384 p->error_indicator = 1;
16385 D(p->level--);
16386 return NULL;
16387 }
16388 goto done;
16389 }
16390 p->mark = _mark;
16391 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16393 }
16394 _res = NULL;
16395 done:
16396 D(p->level--);
16397 return _res;
16398}
16399
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016400// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016401static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016402star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016403{
16404 D(p->level++);
16405 if (p->error_indicator) {
16406 D(p->level--);
16407 return NULL;
16408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016409 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016410 int _mark = p->mark;
16411 { // ','.star_target+ ','?
16412 if (p->error_indicator) {
16413 D(p->level--);
16414 return NULL;
16415 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016416 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 +010016417 void *_opt_var;
16418 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016419 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016420 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016421 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016422 &&
16423 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16424 )
16425 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016426 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 +010016427 _res = a;
16428 if (_res == NULL && PyErr_Occurred()) {
16429 p->error_indicator = 1;
16430 D(p->level--);
16431 return NULL;
16432 }
16433 goto done;
16434 }
16435 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016436 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16438 }
16439 _res = NULL;
16440 done:
16441 D(p->level--);
16442 return _res;
16443}
16444
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016445// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16446static asdl_expr_seq*
16447star_targets_tuple_seq_rule(Parser *p)
16448{
16449 D(p->level++);
16450 if (p->error_indicator) {
16451 D(p->level--);
16452 return NULL;
16453 }
16454 asdl_expr_seq* _res = NULL;
16455 int _mark = p->mark;
16456 { // star_target ((',' star_target))+ ','?
16457 if (p->error_indicator) {
16458 D(p->level--);
16459 return NULL;
16460 }
16461 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16462 void *_opt_var;
16463 UNUSED(_opt_var); // Silence compiler warnings
16464 expr_ty a;
16465 asdl_seq * b;
16466 if (
16467 (a = star_target_rule(p)) // star_target
16468 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016469 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016470 &&
16471 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16472 )
16473 {
16474 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16475 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16476 if (_res == NULL && PyErr_Occurred()) {
16477 p->error_indicator = 1;
16478 D(p->level--);
16479 return NULL;
16480 }
16481 goto done;
16482 }
16483 p->mark = _mark;
16484 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16486 }
16487 { // star_target ','
16488 if (p->error_indicator) {
16489 D(p->level--);
16490 return NULL;
16491 }
16492 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16493 Token * _literal;
16494 expr_ty a;
16495 if (
16496 (a = star_target_rule(p)) // star_target
16497 &&
16498 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16499 )
16500 {
16501 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16502 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16503 if (_res == NULL && PyErr_Occurred()) {
16504 p->error_indicator = 1;
16505 D(p->level--);
16506 return NULL;
16507 }
16508 goto done;
16509 }
16510 p->mark = _mark;
16511 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16513 }
16514 _res = NULL;
16515 done:
16516 D(p->level--);
16517 return _res;
16518}
16519
16520// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016521static expr_ty
16522star_target_rule(Parser *p)
16523{
16524 D(p->level++);
16525 if (p->error_indicator) {
16526 D(p->level--);
16527 return NULL;
16528 }
16529 expr_ty _res = NULL;
16530 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16531 D(p->level--);
16532 return _res;
16533 }
16534 int _mark = p->mark;
16535 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16536 p->error_indicator = 1;
16537 D(p->level--);
16538 return NULL;
16539 }
16540 int _start_lineno = p->tokens[_mark]->lineno;
16541 UNUSED(_start_lineno); // Only used by EXTRA macro
16542 int _start_col_offset = p->tokens[_mark]->col_offset;
16543 UNUSED(_start_col_offset); // Only used by EXTRA macro
16544 { // '*' (!'*' star_target)
16545 if (p->error_indicator) {
16546 D(p->level--);
16547 return NULL;
16548 }
16549 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16550 Token * _literal;
16551 void *a;
16552 if (
16553 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16554 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016555 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016556 )
16557 {
16558 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16559 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16560 if (_token == NULL) {
16561 D(p->level--);
16562 return NULL;
16563 }
16564 int _end_lineno = _token->end_lineno;
16565 UNUSED(_end_lineno); // Only used by EXTRA macro
16566 int _end_col_offset = _token->end_col_offset;
16567 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016568 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016569 if (_res == NULL && PyErr_Occurred()) {
16570 p->error_indicator = 1;
16571 D(p->level--);
16572 return NULL;
16573 }
16574 goto done;
16575 }
16576 p->mark = _mark;
16577 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16579 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016580 { // target_with_star_atom
16581 if (p->error_indicator) {
16582 D(p->level--);
16583 return NULL;
16584 }
16585 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16586 expr_ty target_with_star_atom_var;
16587 if (
16588 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16589 )
16590 {
16591 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16592 _res = target_with_star_atom_var;
16593 goto done;
16594 }
16595 p->mark = _mark;
16596 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16598 }
16599 _res = NULL;
16600 done:
16601 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16602 D(p->level--);
16603 return _res;
16604}
16605
16606// target_with_star_atom:
16607// | t_primary '.' NAME !t_lookahead
16608// | t_primary '[' slices ']' !t_lookahead
16609// | star_atom
16610static expr_ty
16611target_with_star_atom_rule(Parser *p)
16612{
16613 D(p->level++);
16614 if (p->error_indicator) {
16615 D(p->level--);
16616 return NULL;
16617 }
16618 expr_ty _res = NULL;
16619 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16620 D(p->level--);
16621 return _res;
16622 }
16623 int _mark = p->mark;
16624 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16625 p->error_indicator = 1;
16626 D(p->level--);
16627 return NULL;
16628 }
16629 int _start_lineno = p->tokens[_mark]->lineno;
16630 UNUSED(_start_lineno); // Only used by EXTRA macro
16631 int _start_col_offset = p->tokens[_mark]->col_offset;
16632 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016633 { // t_primary '.' NAME !t_lookahead
16634 if (p->error_indicator) {
16635 D(p->level--);
16636 return NULL;
16637 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016638 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 +010016639 Token * _literal;
16640 expr_ty a;
16641 expr_ty b;
16642 if (
16643 (a = t_primary_rule(p)) // t_primary
16644 &&
16645 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16646 &&
16647 (b = _PyPegen_name_token(p)) // NAME
16648 &&
16649 _PyPegen_lookahead(0, t_lookahead_rule, p)
16650 )
16651 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016652 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 +010016653 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16654 if (_token == NULL) {
16655 D(p->level--);
16656 return NULL;
16657 }
16658 int _end_lineno = _token->end_lineno;
16659 UNUSED(_end_lineno); // Only used by EXTRA macro
16660 int _end_col_offset = _token->end_col_offset;
16661 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016662 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016663 if (_res == NULL && PyErr_Occurred()) {
16664 p->error_indicator = 1;
16665 D(p->level--);
16666 return NULL;
16667 }
16668 goto done;
16669 }
16670 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016671 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16673 }
16674 { // t_primary '[' slices ']' !t_lookahead
16675 if (p->error_indicator) {
16676 D(p->level--);
16677 return NULL;
16678 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016679 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 +010016680 Token * _literal;
16681 Token * _literal_1;
16682 expr_ty a;
16683 expr_ty b;
16684 if (
16685 (a = t_primary_rule(p)) // t_primary
16686 &&
16687 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16688 &&
16689 (b = slices_rule(p)) // slices
16690 &&
16691 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16692 &&
16693 _PyPegen_lookahead(0, t_lookahead_rule, p)
16694 )
16695 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016696 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 +010016697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16698 if (_token == NULL) {
16699 D(p->level--);
16700 return NULL;
16701 }
16702 int _end_lineno = _token->end_lineno;
16703 UNUSED(_end_lineno); // Only used by EXTRA macro
16704 int _end_col_offset = _token->end_col_offset;
16705 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016706 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016707 if (_res == NULL && PyErr_Occurred()) {
16708 p->error_indicator = 1;
16709 D(p->level--);
16710 return NULL;
16711 }
16712 goto done;
16713 }
16714 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016715 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16717 }
16718 { // star_atom
16719 if (p->error_indicator) {
16720 D(p->level--);
16721 return NULL;
16722 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016723 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 +010016724 expr_ty star_atom_var;
16725 if (
16726 (star_atom_var = star_atom_rule(p)) // star_atom
16727 )
16728 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016729 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 +010016730 _res = star_atom_var;
16731 goto done;
16732 }
16733 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016734 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16736 }
16737 _res = NULL;
16738 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016739 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016740 D(p->level--);
16741 return _res;
16742}
16743
16744// star_atom:
16745// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016746// | '(' target_with_star_atom ')'
16747// | '(' star_targets_tuple_seq? ')'
16748// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016749static expr_ty
16750star_atom_rule(Parser *p)
16751{
16752 D(p->level++);
16753 if (p->error_indicator) {
16754 D(p->level--);
16755 return NULL;
16756 }
16757 expr_ty _res = NULL;
16758 int _mark = p->mark;
16759 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16760 p->error_indicator = 1;
16761 D(p->level--);
16762 return NULL;
16763 }
16764 int _start_lineno = p->tokens[_mark]->lineno;
16765 UNUSED(_start_lineno); // Only used by EXTRA macro
16766 int _start_col_offset = p->tokens[_mark]->col_offset;
16767 UNUSED(_start_col_offset); // Only used by EXTRA macro
16768 { // NAME
16769 if (p->error_indicator) {
16770 D(p->level--);
16771 return NULL;
16772 }
16773 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16774 expr_ty a;
16775 if (
16776 (a = _PyPegen_name_token(p)) // NAME
16777 )
16778 {
16779 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16780 _res = _PyPegen_set_expr_context ( p , a , Store );
16781 if (_res == NULL && PyErr_Occurred()) {
16782 p->error_indicator = 1;
16783 D(p->level--);
16784 return NULL;
16785 }
16786 goto done;
16787 }
16788 p->mark = _mark;
16789 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16791 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016792 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 if (p->error_indicator) {
16794 D(p->level--);
16795 return NULL;
16796 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016797 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 +010016798 Token * _literal;
16799 Token * _literal_1;
16800 expr_ty a;
16801 if (
16802 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16803 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016804 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016805 &&
16806 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16807 )
16808 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016809 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 +010016810 _res = _PyPegen_set_expr_context ( p , a , Store );
16811 if (_res == NULL && PyErr_Occurred()) {
16812 p->error_indicator = 1;
16813 D(p->level--);
16814 return NULL;
16815 }
16816 goto done;
16817 }
16818 p->mark = _mark;
16819 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016821 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016822 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016823 if (p->error_indicator) {
16824 D(p->level--);
16825 return NULL;
16826 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016827 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 +010016828 Token * _literal;
16829 Token * _literal_1;
16830 void *a;
16831 if (
16832 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16833 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016834 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016835 &&
16836 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16837 )
16838 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016839 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 +010016840 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16841 if (_token == NULL) {
16842 D(p->level--);
16843 return NULL;
16844 }
16845 int _end_lineno = _token->end_lineno;
16846 UNUSED(_end_lineno); // Only used by EXTRA macro
16847 int _end_col_offset = _token->end_col_offset;
16848 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016849 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016850 if (_res == NULL && PyErr_Occurred()) {
16851 p->error_indicator = 1;
16852 D(p->level--);
16853 return NULL;
16854 }
16855 goto done;
16856 }
16857 p->mark = _mark;
16858 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016860 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016861 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016862 if (p->error_indicator) {
16863 D(p->level--);
16864 return NULL;
16865 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016866 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 +010016867 Token * _literal;
16868 Token * _literal_1;
16869 void *a;
16870 if (
16871 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16872 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016873 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016874 &&
16875 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16876 )
16877 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016878 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 +010016879 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16880 if (_token == NULL) {
16881 D(p->level--);
16882 return NULL;
16883 }
16884 int _end_lineno = _token->end_lineno;
16885 UNUSED(_end_lineno); // Only used by EXTRA macro
16886 int _end_col_offset = _token->end_col_offset;
16887 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016888 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016889 if (_res == NULL && PyErr_Occurred()) {
16890 p->error_indicator = 1;
16891 D(p->level--);
16892 return NULL;
16893 }
16894 goto done;
16895 }
16896 p->mark = _mark;
16897 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016899 }
16900 _res = NULL;
16901 done:
16902 D(p->level--);
16903 return _res;
16904}
16905
16906// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16907static expr_ty
16908single_target_rule(Parser *p)
16909{
16910 D(p->level++);
16911 if (p->error_indicator) {
16912 D(p->level--);
16913 return NULL;
16914 }
16915 expr_ty _res = NULL;
16916 int _mark = p->mark;
16917 { // single_subscript_attribute_target
16918 if (p->error_indicator) {
16919 D(p->level--);
16920 return NULL;
16921 }
16922 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16923 expr_ty single_subscript_attribute_target_var;
16924 if (
16925 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16926 )
16927 {
16928 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16929 _res = single_subscript_attribute_target_var;
16930 goto done;
16931 }
16932 p->mark = _mark;
16933 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16935 }
16936 { // NAME
16937 if (p->error_indicator) {
16938 D(p->level--);
16939 return NULL;
16940 }
16941 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16942 expr_ty a;
16943 if (
16944 (a = _PyPegen_name_token(p)) // NAME
16945 )
16946 {
16947 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16948 _res = _PyPegen_set_expr_context ( p , a , Store );
16949 if (_res == NULL && PyErr_Occurred()) {
16950 p->error_indicator = 1;
16951 D(p->level--);
16952 return NULL;
16953 }
16954 goto done;
16955 }
16956 p->mark = _mark;
16957 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16959 }
16960 { // '(' single_target ')'
16961 if (p->error_indicator) {
16962 D(p->level--);
16963 return NULL;
16964 }
16965 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16966 Token * _literal;
16967 Token * _literal_1;
16968 expr_ty a;
16969 if (
16970 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16971 &&
16972 (a = single_target_rule(p)) // single_target
16973 &&
16974 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16975 )
16976 {
16977 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16978 _res = a;
16979 if (_res == NULL && PyErr_Occurred()) {
16980 p->error_indicator = 1;
16981 D(p->level--);
16982 return NULL;
16983 }
16984 goto done;
16985 }
16986 p->mark = _mark;
16987 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16989 }
16990 _res = NULL;
16991 done:
16992 D(p->level--);
16993 return _res;
16994}
16995
16996// single_subscript_attribute_target:
16997// | t_primary '.' NAME !t_lookahead
16998// | t_primary '[' slices ']' !t_lookahead
16999static expr_ty
17000single_subscript_attribute_target_rule(Parser *p)
17001{
17002 D(p->level++);
17003 if (p->error_indicator) {
17004 D(p->level--);
17005 return NULL;
17006 }
17007 expr_ty _res = NULL;
17008 int _mark = p->mark;
17009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17010 p->error_indicator = 1;
17011 D(p->level--);
17012 return NULL;
17013 }
17014 int _start_lineno = p->tokens[_mark]->lineno;
17015 UNUSED(_start_lineno); // Only used by EXTRA macro
17016 int _start_col_offset = p->tokens[_mark]->col_offset;
17017 UNUSED(_start_col_offset); // Only used by EXTRA macro
17018 { // t_primary '.' NAME !t_lookahead
17019 if (p->error_indicator) {
17020 D(p->level--);
17021 return NULL;
17022 }
17023 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17024 Token * _literal;
17025 expr_ty a;
17026 expr_ty b;
17027 if (
17028 (a = t_primary_rule(p)) // t_primary
17029 &&
17030 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17031 &&
17032 (b = _PyPegen_name_token(p)) // NAME
17033 &&
17034 _PyPegen_lookahead(0, t_lookahead_rule, p)
17035 )
17036 {
17037 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17039 if (_token == NULL) {
17040 D(p->level--);
17041 return NULL;
17042 }
17043 int _end_lineno = _token->end_lineno;
17044 UNUSED(_end_lineno); // Only used by EXTRA macro
17045 int _end_col_offset = _token->end_col_offset;
17046 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017047 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017048 if (_res == NULL && PyErr_Occurred()) {
17049 p->error_indicator = 1;
17050 D(p->level--);
17051 return NULL;
17052 }
17053 goto done;
17054 }
17055 p->mark = _mark;
17056 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17058 }
17059 { // t_primary '[' slices ']' !t_lookahead
17060 if (p->error_indicator) {
17061 D(p->level--);
17062 return NULL;
17063 }
17064 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17065 Token * _literal;
17066 Token * _literal_1;
17067 expr_ty a;
17068 expr_ty b;
17069 if (
17070 (a = t_primary_rule(p)) // t_primary
17071 &&
17072 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17073 &&
17074 (b = slices_rule(p)) // slices
17075 &&
17076 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17077 &&
17078 _PyPegen_lookahead(0, t_lookahead_rule, p)
17079 )
17080 {
17081 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17082 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17083 if (_token == NULL) {
17084 D(p->level--);
17085 return NULL;
17086 }
17087 int _end_lineno = _token->end_lineno;
17088 UNUSED(_end_lineno); // Only used by EXTRA macro
17089 int _end_col_offset = _token->end_col_offset;
17090 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017091 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017092 if (_res == NULL && PyErr_Occurred()) {
17093 p->error_indicator = 1;
17094 D(p->level--);
17095 return NULL;
17096 }
17097 goto done;
17098 }
17099 p->mark = _mark;
17100 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17102 }
17103 _res = NULL;
17104 done:
17105 D(p->level--);
17106 return _res;
17107}
17108
17109// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017110static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017111del_targets_rule(Parser *p)
17112{
17113 D(p->level++);
17114 if (p->error_indicator) {
17115 D(p->level--);
17116 return NULL;
17117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017118 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017119 int _mark = p->mark;
17120 { // ','.del_target+ ','?
17121 if (p->error_indicator) {
17122 D(p->level--);
17123 return NULL;
17124 }
17125 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17126 void *_opt_var;
17127 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017128 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017129 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017130 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017131 &&
17132 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17133 )
17134 {
17135 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17136 _res = a;
17137 if (_res == NULL && PyErr_Occurred()) {
17138 p->error_indicator = 1;
17139 D(p->level--);
17140 return NULL;
17141 }
17142 goto done;
17143 }
17144 p->mark = _mark;
17145 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17147 }
17148 _res = NULL;
17149 done:
17150 D(p->level--);
17151 return _res;
17152}
17153
17154// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017155// | t_primary '.' NAME !t_lookahead
17156// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017157// | del_t_atom
17158static expr_ty
17159del_target_rule(Parser *p)
17160{
17161 D(p->level++);
17162 if (p->error_indicator) {
17163 D(p->level--);
17164 return NULL;
17165 }
17166 expr_ty _res = NULL;
17167 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17168 D(p->level--);
17169 return _res;
17170 }
17171 int _mark = p->mark;
17172 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17173 p->error_indicator = 1;
17174 D(p->level--);
17175 return NULL;
17176 }
17177 int _start_lineno = p->tokens[_mark]->lineno;
17178 UNUSED(_start_lineno); // Only used by EXTRA macro
17179 int _start_col_offset = p->tokens[_mark]->col_offset;
17180 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017181 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017182 if (p->error_indicator) {
17183 D(p->level--);
17184 return NULL;
17185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017186 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 +010017187 Token * _literal;
17188 expr_ty a;
17189 expr_ty b;
17190 if (
17191 (a = t_primary_rule(p)) // t_primary
17192 &&
17193 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17194 &&
17195 (b = _PyPegen_name_token(p)) // NAME
17196 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017197 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017198 )
17199 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017200 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 +010017201 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17202 if (_token == NULL) {
17203 D(p->level--);
17204 return NULL;
17205 }
17206 int _end_lineno = _token->end_lineno;
17207 UNUSED(_end_lineno); // Only used by EXTRA macro
17208 int _end_col_offset = _token->end_col_offset;
17209 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017210 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017211 if (_res == NULL && PyErr_Occurred()) {
17212 p->error_indicator = 1;
17213 D(p->level--);
17214 return NULL;
17215 }
17216 goto done;
17217 }
17218 p->mark = _mark;
17219 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017221 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017222 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017223 if (p->error_indicator) {
17224 D(p->level--);
17225 return NULL;
17226 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017227 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 +010017228 Token * _literal;
17229 Token * _literal_1;
17230 expr_ty a;
17231 expr_ty b;
17232 if (
17233 (a = t_primary_rule(p)) // t_primary
17234 &&
17235 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17236 &&
17237 (b = slices_rule(p)) // slices
17238 &&
17239 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17240 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017241 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017242 )
17243 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017244 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 +010017245 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17246 if (_token == NULL) {
17247 D(p->level--);
17248 return NULL;
17249 }
17250 int _end_lineno = _token->end_lineno;
17251 UNUSED(_end_lineno); // Only used by EXTRA macro
17252 int _end_col_offset = _token->end_col_offset;
17253 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017254 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017255 if (_res == NULL && PyErr_Occurred()) {
17256 p->error_indicator = 1;
17257 D(p->level--);
17258 return NULL;
17259 }
17260 goto done;
17261 }
17262 p->mark = _mark;
17263 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017265 }
17266 { // del_t_atom
17267 if (p->error_indicator) {
17268 D(p->level--);
17269 return NULL;
17270 }
17271 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17272 expr_ty del_t_atom_var;
17273 if (
17274 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17275 )
17276 {
17277 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17278 _res = del_t_atom_var;
17279 goto done;
17280 }
17281 p->mark = _mark;
17282 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17284 }
17285 _res = NULL;
17286 done:
17287 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17288 D(p->level--);
17289 return _res;
17290}
17291
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017292// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017293static expr_ty
17294del_t_atom_rule(Parser *p)
17295{
17296 D(p->level++);
17297 if (p->error_indicator) {
17298 D(p->level--);
17299 return NULL;
17300 }
17301 expr_ty _res = NULL;
17302 int _mark = p->mark;
17303 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17304 p->error_indicator = 1;
17305 D(p->level--);
17306 return NULL;
17307 }
17308 int _start_lineno = p->tokens[_mark]->lineno;
17309 UNUSED(_start_lineno); // Only used by EXTRA macro
17310 int _start_col_offset = p->tokens[_mark]->col_offset;
17311 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017312 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017313 if (p->error_indicator) {
17314 D(p->level--);
17315 return NULL;
17316 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017317 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017318 expr_ty a;
17319 if (
17320 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017321 )
17322 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017323 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 +010017324 _res = _PyPegen_set_expr_context ( p , a , Del );
17325 if (_res == NULL && PyErr_Occurred()) {
17326 p->error_indicator = 1;
17327 D(p->level--);
17328 return NULL;
17329 }
17330 goto done;
17331 }
17332 p->mark = _mark;
17333 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017335 }
17336 { // '(' del_target ')'
17337 if (p->error_indicator) {
17338 D(p->level--);
17339 return NULL;
17340 }
17341 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17342 Token * _literal;
17343 Token * _literal_1;
17344 expr_ty a;
17345 if (
17346 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17347 &&
17348 (a = del_target_rule(p)) // del_target
17349 &&
17350 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17351 )
17352 {
17353 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17354 _res = _PyPegen_set_expr_context ( p , a , Del );
17355 if (_res == NULL && PyErr_Occurred()) {
17356 p->error_indicator = 1;
17357 D(p->level--);
17358 return NULL;
17359 }
17360 goto done;
17361 }
17362 p->mark = _mark;
17363 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17365 }
17366 { // '(' del_targets? ')'
17367 if (p->error_indicator) {
17368 D(p->level--);
17369 return NULL;
17370 }
17371 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17372 Token * _literal;
17373 Token * _literal_1;
17374 void *a;
17375 if (
17376 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17377 &&
17378 (a = del_targets_rule(p), 1) // del_targets?
17379 &&
17380 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17381 )
17382 {
17383 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17384 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17385 if (_token == NULL) {
17386 D(p->level--);
17387 return NULL;
17388 }
17389 int _end_lineno = _token->end_lineno;
17390 UNUSED(_end_lineno); // Only used by EXTRA macro
17391 int _end_col_offset = _token->end_col_offset;
17392 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017393 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017394 if (_res == NULL && PyErr_Occurred()) {
17395 p->error_indicator = 1;
17396 D(p->level--);
17397 return NULL;
17398 }
17399 goto done;
17400 }
17401 p->mark = _mark;
17402 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17404 }
17405 { // '[' del_targets? ']'
17406 if (p->error_indicator) {
17407 D(p->level--);
17408 return NULL;
17409 }
17410 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17411 Token * _literal;
17412 Token * _literal_1;
17413 void *a;
17414 if (
17415 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17416 &&
17417 (a = del_targets_rule(p), 1) // del_targets?
17418 &&
17419 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17420 )
17421 {
17422 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17424 if (_token == NULL) {
17425 D(p->level--);
17426 return NULL;
17427 }
17428 int _end_lineno = _token->end_lineno;
17429 UNUSED(_end_lineno); // Only used by EXTRA macro
17430 int _end_col_offset = _token->end_col_offset;
17431 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017432 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017433 if (_res == NULL && PyErr_Occurred()) {
17434 p->error_indicator = 1;
17435 D(p->level--);
17436 return NULL;
17437 }
17438 goto done;
17439 }
17440 p->mark = _mark;
17441 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17443 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017444 _res = NULL;
17445 done:
17446 D(p->level--);
17447 return _res;
17448}
17449
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017450// Left-recursive
17451// t_primary:
17452// | t_primary '.' NAME &t_lookahead
17453// | t_primary '[' slices ']' &t_lookahead
17454// | t_primary genexp &t_lookahead
17455// | t_primary '(' arguments? ')' &t_lookahead
17456// | atom &t_lookahead
17457static expr_ty t_primary_raw(Parser *);
17458static expr_ty
17459t_primary_rule(Parser *p)
17460{
17461 D(p->level++);
17462 expr_ty _res = NULL;
17463 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17464 D(p->level--);
17465 return _res;
17466 }
17467 int _mark = p->mark;
17468 int _resmark = p->mark;
17469 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017470 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17471 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017472 D(p->level--);
17473 return _res;
17474 }
17475 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017476 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017477 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017478 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017479 if (p->error_indicator)
17480 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017481 if (_raw == NULL || p->mark <= _resmark)
17482 break;
17483 _resmark = p->mark;
17484 _res = _raw;
17485 }
17486 p->mark = _resmark;
17487 D(p->level--);
17488 return _res;
17489}
17490static expr_ty
17491t_primary_raw(Parser *p)
17492{
17493 D(p->level++);
17494 if (p->error_indicator) {
17495 D(p->level--);
17496 return NULL;
17497 }
17498 expr_ty _res = NULL;
17499 int _mark = p->mark;
17500 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17501 p->error_indicator = 1;
17502 D(p->level--);
17503 return NULL;
17504 }
17505 int _start_lineno = p->tokens[_mark]->lineno;
17506 UNUSED(_start_lineno); // Only used by EXTRA macro
17507 int _start_col_offset = p->tokens[_mark]->col_offset;
17508 UNUSED(_start_col_offset); // Only used by EXTRA macro
17509 { // t_primary '.' NAME &t_lookahead
17510 if (p->error_indicator) {
17511 D(p->level--);
17512 return NULL;
17513 }
17514 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17515 Token * _literal;
17516 expr_ty a;
17517 expr_ty b;
17518 if (
17519 (a = t_primary_rule(p)) // t_primary
17520 &&
17521 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17522 &&
17523 (b = _PyPegen_name_token(p)) // NAME
17524 &&
17525 _PyPegen_lookahead(1, t_lookahead_rule, p)
17526 )
17527 {
17528 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17529 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17530 if (_token == NULL) {
17531 D(p->level--);
17532 return NULL;
17533 }
17534 int _end_lineno = _token->end_lineno;
17535 UNUSED(_end_lineno); // Only used by EXTRA macro
17536 int _end_col_offset = _token->end_col_offset;
17537 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017538 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017539 if (_res == NULL && PyErr_Occurred()) {
17540 p->error_indicator = 1;
17541 D(p->level--);
17542 return NULL;
17543 }
17544 goto done;
17545 }
17546 p->mark = _mark;
17547 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17549 }
17550 { // t_primary '[' slices ']' &t_lookahead
17551 if (p->error_indicator) {
17552 D(p->level--);
17553 return NULL;
17554 }
17555 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17556 Token * _literal;
17557 Token * _literal_1;
17558 expr_ty a;
17559 expr_ty b;
17560 if (
17561 (a = t_primary_rule(p)) // t_primary
17562 &&
17563 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17564 &&
17565 (b = slices_rule(p)) // slices
17566 &&
17567 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17568 &&
17569 _PyPegen_lookahead(1, t_lookahead_rule, p)
17570 )
17571 {
17572 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17573 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17574 if (_token == NULL) {
17575 D(p->level--);
17576 return NULL;
17577 }
17578 int _end_lineno = _token->end_lineno;
17579 UNUSED(_end_lineno); // Only used by EXTRA macro
17580 int _end_col_offset = _token->end_col_offset;
17581 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017582 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017583 if (_res == NULL && PyErr_Occurred()) {
17584 p->error_indicator = 1;
17585 D(p->level--);
17586 return NULL;
17587 }
17588 goto done;
17589 }
17590 p->mark = _mark;
17591 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17593 }
17594 { // t_primary genexp &t_lookahead
17595 if (p->error_indicator) {
17596 D(p->level--);
17597 return NULL;
17598 }
17599 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17600 expr_ty a;
17601 expr_ty b;
17602 if (
17603 (a = t_primary_rule(p)) // t_primary
17604 &&
17605 (b = genexp_rule(p)) // genexp
17606 &&
17607 _PyPegen_lookahead(1, t_lookahead_rule, p)
17608 )
17609 {
17610 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17611 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17612 if (_token == NULL) {
17613 D(p->level--);
17614 return NULL;
17615 }
17616 int _end_lineno = _token->end_lineno;
17617 UNUSED(_end_lineno); // Only used by EXTRA macro
17618 int _end_col_offset = _token->end_col_offset;
17619 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017620 _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 +010017621 if (_res == NULL && PyErr_Occurred()) {
17622 p->error_indicator = 1;
17623 D(p->level--);
17624 return NULL;
17625 }
17626 goto done;
17627 }
17628 p->mark = _mark;
17629 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17631 }
17632 { // t_primary '(' arguments? ')' &t_lookahead
17633 if (p->error_indicator) {
17634 D(p->level--);
17635 return NULL;
17636 }
17637 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17638 Token * _literal;
17639 Token * _literal_1;
17640 expr_ty a;
17641 void *b;
17642 if (
17643 (a = t_primary_rule(p)) // t_primary
17644 &&
17645 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17646 &&
17647 (b = arguments_rule(p), 1) // arguments?
17648 &&
17649 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17650 &&
17651 _PyPegen_lookahead(1, t_lookahead_rule, p)
17652 )
17653 {
17654 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17656 if (_token == NULL) {
17657 D(p->level--);
17658 return NULL;
17659 }
17660 int _end_lineno = _token->end_lineno;
17661 UNUSED(_end_lineno); // Only used by EXTRA macro
17662 int _end_col_offset = _token->end_col_offset;
17663 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017664 _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 +010017665 if (_res == NULL && PyErr_Occurred()) {
17666 p->error_indicator = 1;
17667 D(p->level--);
17668 return NULL;
17669 }
17670 goto done;
17671 }
17672 p->mark = _mark;
17673 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17675 }
17676 { // atom &t_lookahead
17677 if (p->error_indicator) {
17678 D(p->level--);
17679 return NULL;
17680 }
17681 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17682 expr_ty a;
17683 if (
17684 (a = atom_rule(p)) // atom
17685 &&
17686 _PyPegen_lookahead(1, t_lookahead_rule, p)
17687 )
17688 {
17689 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17690 _res = a;
17691 if (_res == NULL && PyErr_Occurred()) {
17692 p->error_indicator = 1;
17693 D(p->level--);
17694 return NULL;
17695 }
17696 goto done;
17697 }
17698 p->mark = _mark;
17699 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17701 }
17702 _res = NULL;
17703 done:
17704 D(p->level--);
17705 return _res;
17706}
17707
17708// t_lookahead: '(' | '[' | '.'
17709static void *
17710t_lookahead_rule(Parser *p)
17711{
17712 D(p->level++);
17713 if (p->error_indicator) {
17714 D(p->level--);
17715 return NULL;
17716 }
17717 void * _res = NULL;
17718 int _mark = p->mark;
17719 { // '('
17720 if (p->error_indicator) {
17721 D(p->level--);
17722 return NULL;
17723 }
17724 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17725 Token * _literal;
17726 if (
17727 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17728 )
17729 {
17730 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17731 _res = _literal;
17732 goto done;
17733 }
17734 p->mark = _mark;
17735 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17737 }
17738 { // '['
17739 if (p->error_indicator) {
17740 D(p->level--);
17741 return NULL;
17742 }
17743 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17744 Token * _literal;
17745 if (
17746 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17747 )
17748 {
17749 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17750 _res = _literal;
17751 goto done;
17752 }
17753 p->mark = _mark;
17754 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17756 }
17757 { // '.'
17758 if (p->error_indicator) {
17759 D(p->level--);
17760 return NULL;
17761 }
17762 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17763 Token * _literal;
17764 if (
17765 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17766 )
17767 {
17768 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17769 _res = _literal;
17770 goto done;
17771 }
17772 p->mark = _mark;
17773 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17775 }
17776 _res = NULL;
17777 done:
17778 D(p->level--);
17779 return _res;
17780}
17781
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017782// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017783// | args ',' '*'
17784// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017785// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017786// | args for_if_clauses
17787// | args ',' expression for_if_clauses
17788// | args ',' args
17789static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017790invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017791{
17792 D(p->level++);
17793 if (p->error_indicator) {
17794 D(p->level--);
17795 return NULL;
17796 }
17797 void * _res = NULL;
17798 int _mark = p->mark;
17799 { // args ',' '*'
17800 if (p->error_indicator) {
17801 D(p->level--);
17802 return NULL;
17803 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017804 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017805 Token * _literal;
17806 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017807 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017808 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017809 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017810 &&
17811 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17812 &&
17813 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17814 )
17815 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017816 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017817 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017818 if (_res == NULL && PyErr_Occurred()) {
17819 p->error_indicator = 1;
17820 D(p->level--);
17821 return NULL;
17822 }
17823 goto done;
17824 }
17825 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017826 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17828 }
17829 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17830 if (p->error_indicator) {
17831 D(p->level--);
17832 return NULL;
17833 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017834 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 +010017835 Token * _literal;
17836 void *_opt_var;
17837 UNUSED(_opt_var); // Silence compiler warnings
17838 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017839 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017840 if (
17841 (a = expression_rule(p)) // expression
17842 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017843 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017844 &&
17845 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17846 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017847 (_opt_var = _tmp_141_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017848 )
17849 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017850 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 +010017851 _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 +010017852 if (_res == NULL && PyErr_Occurred()) {
17853 p->error_indicator = 1;
17854 D(p->level--);
17855 return NULL;
17856 }
17857 goto done;
17858 }
17859 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017860 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17862 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017863 { // NAME '=' expression for_if_clauses
17864 if (p->error_indicator) {
17865 D(p->level--);
17866 return NULL;
17867 }
17868 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17869 expr_ty a;
17870 Token * b;
17871 expr_ty expression_var;
17872 asdl_comprehension_seq* for_if_clauses_var;
17873 if (
17874 (a = _PyPegen_name_token(p)) // NAME
17875 &&
17876 (b = _PyPegen_expect_token(p, 22)) // token='='
17877 &&
17878 (expression_var = expression_rule(p)) // expression
17879 &&
17880 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17881 )
17882 {
17883 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17884 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17885 if (_res == NULL && PyErr_Occurred()) {
17886 p->error_indicator = 1;
17887 D(p->level--);
17888 return NULL;
17889 }
17890 goto done;
17891 }
17892 p->mark = _mark;
17893 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17895 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017896 { // args for_if_clauses
17897 if (p->error_indicator) {
17898 D(p->level--);
17899 return NULL;
17900 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017901 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 +010017902 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017903 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017904 if (
17905 (a = args_rule(p)) // args
17906 &&
17907 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17908 )
17909 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017910 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 +010017911 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17912 if (_res == NULL && PyErr_Occurred()) {
17913 p->error_indicator = 1;
17914 D(p->level--);
17915 return NULL;
17916 }
17917 goto done;
17918 }
17919 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017920 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17922 }
17923 { // args ',' expression for_if_clauses
17924 if (p->error_indicator) {
17925 D(p->level--);
17926 return NULL;
17927 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017928 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 +010017929 Token * _literal;
17930 expr_ty a;
17931 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017932 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017933 if (
17934 (args_var = args_rule(p)) // args
17935 &&
17936 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17937 &&
17938 (a = expression_rule(p)) // expression
17939 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017940 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017941 )
17942 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017943 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 +010017944 _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 +010017945 if (_res == NULL && PyErr_Occurred()) {
17946 p->error_indicator = 1;
17947 D(p->level--);
17948 return NULL;
17949 }
17950 goto done;
17951 }
17952 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017953 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17955 }
17956 { // args ',' args
17957 if (p->error_indicator) {
17958 D(p->level--);
17959 return NULL;
17960 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017961 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017962 Token * _literal;
17963 expr_ty a;
17964 expr_ty args_var;
17965 if (
17966 (a = args_rule(p)) // args
17967 &&
17968 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17969 &&
17970 (args_var = args_rule(p)) // args
17971 )
17972 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017973 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 +010017974 _res = _PyPegen_arguments_parsing_error ( p , a );
17975 if (_res == NULL && PyErr_Occurred()) {
17976 p->error_indicator = 1;
17977 D(p->level--);
17978 return NULL;
17979 }
17980 goto done;
17981 }
17982 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017983 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17985 }
17986 _res = NULL;
17987 done:
17988 D(p->level--);
17989 return _res;
17990}
17991
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017992// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017993static void *
17994invalid_kwarg_rule(Parser *p)
17995{
17996 D(p->level++);
17997 if (p->error_indicator) {
17998 D(p->level--);
17999 return NULL;
18000 }
18001 void * _res = NULL;
18002 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018003 { // NAME '=' expression for_if_clauses
18004 if (p->error_indicator) {
18005 D(p->level--);
18006 return NULL;
18007 }
18008 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18009 expr_ty a;
18010 Token * b;
18011 expr_ty expression_var;
18012 asdl_comprehension_seq* for_if_clauses_var;
18013 if (
18014 (a = _PyPegen_name_token(p)) // NAME
18015 &&
18016 (b = _PyPegen_expect_token(p, 22)) // token='='
18017 &&
18018 (expression_var = expression_rule(p)) // expression
18019 &&
18020 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18021 )
18022 {
18023 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18024 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18025 if (_res == NULL && PyErr_Occurred()) {
18026 p->error_indicator = 1;
18027 D(p->level--);
18028 return NULL;
18029 }
18030 goto done;
18031 }
18032 p->mark = _mark;
18033 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18035 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018036 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018037 if (p->error_indicator) {
18038 D(p->level--);
18039 return NULL;
18040 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018041 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018042 expr_ty a;
18043 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018044 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018045 _PyPegen_lookahead(0, _tmp_142_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018046 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018047 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018048 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018049 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018050 )
18051 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018052 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018053 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018054 if (_res == NULL && PyErr_Occurred()) {
18055 p->error_indicator = 1;
18056 D(p->level--);
18057 return NULL;
18058 }
18059 goto done;
18060 }
18061 p->mark = _mark;
18062 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018064 }
18065 _res = NULL;
18066 done:
18067 D(p->level--);
18068 return _res;
18069}
18070
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018071// expression_without_invalid:
18072// | disjunction 'if' disjunction 'else' expression
18073// | disjunction
18074// | lambdef
18075static expr_ty
18076expression_without_invalid_rule(Parser *p)
18077{
18078 D(p->level++);
18079 if (p->error_indicator) {
18080 D(p->level--);
18081 return NULL;
18082 }
18083 expr_ty _res = NULL;
18084 int _mark = p->mark;
18085 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18086 p->error_indicator = 1;
18087 D(p->level--);
18088 return NULL;
18089 }
18090 int _start_lineno = p->tokens[_mark]->lineno;
18091 UNUSED(_start_lineno); // Only used by EXTRA macro
18092 int _start_col_offset = p->tokens[_mark]->col_offset;
18093 UNUSED(_start_col_offset); // Only used by EXTRA macro
18094 { // disjunction 'if' disjunction 'else' expression
18095 if (p->error_indicator) {
18096 D(p->level--);
18097 return NULL;
18098 }
18099 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18100 Token * _keyword;
18101 Token * _keyword_1;
18102 expr_ty a;
18103 expr_ty b;
18104 expr_ty c;
18105 if (
18106 (a = disjunction_rule(p)) // disjunction
18107 &&
18108 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18109 &&
18110 (b = disjunction_rule(p)) // disjunction
18111 &&
18112 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18113 &&
18114 (c = expression_rule(p)) // expression
18115 )
18116 {
18117 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18119 if (_token == NULL) {
18120 D(p->level--);
18121 return NULL;
18122 }
18123 int _end_lineno = _token->end_lineno;
18124 UNUSED(_end_lineno); // Only used by EXTRA macro
18125 int _end_col_offset = _token->end_col_offset;
18126 UNUSED(_end_col_offset); // Only used by EXTRA macro
18127 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18128 if (_res == NULL && PyErr_Occurred()) {
18129 p->error_indicator = 1;
18130 D(p->level--);
18131 return NULL;
18132 }
18133 goto done;
18134 }
18135 p->mark = _mark;
18136 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18138 }
18139 { // disjunction
18140 if (p->error_indicator) {
18141 D(p->level--);
18142 return NULL;
18143 }
18144 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18145 expr_ty disjunction_var;
18146 if (
18147 (disjunction_var = disjunction_rule(p)) // disjunction
18148 )
18149 {
18150 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18151 _res = disjunction_var;
18152 goto done;
18153 }
18154 p->mark = _mark;
18155 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18157 }
18158 { // lambdef
18159 if (p->error_indicator) {
18160 D(p->level--);
18161 return NULL;
18162 }
18163 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18164 expr_ty lambdef_var;
18165 if (
18166 (lambdef_var = lambdef_rule(p)) // lambdef
18167 )
18168 {
18169 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18170 _res = lambdef_var;
18171 goto done;
18172 }
18173 p->mark = _mark;
18174 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18176 }
18177 _res = NULL;
18178 done:
18179 D(p->level--);
18180 return _res;
18181}
18182
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018183// invalid_legacy_expression: NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018184static void *
18185invalid_legacy_expression_rule(Parser *p)
18186{
18187 D(p->level++);
18188 if (p->error_indicator) {
18189 D(p->level--);
18190 return NULL;
18191 }
18192 void * _res = NULL;
18193 int _mark = p->mark;
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018194 { // NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018195 if (p->error_indicator) {
18196 D(p->level--);
18197 return NULL;
18198 }
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018199 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018200 expr_ty a;
18201 expr_ty b;
18202 if (
18203 (a = _PyPegen_name_token(p)) // NAME
18204 &&
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018205 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
18206 &&
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018207 (b = star_expressions_rule(p)) // star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018208 )
18209 {
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018210 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018211 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018212 if (_res == NULL && PyErr_Occurred()) {
18213 p->error_indicator = 1;
18214 D(p->level--);
18215 return NULL;
18216 }
18217 goto done;
18218 }
18219 p->mark = _mark;
18220 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018222 }
18223 _res = NULL;
18224 done:
18225 D(p->level--);
18226 return _res;
18227}
18228
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018229// invalid_expression:
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018230// | invalid_legacy_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018231// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Miss Islington (bot)56717622021-08-02 12:05:33 -070018232// | disjunction 'if' disjunction !'else'
Pablo Galindob2802482021-04-15 21:38:45 +010018233static void *
18234invalid_expression_rule(Parser *p)
18235{
18236 D(p->level++);
18237 if (p->error_indicator) {
18238 D(p->level--);
18239 return NULL;
18240 }
18241 void * _res = NULL;
18242 int _mark = p->mark;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018243 if (p->call_invalid_rules) { // invalid_legacy_expression
18244 if (p->error_indicator) {
18245 D(p->level--);
18246 return NULL;
18247 }
18248 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18249 void *invalid_legacy_expression_var;
18250 if (
18251 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
18252 )
18253 {
18254 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18255 _res = invalid_legacy_expression_var;
18256 goto done;
18257 }
18258 p->mark = _mark;
18259 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
18261 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018262 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018263 if (p->error_indicator) {
18264 D(p->level--);
18265 return NULL;
18266 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018267 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018268 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018269 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018270 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018271 _PyPegen_lookahead(0, _tmp_143_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018272 &&
18273 (a = disjunction_rule(p)) // disjunction
18274 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018275 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018276 )
18277 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018278 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018279 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018280 if (_res == NULL && PyErr_Occurred()) {
18281 p->error_indicator = 1;
18282 D(p->level--);
18283 return NULL;
18284 }
18285 goto done;
18286 }
18287 p->mark = _mark;
18288 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018290 }
Miss Islington (bot)56717622021-08-02 12:05:33 -070018291 { // disjunction 'if' disjunction !'else'
18292 if (p->error_indicator) {
18293 D(p->level--);
18294 return NULL;
18295 }
18296 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'"));
18297 Token * _keyword;
18298 expr_ty a;
18299 expr_ty b;
18300 if (
18301 (a = disjunction_rule(p)) // disjunction
18302 &&
18303 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18304 &&
18305 (b = disjunction_rule(p)) // disjunction
18306 &&
18307 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 516) // token='else'
18308 )
18309 {
18310 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'"));
18311 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
18312 if (_res == NULL && PyErr_Occurred()) {
18313 p->error_indicator = 1;
18314 D(p->level--);
18315 return NULL;
18316 }
18317 goto done;
18318 }
18319 p->mark = _mark;
18320 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !'else'"));
18322 }
Pablo Galindob2802482021-04-15 21:38:45 +010018323 _res = NULL;
18324 done:
18325 D(p->level--);
18326 return _res;
18327}
18328
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018329// invalid_named_expression:
18330// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018331// | NAME '=' bitwise_or !('=' | ':=')
18332// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018333static void *
18334invalid_named_expression_rule(Parser *p)
18335{
18336 D(p->level++);
18337 if (p->error_indicator) {
18338 D(p->level--);
18339 return NULL;
18340 }
18341 void * _res = NULL;
18342 int _mark = p->mark;
18343 { // expression ':=' expression
18344 if (p->error_indicator) {
18345 D(p->level--);
18346 return NULL;
18347 }
18348 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18349 Token * _literal;
18350 expr_ty a;
18351 expr_ty expression_var;
18352 if (
18353 (a = expression_rule(p)) // expression
18354 &&
18355 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18356 &&
18357 (expression_var = expression_rule(p)) // expression
18358 )
18359 {
18360 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18361 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18362 if (_res == NULL && PyErr_Occurred()) {
18363 p->error_indicator = 1;
18364 D(p->level--);
18365 return NULL;
18366 }
18367 goto done;
18368 }
18369 p->mark = _mark;
18370 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18372 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018373 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018374 if (p->error_indicator) {
18375 D(p->level--);
18376 return NULL;
18377 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018378 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 +010018379 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018380 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018381 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018382 if (
18383 (a = _PyPegen_name_token(p)) // NAME
18384 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018385 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018386 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018387 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018388 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018389 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018390 )
18391 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018392 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18393 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018394 if (_res == NULL && PyErr_Occurred()) {
18395 p->error_indicator = 1;
18396 D(p->level--);
18397 return NULL;
18398 }
18399 goto done;
18400 }
18401 p->mark = _mark;
18402 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018404 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018405 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018406 if (p->error_indicator) {
18407 D(p->level--);
18408 return NULL;
18409 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018410 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 !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018411 expr_ty a;
18412 Token * b;
18413 expr_ty bitwise_or_var;
18414 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018415 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018416 &&
18417 (a = bitwise_or_rule(p)) // bitwise_or
18418 &&
18419 (b = _PyPegen_expect_token(p, 22)) // token='='
18420 &&
18421 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18422 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018423 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018424 )
18425 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018426 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 !('=' | ':=')"));
18427 _res = p -> in_raw_rule ? NULL : 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 +010018428 if (_res == NULL && PyErr_Occurred()) {
18429 p->error_indicator = 1;
18430 D(p->level--);
18431 return NULL;
18432 }
18433 goto done;
18434 }
18435 p->mark = _mark;
18436 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018438 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 _res = NULL;
18440 done:
18441 D(p->level--);
18442 return _res;
18443}
18444
18445// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018446// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018447// | star_named_expression ',' star_named_expressions* ':' expression
18448// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018449// | ((star_targets '='))* star_expressions '='
18450// | ((star_targets '='))* yield_expr '='
18451// | star_expressions augassign (yield_expr | star_expressions)
18452static void *
18453invalid_assignment_rule(Parser *p)
18454{
18455 D(p->level++);
18456 if (p->error_indicator) {
18457 D(p->level--);
18458 return NULL;
18459 }
18460 void * _res = NULL;
18461 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018462 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018463 if (p->error_indicator) {
18464 D(p->level--);
18465 return NULL;
18466 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018467 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 +010018468 Token * _literal;
18469 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018470 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018471 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018472 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018473 &&
18474 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018475 &&
18476 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018477 )
18478 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018479 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18480 _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 +010018481 if (_res == NULL && PyErr_Occurred()) {
18482 p->error_indicator = 1;
18483 D(p->level--);
18484 return NULL;
18485 }
18486 goto done;
18487 }
18488 p->mark = _mark;
18489 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018491 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018492 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018493 if (p->error_indicator) {
18494 D(p->level--);
18495 return NULL;
18496 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018497 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 +010018498 Token * _literal;
18499 Token * _literal_1;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018500 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018501 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018502 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503 if (
18504 (a = star_named_expression_rule(p)) // star_named_expression
18505 &&
18506 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18507 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018508 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018509 &&
18510 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018511 &&
18512 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018513 )
18514 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018515 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 +010018516 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18517 if (_res == NULL && PyErr_Occurred()) {
18518 p->error_indicator = 1;
18519 D(p->level--);
18520 return NULL;
18521 }
18522 goto done;
18523 }
18524 p->mark = _mark;
18525 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018528 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018529 if (p->error_indicator) {
18530 D(p->level--);
18531 return NULL;
18532 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018533 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018535 expr_ty a;
18536 expr_ty expression_var;
18537 if (
18538 (a = expression_rule(p)) // expression
18539 &&
18540 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18541 &&
18542 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018543 )
18544 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018545 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 +010018546 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18547 if (_res == NULL && PyErr_Occurred()) {
18548 p->error_indicator = 1;
18549 D(p->level--);
18550 return NULL;
18551 }
18552 goto done;
18553 }
18554 p->mark = _mark;
18555 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018557 }
18558 { // ((star_targets '='))* star_expressions '='
18559 if (p->error_indicator) {
18560 D(p->level--);
18561 return NULL;
18562 }
18563 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18564 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018565 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018566 expr_ty a;
18567 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018568 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018569 &&
18570 (a = star_expressions_rule(p)) // star_expressions
18571 &&
18572 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18573 )
18574 {
18575 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 +030018576 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018577 if (_res == NULL && PyErr_Occurred()) {
18578 p->error_indicator = 1;
18579 D(p->level--);
18580 return NULL;
18581 }
18582 goto done;
18583 }
18584 p->mark = _mark;
18585 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18587 }
18588 { // ((star_targets '='))* yield_expr '='
18589 if (p->error_indicator) {
18590 D(p->level--);
18591 return NULL;
18592 }
18593 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18594 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018595 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018596 expr_ty a;
18597 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018598 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018599 &&
18600 (a = yield_expr_rule(p)) // yield_expr
18601 &&
18602 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18603 )
18604 {
18605 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18606 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18607 if (_res == NULL && PyErr_Occurred()) {
18608 p->error_indicator = 1;
18609 D(p->level--);
18610 return NULL;
18611 }
18612 goto done;
18613 }
18614 p->mark = _mark;
18615 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18617 }
18618 { // star_expressions augassign (yield_expr | star_expressions)
18619 if (p->error_indicator) {
18620 D(p->level--);
18621 return NULL;
18622 }
18623 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018624 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018625 expr_ty a;
18626 AugOperator* augassign_var;
18627 if (
18628 (a = star_expressions_rule(p)) // star_expressions
18629 &&
18630 (augassign_var = augassign_rule(p)) // augassign
18631 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018632 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018633 )
18634 {
18635 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18636 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18637 if (_res == NULL && PyErr_Occurred()) {
18638 p->error_indicator = 1;
18639 D(p->level--);
18640 return NULL;
18641 }
18642 goto done;
18643 }
18644 p->mark = _mark;
18645 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18647 }
18648 _res = NULL;
18649 done:
18650 D(p->level--);
18651 return _res;
18652}
18653
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018654// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18655static expr_ty
18656invalid_ann_assign_target_rule(Parser *p)
18657{
18658 D(p->level++);
18659 if (p->error_indicator) {
18660 D(p->level--);
18661 return NULL;
18662 }
18663 expr_ty _res = NULL;
18664 int _mark = p->mark;
18665 { // list
18666 if (p->error_indicator) {
18667 D(p->level--);
18668 return NULL;
18669 }
18670 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18671 expr_ty list_var;
18672 if (
18673 (list_var = list_rule(p)) // list
18674 )
18675 {
18676 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18677 _res = list_var;
18678 goto done;
18679 }
18680 p->mark = _mark;
18681 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18683 }
18684 { // tuple
18685 if (p->error_indicator) {
18686 D(p->level--);
18687 return NULL;
18688 }
18689 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18690 expr_ty tuple_var;
18691 if (
18692 (tuple_var = tuple_rule(p)) // tuple
18693 )
18694 {
18695 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18696 _res = tuple_var;
18697 goto done;
18698 }
18699 p->mark = _mark;
18700 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18702 }
18703 { // '(' invalid_ann_assign_target ')'
18704 if (p->error_indicator) {
18705 D(p->level--);
18706 return NULL;
18707 }
18708 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18709 Token * _literal;
18710 Token * _literal_1;
18711 expr_ty a;
18712 if (
18713 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18714 &&
18715 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18716 &&
18717 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18718 )
18719 {
18720 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18721 _res = a;
18722 if (_res == NULL && PyErr_Occurred()) {
18723 p->error_indicator = 1;
18724 D(p->level--);
18725 return NULL;
18726 }
18727 goto done;
18728 }
18729 p->mark = _mark;
18730 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18732 }
18733 _res = NULL;
18734 done:
18735 D(p->level--);
18736 return _res;
18737}
18738
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018739// invalid_del_stmt: 'del' star_expressions
18740static void *
18741invalid_del_stmt_rule(Parser *p)
18742{
18743 D(p->level++);
18744 if (p->error_indicator) {
18745 D(p->level--);
18746 return NULL;
18747 }
18748 void * _res = NULL;
18749 int _mark = p->mark;
18750 { // 'del' star_expressions
18751 if (p->error_indicator) {
18752 D(p->level--);
18753 return NULL;
18754 }
18755 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18756 Token * _keyword;
18757 expr_ty a;
18758 if (
18759 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18760 &&
18761 (a = star_expressions_rule(p)) // star_expressions
18762 )
18763 {
18764 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 +030018765 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018766 if (_res == NULL && PyErr_Occurred()) {
18767 p->error_indicator = 1;
18768 D(p->level--);
18769 return NULL;
18770 }
18771 goto done;
18772 }
18773 p->mark = _mark;
18774 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18776 }
18777 _res = NULL;
18778 done:
18779 D(p->level--);
18780 return _res;
18781}
18782
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018783// invalid_block: NEWLINE !INDENT
18784static void *
18785invalid_block_rule(Parser *p)
18786{
18787 D(p->level++);
18788 if (p->error_indicator) {
18789 D(p->level--);
18790 return NULL;
18791 }
18792 void * _res = NULL;
18793 int _mark = p->mark;
18794 { // NEWLINE !INDENT
18795 if (p->error_indicator) {
18796 D(p->level--);
18797 return NULL;
18798 }
18799 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18800 Token * newline_var;
18801 if (
18802 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18803 &&
18804 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18805 )
18806 {
18807 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18808 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18809 if (_res == NULL && PyErr_Occurred()) {
18810 p->error_indicator = 1;
18811 D(p->level--);
18812 return NULL;
18813 }
18814 goto done;
18815 }
18816 p->mark = _mark;
18817 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18819 }
18820 _res = NULL;
18821 done:
18822 D(p->level--);
18823 return _res;
18824}
18825
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018826// Left-recursive
18827// invalid_primary: primary '{'
18828static void *
18829invalid_primary_rule(Parser *p)
18830{
18831 D(p->level++);
18832 if (p->error_indicator) {
18833 D(p->level--);
18834 return NULL;
18835 }
18836 void * _res = NULL;
18837 int _mark = p->mark;
18838 { // primary '{'
18839 if (p->error_indicator) {
18840 D(p->level--);
18841 return NULL;
18842 }
18843 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18844 Token * a;
18845 expr_ty primary_var;
18846 if (
18847 (primary_var = primary_rule(p)) // primary
18848 &&
18849 (a = _PyPegen_expect_token(p, 25)) // token='{'
18850 )
18851 {
18852 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18853 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18854 if (_res == NULL && PyErr_Occurred()) {
18855 p->error_indicator = 1;
18856 D(p->level--);
18857 return NULL;
18858 }
18859 goto done;
18860 }
18861 p->mark = _mark;
18862 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18864 }
18865 _res = NULL;
18866 done:
18867 D(p->level--);
18868 return _res;
18869}
18870
Pablo Galindo835f14f2021-01-31 22:52:56 +000018871// invalid_comprehension:
18872// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018873// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18874// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018875static void *
18876invalid_comprehension_rule(Parser *p)
18877{
18878 D(p->level++);
18879 if (p->error_indicator) {
18880 D(p->level--);
18881 return NULL;
18882 }
18883 void * _res = NULL;
18884 int _mark = p->mark;
18885 { // ('[' | '(' | '{') starred_expression for_if_clauses
18886 if (p->error_indicator) {
18887 D(p->level--);
18888 return NULL;
18889 }
18890 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018891 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018892 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018893 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018894 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018895 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018896 &&
18897 (a = starred_expression_rule(p)) // starred_expression
18898 &&
18899 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18900 )
18901 {
18902 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18903 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18904 if (_res == NULL && PyErr_Occurred()) {
18905 p->error_indicator = 1;
18906 D(p->level--);
18907 return NULL;
18908 }
18909 goto done;
18910 }
18911 p->mark = _mark;
18912 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18914 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018915 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018916 if (p->error_indicator) {
18917 D(p->level--);
18918 return NULL;
18919 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018920 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 +000018921 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018922 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018923 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018924 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018925 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018926 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018927 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018928 &&
18929 (a = star_named_expression_rule(p)) // star_named_expression
18930 &&
18931 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18932 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018933 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018934 &&
18935 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018936 )
18937 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018938 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"));
18939 _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 +000018940 if (_res == NULL && PyErr_Occurred()) {
18941 p->error_indicator = 1;
18942 D(p->level--);
18943 return NULL;
18944 }
18945 goto done;
18946 }
18947 p->mark = _mark;
18948 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18950 }
18951 { // ('[' | '{') star_named_expression ',' for_if_clauses
18952 if (p->error_indicator) {
18953 D(p->level--);
18954 return NULL;
18955 }
18956 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018957 void *_tmp_153_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018958 expr_ty a;
18959 Token * b;
18960 asdl_comprehension_seq* for_if_clauses_var;
18961 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018962 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018963 &&
18964 (a = star_named_expression_rule(p)) // star_named_expression
18965 &&
18966 (b = _PyPegen_expect_token(p, 12)) // token=','
18967 &&
18968 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18969 )
18970 {
18971 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18972 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18973 if (_res == NULL && PyErr_Occurred()) {
18974 p->error_indicator = 1;
18975 D(p->level--);
18976 return NULL;
18977 }
18978 goto done;
18979 }
18980 p->mark = _mark;
18981 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018983 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018984 _res = NULL;
18985 done:
18986 D(p->level--);
18987 return _res;
18988}
18989
18990// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18991static void *
18992invalid_dict_comprehension_rule(Parser *p)
18993{
18994 D(p->level++);
18995 if (p->error_indicator) {
18996 D(p->level--);
18997 return NULL;
18998 }
18999 void * _res = NULL;
19000 int _mark = p->mark;
19001 { // '{' '**' bitwise_or for_if_clauses '}'
19002 if (p->error_indicator) {
19003 D(p->level--);
19004 return NULL;
19005 }
19006 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19007 Token * _literal;
19008 Token * _literal_1;
19009 Token * a;
19010 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019011 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019012 if (
19013 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19014 &&
19015 (a = _PyPegen_expect_token(p, 35)) // token='**'
19016 &&
19017 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19018 &&
19019 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19020 &&
19021 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19022 )
19023 {
19024 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19025 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19026 if (_res == NULL && PyErr_Occurred()) {
19027 p->error_indicator = 1;
19028 D(p->level--);
19029 return NULL;
19030 }
19031 goto done;
19032 }
19033 p->mark = _mark;
19034 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19036 }
19037 _res = NULL;
19038 done:
19039 D(p->level--);
19040 return _res;
19041}
19042
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019043// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019044static void *
19045invalid_parameters_rule(Parser *p)
19046{
19047 D(p->level++);
19048 if (p->error_indicator) {
19049 D(p->level--);
19050 return NULL;
19051 }
19052 void * _res = NULL;
19053 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019054 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019055 if (p->error_indicator) {
19056 D(p->level--);
19057 return NULL;
19058 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019059 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019060 asdl_seq * _loop0_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019061 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019062 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019063 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019064 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019065 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019066 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019067 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019068 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019069 )
19070 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019071 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 +010019072 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019073 if (_res == NULL && PyErr_Occurred()) {
19074 p->error_indicator = 1;
19075 D(p->level--);
19076 return NULL;
19077 }
19078 goto done;
19079 }
19080 p->mark = _mark;
19081 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19083 }
19084 _res = NULL;
19085 done:
19086 D(p->level--);
19087 return _res;
19088}
19089
19090// invalid_parameters_helper: slash_with_default | param_with_default+
19091static void *
19092invalid_parameters_helper_rule(Parser *p)
19093{
19094 D(p->level++);
19095 if (p->error_indicator) {
19096 D(p->level--);
19097 return NULL;
19098 }
19099 void * _res = NULL;
19100 int _mark = p->mark;
19101 { // slash_with_default
19102 if (p->error_indicator) {
19103 D(p->level--);
19104 return NULL;
19105 }
19106 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19107 SlashWithDefault* a;
19108 if (
19109 (a = slash_with_default_rule(p)) // slash_with_default
19110 )
19111 {
19112 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19113 _res = _PyPegen_singleton_seq ( p , a );
19114 if (_res == NULL && PyErr_Occurred()) {
19115 p->error_indicator = 1;
19116 D(p->level--);
19117 return NULL;
19118 }
19119 goto done;
19120 }
19121 p->mark = _mark;
19122 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19124 }
19125 { // param_with_default+
19126 if (p->error_indicator) {
19127 D(p->level--);
19128 return NULL;
19129 }
19130 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019131 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019132 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019133 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019134 )
19135 {
19136 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019137 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019138 goto done;
19139 }
19140 p->mark = _mark;
19141 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019143 }
19144 _res = NULL;
19145 done:
19146 D(p->level--);
19147 return _res;
19148}
19149
19150// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019151// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019152static void *
19153invalid_lambda_parameters_rule(Parser *p)
19154{
19155 D(p->level++);
19156 if (p->error_indicator) {
19157 D(p->level--);
19158 return NULL;
19159 }
19160 void * _res = NULL;
19161 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019162 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019163 if (p->error_indicator) {
19164 D(p->level--);
19165 return NULL;
19166 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019167 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019168 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019169 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019170 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019171 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019172 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019173 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019174 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019175 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019176 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019177 )
19178 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019179 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 +010019180 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019181 if (_res == NULL && PyErr_Occurred()) {
19182 p->error_indicator = 1;
19183 D(p->level--);
19184 return NULL;
19185 }
19186 goto done;
19187 }
19188 p->mark = _mark;
19189 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19191 }
19192 _res = NULL;
19193 done:
19194 D(p->level--);
19195 return _res;
19196}
19197
19198// invalid_lambda_parameters_helper:
19199// | lambda_slash_with_default
19200// | lambda_param_with_default+
19201static void *
19202invalid_lambda_parameters_helper_rule(Parser *p)
19203{
19204 D(p->level++);
19205 if (p->error_indicator) {
19206 D(p->level--);
19207 return NULL;
19208 }
19209 void * _res = NULL;
19210 int _mark = p->mark;
19211 { // lambda_slash_with_default
19212 if (p->error_indicator) {
19213 D(p->level--);
19214 return NULL;
19215 }
19216 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19217 SlashWithDefault* a;
19218 if (
19219 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19220 )
19221 {
19222 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19223 _res = _PyPegen_singleton_seq ( p , a );
19224 if (_res == NULL && PyErr_Occurred()) {
19225 p->error_indicator = 1;
19226 D(p->level--);
19227 return NULL;
19228 }
19229 goto done;
19230 }
19231 p->mark = _mark;
19232 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19234 }
19235 { // lambda_param_with_default+
19236 if (p->error_indicator) {
19237 D(p->level--);
19238 return NULL;
19239 }
19240 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019241 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019242 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019243 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019244 )
19245 {
19246 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019247 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019248 goto done;
19249 }
19250 p->mark = _mark;
19251 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019253 }
19254 _res = NULL;
19255 done:
19256 D(p->level--);
19257 return _res;
19258}
19259
19260// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19261static void *
19262invalid_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_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019277 void *_tmp_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019278 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019279 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019280 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019281 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019282 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019283 )
19284 {
19285 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019286 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019287 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_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19297 }
19298 { // '*' ',' TYPE_COMMENT
19299 if (p->error_indicator) {
19300 D(p->level--);
19301 return NULL;
19302 }
19303 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19304 Token * _literal;
19305 Token * _literal_1;
19306 Token * type_comment_var;
19307 if (
19308 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19309 &&
19310 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19311 &&
19312 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19313 )
19314 {
19315 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19316 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19317 if (_res == NULL && PyErr_Occurred()) {
19318 p->error_indicator = 1;
19319 D(p->level--);
19320 return NULL;
19321 }
19322 goto done;
19323 }
19324 p->mark = _mark;
19325 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19327 }
19328 _res = NULL;
19329 done:
19330 D(p->level--);
19331 return _res;
19332}
19333
19334// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19335static void *
19336invalid_lambda_star_etc_rule(Parser *p)
19337{
19338 D(p->level++);
19339 if (p->error_indicator) {
19340 D(p->level--);
19341 return NULL;
19342 }
19343 void * _res = NULL;
19344 int _mark = p->mark;
19345 { // '*' (':' | ',' (':' | '**'))
19346 if (p->error_indicator) {
19347 D(p->level--);
19348 return NULL;
19349 }
19350 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19351 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019352 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019353 if (
19354 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19355 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019356 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019357 )
19358 {
19359 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19360 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19361 if (_res == NULL && PyErr_Occurred()) {
19362 p->error_indicator = 1;
19363 D(p->level--);
19364 return NULL;
19365 }
19366 goto done;
19367 }
19368 p->mark = _mark;
19369 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19371 }
19372 _res = NULL;
19373 done:
19374 D(p->level--);
19375 return _res;
19376}
19377
19378// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19379static void *
19380invalid_double_type_comments_rule(Parser *p)
19381{
19382 D(p->level++);
19383 if (p->error_indicator) {
19384 D(p->level--);
19385 return NULL;
19386 }
19387 void * _res = NULL;
19388 int _mark = p->mark;
19389 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19390 if (p->error_indicator) {
19391 D(p->level--);
19392 return NULL;
19393 }
19394 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19395 Token * indent_var;
19396 Token * newline_var;
19397 Token * newline_var_1;
19398 Token * type_comment_var;
19399 Token * type_comment_var_1;
19400 if (
19401 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19402 &&
19403 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19404 &&
19405 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19406 &&
19407 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19408 &&
19409 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19410 )
19411 {
19412 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"));
19413 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19414 if (_res == NULL && PyErr_Occurred()) {
19415 p->error_indicator = 1;
19416 D(p->level--);
19417 return NULL;
19418 }
19419 goto done;
19420 }
19421 p->mark = _mark;
19422 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19424 }
19425 _res = NULL;
19426 done:
19427 D(p->level--);
19428 return _res;
19429}
19430
Pablo Galindo58fb1562021-02-02 19:54:22 +000019431// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019432static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019433invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019434{
19435 D(p->level++);
19436 if (p->error_indicator) {
19437 D(p->level--);
19438 return NULL;
19439 }
19440 void * _res = NULL;
19441 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019442 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019443 if (p->error_indicator) {
19444 D(p->level--);
19445 return NULL;
19446 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019447 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 +030019448 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019449 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019450 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019451 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019452 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019453 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019454 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19455 &&
19456 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019457 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019458 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019459 )
19460 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019461 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 +030019462 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019463 if (_res == NULL && PyErr_Occurred()) {
19464 p->error_indicator = 1;
19465 D(p->level--);
19466 return NULL;
19467 }
19468 goto done;
19469 }
19470 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019471 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019473 }
19474 _res = NULL;
19475 done:
19476 D(p->level--);
19477 return _res;
19478}
19479
19480// invalid_for_target: ASYNC? 'for' star_expressions
19481static void *
19482invalid_for_target_rule(Parser *p)
19483{
19484 D(p->level++);
19485 if (p->error_indicator) {
19486 D(p->level--);
19487 return NULL;
19488 }
19489 void * _res = NULL;
19490 int _mark = p->mark;
19491 { // ASYNC? 'for' star_expressions
19492 if (p->error_indicator) {
19493 D(p->level--);
19494 return NULL;
19495 }
19496 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19497 Token * _keyword;
19498 void *_opt_var;
19499 UNUSED(_opt_var); // Silence compiler warnings
19500 expr_ty a;
19501 if (
19502 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19503 &&
19504 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19505 &&
19506 (a = star_expressions_rule(p)) // star_expressions
19507 )
19508 {
19509 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 +030019510 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019511 if (_res == NULL && PyErr_Occurred()) {
19512 p->error_indicator = 1;
19513 D(p->level--);
19514 return NULL;
19515 }
19516 goto done;
19517 }
19518 p->mark = _mark;
19519 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19521 }
19522 _res = NULL;
19523 done:
19524 D(p->level--);
19525 return _res;
19526}
19527
Pablo Galindo8efad612021-03-24 19:34:17 +000019528// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019529static void *
19530invalid_group_rule(Parser *p)
19531{
19532 D(p->level++);
19533 if (p->error_indicator) {
19534 D(p->level--);
19535 return NULL;
19536 }
19537 void * _res = NULL;
19538 int _mark = p->mark;
19539 { // '(' starred_expression ')'
19540 if (p->error_indicator) {
19541 D(p->level--);
19542 return NULL;
19543 }
19544 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19545 Token * _literal;
19546 Token * _literal_1;
19547 expr_ty a;
19548 if (
19549 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19550 &&
19551 (a = starred_expression_rule(p)) // starred_expression
19552 &&
19553 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19554 )
19555 {
19556 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 +010019557 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019558 if (_res == NULL && PyErr_Occurred()) {
19559 p->error_indicator = 1;
19560 D(p->level--);
19561 return NULL;
19562 }
19563 goto done;
19564 }
19565 p->mark = _mark;
19566 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019568 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019569 { // '(' '**' expression ')'
19570 if (p->error_indicator) {
19571 D(p->level--);
19572 return NULL;
19573 }
19574 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19575 Token * _literal;
19576 Token * _literal_1;
19577 Token * a;
19578 expr_ty expression_var;
19579 if (
19580 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19581 &&
19582 (a = _PyPegen_expect_token(p, 35)) // token='**'
19583 &&
19584 (expression_var = expression_rule(p)) // expression
19585 &&
19586 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19587 )
19588 {
19589 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019590 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019591 if (_res == NULL && PyErr_Occurred()) {
19592 p->error_indicator = 1;
19593 D(p->level--);
19594 return NULL;
19595 }
19596 goto done;
19597 }
19598 p->mark = _mark;
19599 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19601 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019602 _res = NULL;
19603 done:
19604 D(p->level--);
19605 return _res;
19606}
19607
19608// invalid_import_from_targets: import_from_as_names ','
19609static void *
19610invalid_import_from_targets_rule(Parser *p)
19611{
19612 D(p->level++);
19613 if (p->error_indicator) {
19614 D(p->level--);
19615 return NULL;
19616 }
19617 void * _res = NULL;
19618 int _mark = p->mark;
19619 { // import_from_as_names ','
19620 if (p->error_indicator) {
19621 D(p->level--);
19622 return NULL;
19623 }
19624 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19625 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019626 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019627 if (
19628 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19629 &&
19630 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19631 )
19632 {
19633 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19634 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19635 if (_res == NULL && PyErr_Occurred()) {
19636 p->error_indicator = 1;
19637 D(p->level--);
19638 return NULL;
19639 }
19640 goto done;
19641 }
19642 p->mark = _mark;
19643 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19645 }
19646 _res = NULL;
19647 done:
19648 D(p->level--);
19649 return _res;
19650}
19651
Pablo Galindo58fb1562021-02-02 19:54:22 +000019652// invalid_with_stmt:
19653// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19654// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19655static void *
19656invalid_with_stmt_rule(Parser *p)
19657{
19658 D(p->level++);
19659 if (p->error_indicator) {
19660 D(p->level--);
19661 return NULL;
19662 }
19663 void * _res = NULL;
19664 int _mark = p->mark;
19665 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19666 if (p->error_indicator) {
19667 D(p->level--);
19668 return NULL;
19669 }
19670 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019671 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019672 Token * _keyword;
19673 Token * _literal;
19674 void *_opt_var;
19675 UNUSED(_opt_var); // Silence compiler warnings
19676 if (
19677 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19678 &&
19679 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19680 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019681 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019682 &&
19683 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19684 )
19685 {
19686 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019687 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019688 goto done;
19689 }
19690 p->mark = _mark;
19691 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19693 }
19694 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19695 if (p->error_indicator) {
19696 D(p->level--);
19697 return NULL;
19698 }
19699 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019700 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019701 Token * _keyword;
19702 Token * _literal;
19703 Token * _literal_1;
19704 Token * _literal_2;
19705 void *_opt_var;
19706 UNUSED(_opt_var); // Silence compiler warnings
19707 void *_opt_var_1;
19708 UNUSED(_opt_var_1); // Silence compiler warnings
19709 if (
19710 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19711 &&
19712 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19713 &&
19714 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19715 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019716 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019717 &&
19718 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19719 &&
19720 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19721 &&
19722 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19723 )
19724 {
19725 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019726 _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 +000019727 goto done;
19728 }
19729 p->mark = _mark;
19730 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19732 }
19733 _res = NULL;
19734 done:
19735 D(p->level--);
19736 return _res;
19737}
19738
Pablo Galindo56c95df2021-04-21 15:28:21 +010019739// invalid_with_stmt_indent:
19740// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19741// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019742static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019743invalid_with_stmt_indent_rule(Parser *p)
19744{
19745 D(p->level++);
19746 if (p->error_indicator) {
19747 D(p->level--);
19748 return NULL;
19749 }
19750 void * _res = NULL;
19751 int _mark = p->mark;
19752 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19753 if (p->error_indicator) {
19754 D(p->level--);
19755 return NULL;
19756 }
19757 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019758 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019759 Token * _literal;
19760 void *_opt_var;
19761 UNUSED(_opt_var); // Silence compiler warnings
19762 Token * a;
19763 Token * newline_var;
19764 if (
19765 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19766 &&
19767 (a = _PyPegen_expect_token(p, 519)) // token='with'
19768 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019769 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019770 &&
19771 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19772 &&
19773 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19774 &&
19775 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19776 )
19777 {
19778 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"));
19779 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19780 if (_res == NULL && PyErr_Occurred()) {
19781 p->error_indicator = 1;
19782 D(p->level--);
19783 return NULL;
19784 }
19785 goto done;
19786 }
19787 p->mark = _mark;
19788 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19790 }
19791 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19792 if (p->error_indicator) {
19793 D(p->level--);
19794 return NULL;
19795 }
19796 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019797 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019798 Token * _literal;
19799 Token * _literal_1;
19800 Token * _literal_2;
19801 void *_opt_var;
19802 UNUSED(_opt_var); // Silence compiler warnings
19803 void *_opt_var_1;
19804 UNUSED(_opt_var_1); // Silence compiler warnings
19805 Token * a;
19806 Token * newline_var;
19807 if (
19808 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19809 &&
19810 (a = _PyPegen_expect_token(p, 519)) // token='with'
19811 &&
19812 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19813 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019814 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019815 &&
19816 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19817 &&
19818 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19819 &&
19820 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19821 &&
19822 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19823 &&
19824 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19825 )
19826 {
19827 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"));
19828 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19829 if (_res == NULL && PyErr_Occurred()) {
19830 p->error_indicator = 1;
19831 D(p->level--);
19832 return NULL;
19833 }
19834 goto done;
19835 }
19836 p->mark = _mark;
19837 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19839 }
19840 _res = NULL;
19841 done:
19842 D(p->level--);
19843 return _res;
19844}
19845
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019846// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019847static void *
19848invalid_try_stmt_rule(Parser *p)
19849{
19850 D(p->level++);
19851 if (p->error_indicator) {
19852 D(p->level--);
19853 return NULL;
19854 }
19855 void * _res = NULL;
19856 int _mark = p->mark;
19857 { // 'try' ':' NEWLINE !INDENT
19858 if (p->error_indicator) {
19859 D(p->level--);
19860 return NULL;
19861 }
19862 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19863 Token * _literal;
19864 Token * a;
19865 Token * newline_var;
19866 if (
19867 (a = _PyPegen_expect_token(p, 511)) // token='try'
19868 &&
19869 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19870 &&
19871 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19872 &&
19873 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19874 )
19875 {
19876 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19877 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19878 if (_res == NULL && PyErr_Occurred()) {
19879 p->error_indicator = 1;
19880 D(p->level--);
19881 return NULL;
19882 }
19883 goto done;
19884 }
19885 p->mark = _mark;
19886 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19888 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019889 { // 'try' ':' block !('except' | 'finally')
19890 if (p->error_indicator) {
19891 D(p->level--);
19892 return NULL;
19893 }
19894 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19895 Token * _keyword;
19896 Token * _literal;
19897 asdl_stmt_seq* block_var;
19898 if (
19899 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19900 &&
19901 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19902 &&
19903 (block_var = block_rule(p)) // block
19904 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019905 _PyPegen_lookahead(0, _tmp_169_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019906 )
19907 {
19908 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19909 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19910 if (_res == NULL && PyErr_Occurred()) {
19911 p->error_indicator = 1;
19912 D(p->level--);
19913 return NULL;
19914 }
19915 goto done;
19916 }
19917 p->mark = _mark;
19918 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19920 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019921 _res = NULL;
19922 done:
19923 D(p->level--);
19924 return _res;
19925}
19926
19927// invalid_except_stmt:
19928// | 'except' expression ',' expressions ['as' NAME] ':'
19929// | 'except' expression ['as' NAME] NEWLINE
19930// | 'except' NEWLINE
19931static void *
19932invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019933{
19934 D(p->level++);
19935 if (p->error_indicator) {
19936 D(p->level--);
19937 return NULL;
19938 }
19939 void * _res = NULL;
19940 int _mark = p->mark;
19941 { // 'except' expression ',' expressions ['as' NAME] ':'
19942 if (p->error_indicator) {
19943 D(p->level--);
19944 return NULL;
19945 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019946 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 +000019947 Token * _keyword;
19948 Token * _literal;
19949 Token * _literal_1;
19950 void *_opt_var;
19951 UNUSED(_opt_var); // Silence compiler warnings
19952 expr_ty a;
19953 expr_ty expressions_var;
19954 if (
19955 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19956 &&
19957 (a = expression_rule(p)) // expression
19958 &&
19959 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19960 &&
19961 (expressions_var = expressions_rule(p)) // expressions
19962 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019963 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019964 &&
19965 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19966 )
19967 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019968 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Miss Islington (bot)9a0e65c2021-05-09 14:13:50 -070019969 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019970 if (_res == NULL && PyErr_Occurred()) {
19971 p->error_indicator = 1;
19972 D(p->level--);
19973 return NULL;
19974 }
19975 goto done;
19976 }
19977 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019978 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19980 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019981 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019982 if (p->error_indicator) {
19983 D(p->level--);
19984 return NULL;
19985 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019986 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 +000019987 void *_opt_var;
19988 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019989 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019990 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019991 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019992 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019993 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019994 &&
19995 (expression_var = expression_rule(p)) // expression
19996 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019997 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019998 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019999 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020000 )
20001 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020002 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20003 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20004 if (_res == NULL && PyErr_Occurred()) {
20005 p->error_indicator = 1;
20006 D(p->level--);
20007 return NULL;
20008 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020009 goto done;
20010 }
20011 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020012 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020014 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020015 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020016 if (p->error_indicator) {
20017 D(p->level--);
20018 return NULL;
20019 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020020 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20021 Token * a;
20022 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020023 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020024 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020025 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020026 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020027 )
20028 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020029 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20030 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20031 if (_res == NULL && PyErr_Occurred()) {
20032 p->error_indicator = 1;
20033 D(p->level--);
20034 return NULL;
20035 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020036 goto done;
20037 }
20038 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020039 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020041 }
20042 _res = NULL;
20043 done:
20044 D(p->level--);
20045 return _res;
20046}
20047
Pablo Galindo56c95df2021-04-21 15:28:21 +010020048// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20049static void *
20050invalid_finally_stmt_rule(Parser *p)
20051{
20052 D(p->level++);
20053 if (p->error_indicator) {
20054 D(p->level--);
20055 return NULL;
20056 }
20057 void * _res = NULL;
20058 int _mark = p->mark;
20059 { // 'finally' ':' NEWLINE !INDENT
20060 if (p->error_indicator) {
20061 D(p->level--);
20062 return NULL;
20063 }
20064 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20065 Token * _literal;
20066 Token * a;
20067 Token * newline_var;
20068 if (
20069 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20070 &&
20071 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20072 &&
20073 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20074 &&
20075 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20076 )
20077 {
20078 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20079 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20080 if (_res == NULL && PyErr_Occurred()) {
20081 p->error_indicator = 1;
20082 D(p->level--);
20083 return NULL;
20084 }
20085 goto done;
20086 }
20087 p->mark = _mark;
20088 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20090 }
20091 _res = NULL;
20092 done:
20093 D(p->level--);
20094 return _res;
20095}
20096
20097// invalid_except_stmt_indent:
20098// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20099// | 'except' ':' NEWLINE !INDENT
20100static void *
20101invalid_except_stmt_indent_rule(Parser *p)
20102{
20103 D(p->level++);
20104 if (p->error_indicator) {
20105 D(p->level--);
20106 return NULL;
20107 }
20108 void * _res = NULL;
20109 int _mark = p->mark;
20110 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20111 if (p->error_indicator) {
20112 D(p->level--);
20113 return NULL;
20114 }
20115 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20116 Token * _literal;
20117 void *_opt_var;
20118 UNUSED(_opt_var); // Silence compiler warnings
20119 Token * a;
20120 expr_ty expression_var;
20121 Token * newline_var;
20122 if (
20123 (a = _PyPegen_expect_token(p, 521)) // token='except'
20124 &&
20125 (expression_var = expression_rule(p)) // expression
20126 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020127 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020128 &&
20129 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20130 &&
20131 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20132 &&
20133 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20134 )
20135 {
20136 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20137 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20138 if (_res == NULL && PyErr_Occurred()) {
20139 p->error_indicator = 1;
20140 D(p->level--);
20141 return NULL;
20142 }
20143 goto done;
20144 }
20145 p->mark = _mark;
20146 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20148 }
20149 { // 'except' ':' NEWLINE !INDENT
20150 if (p->error_indicator) {
20151 D(p->level--);
20152 return NULL;
20153 }
20154 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20155 Token * _literal;
20156 Token * a;
20157 Token * newline_var;
20158 if (
20159 (a = _PyPegen_expect_token(p, 521)) // token='except'
20160 &&
20161 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20162 &&
20163 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20164 &&
20165 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20166 )
20167 {
20168 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20169 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20170 if (_res == NULL && PyErr_Occurred()) {
20171 p->error_indicator = 1;
20172 D(p->level--);
20173 return NULL;
20174 }
20175 goto done;
20176 }
20177 p->mark = _mark;
20178 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20180 }
20181 _res = NULL;
20182 done:
20183 D(p->level--);
20184 return _res;
20185}
20186
20187// invalid_match_stmt:
20188// | "match" subject_expr !':'
20189// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020190static void *
20191invalid_match_stmt_rule(Parser *p)
20192{
20193 D(p->level++);
20194 if (p->error_indicator) {
20195 D(p->level--);
20196 return NULL;
20197 }
20198 void * _res = NULL;
20199 int _mark = p->mark;
20200 { // "match" subject_expr !':'
20201 if (p->error_indicator) {
20202 D(p->level--);
20203 return NULL;
20204 }
20205 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20206 expr_ty _keyword;
20207 expr_ty subject_expr_var;
20208 if (
20209 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20210 &&
20211 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20212 &&
20213 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20214 )
20215 {
20216 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20217 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20218 if (_res == NULL && PyErr_Occurred()) {
20219 p->error_indicator = 1;
20220 D(p->level--);
20221 return NULL;
20222 }
20223 goto done;
20224 }
20225 p->mark = _mark;
20226 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20228 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020229 { // "match" subject_expr ':' NEWLINE !INDENT
20230 if (p->error_indicator) {
20231 D(p->level--);
20232 return NULL;
20233 }
20234 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20235 Token * _literal;
20236 expr_ty a;
20237 Token * newline_var;
20238 expr_ty subject;
20239 if (
20240 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20241 &&
20242 (subject = subject_expr_rule(p)) // subject_expr
20243 &&
20244 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20245 &&
20246 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20247 &&
20248 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20249 )
20250 {
20251 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20252 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20253 if (_res == NULL && PyErr_Occurred()) {
20254 p->error_indicator = 1;
20255 D(p->level--);
20256 return NULL;
20257 }
20258 goto done;
20259 }
20260 p->mark = _mark;
20261 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20263 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020264 _res = NULL;
20265 done:
20266 D(p->level--);
20267 return _res;
20268}
20269
Pablo Galindo56c95df2021-04-21 15:28:21 +010020270// invalid_case_block:
20271// | "case" patterns guard? !':'
20272// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020273static void *
20274invalid_case_block_rule(Parser *p)
20275{
20276 D(p->level++);
20277 if (p->error_indicator) {
20278 D(p->level--);
20279 return NULL;
20280 }
20281 void * _res = NULL;
20282 int _mark = p->mark;
20283 { // "case" patterns guard? !':'
20284 if (p->error_indicator) {
20285 D(p->level--);
20286 return NULL;
20287 }
20288 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20289 expr_ty _keyword;
20290 void *_opt_var;
20291 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020292 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020293 if (
20294 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20295 &&
20296 (patterns_var = patterns_rule(p)) // patterns
20297 &&
20298 (_opt_var = guard_rule(p), 1) // guard?
20299 &&
20300 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20301 )
20302 {
20303 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20304 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20305 if (_res == NULL && PyErr_Occurred()) {
20306 p->error_indicator = 1;
20307 D(p->level--);
20308 return NULL;
20309 }
20310 goto done;
20311 }
20312 p->mark = _mark;
20313 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20315 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020316 { // "case" patterns guard? ':' NEWLINE !INDENT
20317 if (p->error_indicator) {
20318 D(p->level--);
20319 return NULL;
20320 }
20321 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20322 Token * _literal;
20323 void *_opt_var;
20324 UNUSED(_opt_var); // Silence compiler warnings
20325 expr_ty a;
20326 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020327 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020328 if (
20329 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20330 &&
20331 (patterns_var = patterns_rule(p)) // patterns
20332 &&
20333 (_opt_var = guard_rule(p), 1) // guard?
20334 &&
20335 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20336 &&
20337 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20338 &&
20339 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20340 )
20341 {
20342 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20343 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20344 if (_res == NULL && PyErr_Occurred()) {
20345 p->error_indicator = 1;
20346 D(p->level--);
20347 return NULL;
20348 }
20349 goto done;
20350 }
20351 p->mark = _mark;
20352 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20354 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020355 _res = NULL;
20356 done:
20357 D(p->level--);
20358 return _res;
20359}
20360
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020361// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20362static void *
20363invalid_as_pattern_rule(Parser *p)
20364{
20365 D(p->level++);
20366 if (p->error_indicator) {
20367 D(p->level--);
20368 return NULL;
20369 }
20370 void * _res = NULL;
20371 int _mark = p->mark;
20372 { // or_pattern 'as' "_"
20373 if (p->error_indicator) {
20374 D(p->level--);
20375 return NULL;
20376 }
20377 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20378 Token * _keyword;
20379 expr_ty a;
20380 pattern_ty or_pattern_var;
20381 if (
20382 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20383 &&
20384 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20385 &&
20386 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20387 )
20388 {
20389 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20390 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20391 if (_res == NULL && PyErr_Occurred()) {
20392 p->error_indicator = 1;
20393 D(p->level--);
20394 return NULL;
20395 }
20396 goto done;
20397 }
20398 p->mark = _mark;
20399 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20401 }
20402 { // or_pattern 'as' !NAME expression
20403 if (p->error_indicator) {
20404 D(p->level--);
20405 return NULL;
20406 }
20407 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20408 Token * _keyword;
20409 expr_ty a;
20410 pattern_ty or_pattern_var;
20411 if (
20412 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20413 &&
20414 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20415 &&
20416 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20417 &&
20418 (a = expression_rule(p)) // expression
20419 )
20420 {
20421 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20422 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20423 if (_res == NULL && PyErr_Occurred()) {
20424 p->error_indicator = 1;
20425 D(p->level--);
20426 return NULL;
20427 }
20428 goto done;
20429 }
20430 p->mark = _mark;
20431 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20433 }
20434 _res = NULL;
20435 done:
20436 D(p->level--);
20437 return _res;
20438}
20439
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020440// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
20441static void *
20442invalid_class_pattern_rule(Parser *p)
20443{
20444 D(p->level++);
20445 if (p->error_indicator) {
20446 D(p->level--);
20447 return NULL;
20448 }
20449 void * _res = NULL;
20450 int _mark = p->mark;
20451 { // name_or_attr '(' invalid_class_argument_pattern
20452 if (p->error_indicator) {
20453 D(p->level--);
20454 return NULL;
20455 }
20456 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20457 Token * _literal;
20458 asdl_pattern_seq* a;
20459 expr_ty name_or_attr_var;
20460 if (
20461 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
20462 &&
20463 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20464 &&
20465 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
20466 )
20467 {
20468 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20469 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
20470 if (_res == NULL && PyErr_Occurred()) {
20471 p->error_indicator = 1;
20472 D(p->level--);
20473 return NULL;
20474 }
20475 goto done;
20476 }
20477 p->mark = _mark;
20478 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20480 }
20481 _res = NULL;
20482 done:
20483 D(p->level--);
20484 return _res;
20485}
20486
20487// invalid_class_argument_pattern:
20488// | [positional_patterns ','] keyword_patterns ',' positional_patterns
20489static asdl_pattern_seq*
20490invalid_class_argument_pattern_rule(Parser *p)
20491{
20492 D(p->level++);
20493 if (p->error_indicator) {
20494 D(p->level--);
20495 return NULL;
20496 }
20497 asdl_pattern_seq* _res = NULL;
20498 int _mark = p->mark;
20499 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
20500 if (p->error_indicator) {
20501 D(p->level--);
20502 return NULL;
20503 }
20504 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20505 Token * _literal;
20506 void *_opt_var;
20507 UNUSED(_opt_var); // Silence compiler warnings
20508 asdl_pattern_seq* a;
20509 asdl_seq* keyword_patterns_var;
20510 if (
20511 (_opt_var = _tmp_173_rule(p), 1) // [positional_patterns ',']
20512 &&
20513 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
20514 &&
20515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20516 &&
20517 (a = positional_patterns_rule(p)) // positional_patterns
20518 )
20519 {
20520 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20521 _res = a;
20522 if (_res == NULL && PyErr_Occurred()) {
20523 p->error_indicator = 1;
20524 D(p->level--);
20525 return NULL;
20526 }
20527 goto done;
20528 }
20529 p->mark = _mark;
20530 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20532 }
20533 _res = NULL;
20534 done:
20535 D(p->level--);
20536 return _res;
20537}
20538
Pablo Galindo56c95df2021-04-21 15:28:21 +010020539// invalid_if_stmt:
20540// | 'if' named_expression NEWLINE
20541// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020542static void *
20543invalid_if_stmt_rule(Parser *p)
20544{
20545 D(p->level++);
20546 if (p->error_indicator) {
20547 D(p->level--);
20548 return NULL;
20549 }
20550 void * _res = NULL;
20551 int _mark = p->mark;
20552 { // 'if' named_expression NEWLINE
20553 if (p->error_indicator) {
20554 D(p->level--);
20555 return NULL;
20556 }
20557 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20558 Token * _keyword;
20559 expr_ty named_expression_var;
20560 Token * newline_var;
20561 if (
20562 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20563 &&
20564 (named_expression_var = named_expression_rule(p)) // named_expression
20565 &&
20566 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20567 )
20568 {
20569 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20570 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20571 if (_res == NULL && PyErr_Occurred()) {
20572 p->error_indicator = 1;
20573 D(p->level--);
20574 return NULL;
20575 }
20576 goto done;
20577 }
20578 p->mark = _mark;
20579 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20581 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020582 { // 'if' named_expression ':' NEWLINE !INDENT
20583 if (p->error_indicator) {
20584 D(p->level--);
20585 return NULL;
20586 }
20587 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20588 Token * _literal;
20589 Token * a;
20590 expr_ty a_1;
20591 Token * newline_var;
20592 if (
20593 (a = _PyPegen_expect_token(p, 510)) // token='if'
20594 &&
20595 (a_1 = named_expression_rule(p)) // named_expression
20596 &&
20597 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20598 &&
20599 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20600 &&
20601 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20602 )
20603 {
20604 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20605 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20606 if (_res == NULL && PyErr_Occurred()) {
20607 p->error_indicator = 1;
20608 D(p->level--);
20609 return NULL;
20610 }
20611 goto done;
20612 }
20613 p->mark = _mark;
20614 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20616 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020617 _res = NULL;
20618 done:
20619 D(p->level--);
20620 return _res;
20621}
20622
Pablo Galindo56c95df2021-04-21 15:28:21 +010020623// invalid_elif_stmt:
20624// | 'elif' named_expression NEWLINE
20625// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020626static void *
20627invalid_elif_stmt_rule(Parser *p)
20628{
20629 D(p->level++);
20630 if (p->error_indicator) {
20631 D(p->level--);
20632 return NULL;
20633 }
20634 void * _res = NULL;
20635 int _mark = p->mark;
20636 { // 'elif' named_expression NEWLINE
20637 if (p->error_indicator) {
20638 D(p->level--);
20639 return NULL;
20640 }
20641 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20642 Token * _keyword;
20643 expr_ty named_expression_var;
20644 Token * newline_var;
20645 if (
20646 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20647 &&
20648 (named_expression_var = named_expression_rule(p)) // named_expression
20649 &&
20650 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20651 )
20652 {
20653 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20654 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20655 if (_res == NULL && PyErr_Occurred()) {
20656 p->error_indicator = 1;
20657 D(p->level--);
20658 return NULL;
20659 }
20660 goto done;
20661 }
20662 p->mark = _mark;
20663 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20665 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020666 { // 'elif' named_expression ':' NEWLINE !INDENT
20667 if (p->error_indicator) {
20668 D(p->level--);
20669 return NULL;
20670 }
20671 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20672 Token * _literal;
20673 Token * a;
20674 expr_ty named_expression_var;
20675 Token * newline_var;
20676 if (
20677 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20678 &&
20679 (named_expression_var = named_expression_rule(p)) // named_expression
20680 &&
20681 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20682 &&
20683 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20684 &&
20685 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20686 )
20687 {
20688 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20689 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20690 if (_res == NULL && PyErr_Occurred()) {
20691 p->error_indicator = 1;
20692 D(p->level--);
20693 return NULL;
20694 }
20695 goto done;
20696 }
20697 p->mark = _mark;
20698 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20700 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020701 _res = NULL;
20702 done:
20703 D(p->level--);
20704 return _res;
20705}
20706
Pablo Galindo56c95df2021-04-21 15:28:21 +010020707// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20708static void *
20709invalid_else_stmt_rule(Parser *p)
20710{
20711 D(p->level++);
20712 if (p->error_indicator) {
20713 D(p->level--);
20714 return NULL;
20715 }
20716 void * _res = NULL;
20717 int _mark = p->mark;
20718 { // 'else' ':' NEWLINE !INDENT
20719 if (p->error_indicator) {
20720 D(p->level--);
20721 return NULL;
20722 }
20723 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20724 Token * _literal;
20725 Token * a;
20726 Token * newline_var;
20727 if (
20728 (a = _PyPegen_expect_token(p, 516)) // token='else'
20729 &&
20730 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20731 &&
20732 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20733 &&
20734 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20735 )
20736 {
20737 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20738 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20739 if (_res == NULL && PyErr_Occurred()) {
20740 p->error_indicator = 1;
20741 D(p->level--);
20742 return NULL;
20743 }
20744 goto done;
20745 }
20746 p->mark = _mark;
20747 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20749 }
20750 _res = NULL;
20751 done:
20752 D(p->level--);
20753 return _res;
20754}
20755
20756// invalid_while_stmt:
20757// | 'while' named_expression NEWLINE
20758// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020759static void *
20760invalid_while_stmt_rule(Parser *p)
20761{
20762 D(p->level++);
20763 if (p->error_indicator) {
20764 D(p->level--);
20765 return NULL;
20766 }
20767 void * _res = NULL;
20768 int _mark = p->mark;
20769 { // 'while' named_expression NEWLINE
20770 if (p->error_indicator) {
20771 D(p->level--);
20772 return NULL;
20773 }
20774 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20775 Token * _keyword;
20776 expr_ty named_expression_var;
20777 Token * newline_var;
20778 if (
20779 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20780 &&
20781 (named_expression_var = named_expression_rule(p)) // named_expression
20782 &&
20783 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20784 )
20785 {
20786 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20787 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20788 if (_res == NULL && PyErr_Occurred()) {
20789 p->error_indicator = 1;
20790 D(p->level--);
20791 return NULL;
20792 }
20793 goto done;
20794 }
20795 p->mark = _mark;
20796 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20798 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020799 { // 'while' named_expression ':' NEWLINE !INDENT
20800 if (p->error_indicator) {
20801 D(p->level--);
20802 return NULL;
20803 }
20804 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20805 Token * _literal;
20806 Token * a;
20807 expr_ty named_expression_var;
20808 Token * newline_var;
20809 if (
20810 (a = _PyPegen_expect_token(p, 512)) // token='while'
20811 &&
20812 (named_expression_var = named_expression_rule(p)) // named_expression
20813 &&
20814 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20815 &&
20816 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20817 &&
20818 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20819 )
20820 {
20821 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20822 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20823 if (_res == NULL && PyErr_Occurred()) {
20824 p->error_indicator = 1;
20825 D(p->level--);
20826 return NULL;
20827 }
20828 goto done;
20829 }
20830 p->mark = _mark;
20831 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20833 }
20834 _res = NULL;
20835 done:
20836 D(p->level--);
20837 return _res;
20838}
20839
20840// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20841static void *
20842invalid_for_stmt_rule(Parser *p)
20843{
20844 D(p->level++);
20845 if (p->error_indicator) {
20846 D(p->level--);
20847 return NULL;
20848 }
20849 void * _res = NULL;
20850 int _mark = p->mark;
20851 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20852 if (p->error_indicator) {
20853 D(p->level--);
20854 return NULL;
20855 }
20856 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"));
20857 Token * _keyword;
20858 Token * _literal;
20859 void *_opt_var;
20860 UNUSED(_opt_var); // Silence compiler warnings
20861 Token * a;
20862 Token * newline_var;
20863 expr_ty star_expressions_var;
20864 expr_ty star_targets_var;
20865 if (
20866 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20867 &&
20868 (a = _PyPegen_expect_token(p, 517)) // token='for'
20869 &&
20870 (star_targets_var = star_targets_rule(p)) // star_targets
20871 &&
20872 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20873 &&
20874 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20875 &&
20876 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20877 &&
20878 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20879 &&
20880 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20881 )
20882 {
20883 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"));
20884 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20885 if (_res == NULL && PyErr_Occurred()) {
20886 p->error_indicator = 1;
20887 D(p->level--);
20888 return NULL;
20889 }
20890 goto done;
20891 }
20892 p->mark = _mark;
20893 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20895 }
20896 _res = NULL;
20897 done:
20898 D(p->level--);
20899 return _res;
20900}
20901
20902// invalid_def_raw:
20903// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20904static void *
20905invalid_def_raw_rule(Parser *p)
20906{
20907 D(p->level++);
20908 if (p->error_indicator) {
20909 D(p->level--);
20910 return NULL;
20911 }
20912 void * _res = NULL;
20913 int _mark = p->mark;
20914 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20915 if (p->error_indicator) {
20916 D(p->level--);
20917 return NULL;
20918 }
20919 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20920 Token * _literal;
20921 Token * _literal_1;
20922 Token * _literal_2;
20923 void *_opt_var;
20924 UNUSED(_opt_var); // Silence compiler warnings
20925 void *_opt_var_1;
20926 UNUSED(_opt_var_1); // Silence compiler warnings
20927 void *_opt_var_2;
20928 UNUSED(_opt_var_2); // Silence compiler warnings
20929 Token * a;
20930 expr_ty name_var;
20931 Token * newline_var;
20932 if (
20933 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20934 &&
20935 (a = _PyPegen_expect_token(p, 526)) // token='def'
20936 &&
20937 (name_var = _PyPegen_name_token(p)) // NAME
20938 &&
20939 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20940 &&
20941 (_opt_var_1 = params_rule(p), 1) // params?
20942 &&
20943 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20944 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020945 (_opt_var_2 = _tmp_174_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020946 &&
20947 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20948 &&
20949 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20950 &&
20951 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20952 )
20953 {
20954 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20955 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20956 if (_res == NULL && PyErr_Occurred()) {
20957 p->error_indicator = 1;
20958 D(p->level--);
20959 return NULL;
20960 }
20961 goto done;
20962 }
20963 p->mark = _mark;
20964 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20966 }
20967 _res = NULL;
20968 done:
20969 D(p->level--);
20970 return _res;
20971}
20972
20973// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20974static void *
20975invalid_class_def_raw_rule(Parser *p)
20976{
20977 D(p->level++);
20978 if (p->error_indicator) {
20979 D(p->level--);
20980 return NULL;
20981 }
20982 void * _res = NULL;
20983 int _mark = p->mark;
20984 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20985 if (p->error_indicator) {
20986 D(p->level--);
20987 return NULL;
20988 }
20989 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20990 Token * _literal;
20991 void *_opt_var;
20992 UNUSED(_opt_var); // Silence compiler warnings
20993 Token * a;
20994 expr_ty name_var;
20995 Token * newline_var;
20996 if (
20997 (a = _PyPegen_expect_token(p, 527)) // token='class'
20998 &&
20999 (name_var = _PyPegen_name_token(p)) // NAME
21000 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021001 (_opt_var = _tmp_175_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010021002 &&
21003 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21004 &&
21005 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21006 &&
21007 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21008 )
21009 {
21010 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21011 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21012 if (_res == NULL && PyErr_Occurred()) {
21013 p->error_indicator = 1;
21014 D(p->level--);
21015 return NULL;
21016 }
21017 goto done;
21018 }
21019 p->mark = _mark;
21020 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21022 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021023 _res = NULL;
21024 done:
21025 D(p->level--);
21026 return _res;
21027}
21028
Pablo Galindoda743502021-04-15 14:06:39 +010021029// invalid_double_starred_kvpairs:
21030// | ','.double_starred_kvpair+ ',' invalid_kvpair
21031// | expression ':' '*' bitwise_or
21032// | expression ':' &('}' | ',')
21033static void *
21034invalid_double_starred_kvpairs_rule(Parser *p)
21035{
21036 D(p->level++);
21037 if (p->error_indicator) {
21038 D(p->level--);
21039 return NULL;
21040 }
21041 void * _res = NULL;
21042 int _mark = p->mark;
21043 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21044 if (p->error_indicator) {
21045 D(p->level--);
21046 return NULL;
21047 }
21048 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021049 asdl_seq * _gather_176_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021050 Token * _literal;
21051 void *invalid_kvpair_var;
21052 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021053 (_gather_176_var = _gather_176_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021054 &&
21055 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21056 &&
21057 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21058 )
21059 {
21060 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021061 _res = _PyPegen_dummy_name(p, _gather_176_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021062 goto done;
21063 }
21064 p->mark = _mark;
21065 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21067 }
21068 { // expression ':' '*' bitwise_or
21069 if (p->error_indicator) {
21070 D(p->level--);
21071 return NULL;
21072 }
21073 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21074 Token * _literal;
21075 Token * a;
21076 expr_ty bitwise_or_var;
21077 expr_ty expression_var;
21078 if (
21079 (expression_var = expression_rule(p)) // expression
21080 &&
21081 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21082 &&
21083 (a = _PyPegen_expect_token(p, 16)) // token='*'
21084 &&
21085 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21086 )
21087 {
21088 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 +010021089 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021090 if (_res == NULL && PyErr_Occurred()) {
21091 p->error_indicator = 1;
21092 D(p->level--);
21093 return NULL;
21094 }
21095 goto done;
21096 }
21097 p->mark = _mark;
21098 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21100 }
21101 { // expression ':' &('}' | ',')
21102 if (p->error_indicator) {
21103 D(p->level--);
21104 return NULL;
21105 }
21106 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21107 Token * a;
21108 expr_ty expression_var;
21109 if (
21110 (expression_var = expression_rule(p)) // expression
21111 &&
21112 (a = _PyPegen_expect_token(p, 11)) // token=':'
21113 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021114 _PyPegen_lookahead(1, _tmp_178_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021115 )
21116 {
21117 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21118 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21119 if (_res == NULL && PyErr_Occurred()) {
21120 p->error_indicator = 1;
21121 D(p->level--);
21122 return NULL;
21123 }
21124 goto done;
21125 }
21126 p->mark = _mark;
21127 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21129 }
21130 _res = NULL;
21131 done:
21132 D(p->level--);
21133 return _res;
21134}
21135
21136// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21137static void *
21138invalid_kvpair_rule(Parser *p)
21139{
21140 D(p->level++);
21141 if (p->error_indicator) {
21142 D(p->level--);
21143 return NULL;
21144 }
21145 void * _res = NULL;
21146 int _mark = p->mark;
21147 { // expression !(':')
21148 if (p->error_indicator) {
21149 D(p->level--);
21150 return NULL;
21151 }
21152 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21153 expr_ty a;
21154 if (
21155 (a = expression_rule(p)) // expression
21156 &&
21157 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21158 )
21159 {
21160 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021161 _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 +010021162 if (_res == NULL && PyErr_Occurred()) {
21163 p->error_indicator = 1;
21164 D(p->level--);
21165 return NULL;
21166 }
21167 goto done;
21168 }
21169 p->mark = _mark;
21170 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21172 }
21173 { // expression ':' '*' bitwise_or
21174 if (p->error_indicator) {
21175 D(p->level--);
21176 return NULL;
21177 }
21178 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21179 Token * _literal;
21180 Token * a;
21181 expr_ty bitwise_or_var;
21182 expr_ty expression_var;
21183 if (
21184 (expression_var = expression_rule(p)) // expression
21185 &&
21186 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21187 &&
21188 (a = _PyPegen_expect_token(p, 16)) // token='*'
21189 &&
21190 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21191 )
21192 {
21193 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 +010021194 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021195 if (_res == NULL && PyErr_Occurred()) {
21196 p->error_indicator = 1;
21197 D(p->level--);
21198 return NULL;
21199 }
21200 goto done;
21201 }
21202 p->mark = _mark;
21203 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21205 }
21206 { // expression ':'
21207 if (p->error_indicator) {
21208 D(p->level--);
21209 return NULL;
21210 }
21211 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21212 Token * a;
21213 expr_ty expression_var;
21214 if (
21215 (expression_var = expression_rule(p)) // expression
21216 &&
21217 (a = _PyPegen_expect_token(p, 11)) // token=':'
21218 )
21219 {
21220 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21221 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21222 if (_res == NULL && PyErr_Occurred()) {
21223 p->error_indicator = 1;
21224 D(p->level--);
21225 return NULL;
21226 }
21227 goto done;
21228 }
21229 p->mark = _mark;
21230 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21232 }
21233 _res = NULL;
21234 done:
21235 D(p->level--);
21236 return _res;
21237}
21238
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021239// _loop0_1: NEWLINE
21240static asdl_seq *
21241_loop0_1_rule(Parser *p)
21242{
21243 D(p->level++);
21244 if (p->error_indicator) {
21245 D(p->level--);
21246 return NULL;
21247 }
21248 void *_res = NULL;
21249 int _mark = p->mark;
21250 int _start_mark = p->mark;
21251 void **_children = PyMem_Malloc(sizeof(void *));
21252 if (!_children) {
21253 p->error_indicator = 1;
21254 PyErr_NoMemory();
21255 D(p->level--);
21256 return NULL;
21257 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021258 Py_ssize_t _children_capacity = 1;
21259 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021260 { // NEWLINE
21261 if (p->error_indicator) {
21262 D(p->level--);
21263 return NULL;
21264 }
21265 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21266 Token * newline_var;
21267 while (
21268 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21269 )
21270 {
21271 _res = newline_var;
21272 if (_n == _children_capacity) {
21273 _children_capacity *= 2;
21274 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21275 if (!_new_children) {
21276 p->error_indicator = 1;
21277 PyErr_NoMemory();
21278 D(p->level--);
21279 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021280 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021281 _children = _new_children;
21282 }
21283 _children[_n++] = _res;
21284 _mark = p->mark;
21285 }
21286 p->mark = _mark;
21287 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021290 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021291 if (!_seq) {
21292 PyMem_Free(_children);
21293 p->error_indicator = 1;
21294 PyErr_NoMemory();
21295 D(p->level--);
21296 return NULL;
21297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021298 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021299 PyMem_Free(_children);
21300 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21301 D(p->level--);
21302 return _seq;
21303}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021304
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021305// _loop0_2: NEWLINE
21306static asdl_seq *
21307_loop0_2_rule(Parser *p)
21308{
21309 D(p->level++);
21310 if (p->error_indicator) {
21311 D(p->level--);
21312 return NULL;
21313 }
21314 void *_res = NULL;
21315 int _mark = p->mark;
21316 int _start_mark = p->mark;
21317 void **_children = PyMem_Malloc(sizeof(void *));
21318 if (!_children) {
21319 p->error_indicator = 1;
21320 PyErr_NoMemory();
21321 D(p->level--);
21322 return NULL;
21323 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021324 Py_ssize_t _children_capacity = 1;
21325 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021326 { // NEWLINE
21327 if (p->error_indicator) {
21328 D(p->level--);
21329 return NULL;
21330 }
21331 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21332 Token * newline_var;
21333 while (
21334 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21335 )
21336 {
21337 _res = newline_var;
21338 if (_n == _children_capacity) {
21339 _children_capacity *= 2;
21340 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21341 if (!_new_children) {
21342 p->error_indicator = 1;
21343 PyErr_NoMemory();
21344 D(p->level--);
21345 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021346 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021347 _children = _new_children;
21348 }
21349 _children[_n++] = _res;
21350 _mark = p->mark;
21351 }
21352 p->mark = _mark;
21353 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021356 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021357 if (!_seq) {
21358 PyMem_Free(_children);
21359 p->error_indicator = 1;
21360 PyErr_NoMemory();
21361 D(p->level--);
21362 return NULL;
21363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021364 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021365 PyMem_Free(_children);
21366 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21367 D(p->level--);
21368 return _seq;
21369}
21370
21371// _loop0_4: ',' expression
21372static asdl_seq *
21373_loop0_4_rule(Parser *p)
21374{
21375 D(p->level++);
21376 if (p->error_indicator) {
21377 D(p->level--);
21378 return NULL;
21379 }
21380 void *_res = NULL;
21381 int _mark = p->mark;
21382 int _start_mark = p->mark;
21383 void **_children = PyMem_Malloc(sizeof(void *));
21384 if (!_children) {
21385 p->error_indicator = 1;
21386 PyErr_NoMemory();
21387 D(p->level--);
21388 return NULL;
21389 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021390 Py_ssize_t _children_capacity = 1;
21391 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021392 { // ',' expression
21393 if (p->error_indicator) {
21394 D(p->level--);
21395 return NULL;
21396 }
21397 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21398 Token * _literal;
21399 expr_ty elem;
21400 while (
21401 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21402 &&
21403 (elem = expression_rule(p)) // expression
21404 )
21405 {
21406 _res = elem;
21407 if (_res == NULL && PyErr_Occurred()) {
21408 p->error_indicator = 1;
21409 PyMem_Free(_children);
21410 D(p->level--);
21411 return NULL;
21412 }
21413 if (_n == _children_capacity) {
21414 _children_capacity *= 2;
21415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21416 if (!_new_children) {
21417 p->error_indicator = 1;
21418 PyErr_NoMemory();
21419 D(p->level--);
21420 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021421 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021422 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021423 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021424 _children[_n++] = _res;
21425 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021426 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021427 p->mark = _mark;
21428 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021430 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021431 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021432 if (!_seq) {
21433 PyMem_Free(_children);
21434 p->error_indicator = 1;
21435 PyErr_NoMemory();
21436 D(p->level--);
21437 return NULL;
21438 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021439 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021440 PyMem_Free(_children);
21441 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21442 D(p->level--);
21443 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021444}
21445
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021446// _gather_3: expression _loop0_4
21447static asdl_seq *
21448_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021449{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021450 D(p->level++);
21451 if (p->error_indicator) {
21452 D(p->level--);
21453 return NULL;
21454 }
21455 asdl_seq * _res = NULL;
21456 int _mark = p->mark;
21457 { // expression _loop0_4
21458 if (p->error_indicator) {
21459 D(p->level--);
21460 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021461 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021462 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21463 expr_ty elem;
21464 asdl_seq * seq;
21465 if (
21466 (elem = expression_rule(p)) // expression
21467 &&
21468 (seq = _loop0_4_rule(p)) // _loop0_4
21469 )
21470 {
21471 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21472 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21473 goto done;
21474 }
21475 p->mark = _mark;
21476 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021478 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021479 _res = NULL;
21480 done:
21481 D(p->level--);
21482 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021483}
21484
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021485// _loop0_6: ',' expression
21486static asdl_seq *
21487_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021488{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021489 D(p->level++);
21490 if (p->error_indicator) {
21491 D(p->level--);
21492 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021493 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021494 void *_res = NULL;
21495 int _mark = p->mark;
21496 int _start_mark = p->mark;
21497 void **_children = PyMem_Malloc(sizeof(void *));
21498 if (!_children) {
21499 p->error_indicator = 1;
21500 PyErr_NoMemory();
21501 D(p->level--);
21502 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021503 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021504 Py_ssize_t _children_capacity = 1;
21505 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021506 { // ',' expression
21507 if (p->error_indicator) {
21508 D(p->level--);
21509 return NULL;
21510 }
21511 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21512 Token * _literal;
21513 expr_ty elem;
21514 while (
21515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21516 &&
21517 (elem = expression_rule(p)) // expression
21518 )
21519 {
21520 _res = elem;
21521 if (_res == NULL && PyErr_Occurred()) {
21522 p->error_indicator = 1;
21523 PyMem_Free(_children);
21524 D(p->level--);
21525 return NULL;
21526 }
21527 if (_n == _children_capacity) {
21528 _children_capacity *= 2;
21529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21530 if (!_new_children) {
21531 p->error_indicator = 1;
21532 PyErr_NoMemory();
21533 D(p->level--);
21534 return NULL;
21535 }
21536 _children = _new_children;
21537 }
21538 _children[_n++] = _res;
21539 _mark = p->mark;
21540 }
21541 p->mark = _mark;
21542 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21544 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021546 if (!_seq) {
21547 PyMem_Free(_children);
21548 p->error_indicator = 1;
21549 PyErr_NoMemory();
21550 D(p->level--);
21551 return NULL;
21552 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021554 PyMem_Free(_children);
21555 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21556 D(p->level--);
21557 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021558}
21559
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021560// _gather_5: expression _loop0_6
21561static asdl_seq *
21562_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021563{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021564 D(p->level++);
21565 if (p->error_indicator) {
21566 D(p->level--);
21567 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021568 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021569 asdl_seq * _res = NULL;
21570 int _mark = p->mark;
21571 { // expression _loop0_6
21572 if (p->error_indicator) {
21573 D(p->level--);
21574 return NULL;
21575 }
21576 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21577 expr_ty elem;
21578 asdl_seq * seq;
21579 if (
21580 (elem = expression_rule(p)) // expression
21581 &&
21582 (seq = _loop0_6_rule(p)) // _loop0_6
21583 )
21584 {
21585 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21586 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21587 goto done;
21588 }
21589 p->mark = _mark;
21590 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21592 }
21593 _res = NULL;
21594 done:
21595 D(p->level--);
21596 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021597}
21598
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021599// _loop0_8: ',' expression
21600static asdl_seq *
21601_loop0_8_rule(Parser *p)
21602{
21603 D(p->level++);
21604 if (p->error_indicator) {
21605 D(p->level--);
21606 return NULL;
21607 }
21608 void *_res = NULL;
21609 int _mark = p->mark;
21610 int _start_mark = p->mark;
21611 void **_children = PyMem_Malloc(sizeof(void *));
21612 if (!_children) {
21613 p->error_indicator = 1;
21614 PyErr_NoMemory();
21615 D(p->level--);
21616 return NULL;
21617 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021618 Py_ssize_t _children_capacity = 1;
21619 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021620 { // ',' expression
21621 if (p->error_indicator) {
21622 D(p->level--);
21623 return NULL;
21624 }
21625 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21626 Token * _literal;
21627 expr_ty elem;
21628 while (
21629 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21630 &&
21631 (elem = expression_rule(p)) // expression
21632 )
21633 {
21634 _res = elem;
21635 if (_res == NULL && PyErr_Occurred()) {
21636 p->error_indicator = 1;
21637 PyMem_Free(_children);
21638 D(p->level--);
21639 return NULL;
21640 }
21641 if (_n == _children_capacity) {
21642 _children_capacity *= 2;
21643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21644 if (!_new_children) {
21645 p->error_indicator = 1;
21646 PyErr_NoMemory();
21647 D(p->level--);
21648 return NULL;
21649 }
21650 _children = _new_children;
21651 }
21652 _children[_n++] = _res;
21653 _mark = p->mark;
21654 }
21655 p->mark = _mark;
21656 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021659 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021660 if (!_seq) {
21661 PyMem_Free(_children);
21662 p->error_indicator = 1;
21663 PyErr_NoMemory();
21664 D(p->level--);
21665 return NULL;
21666 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021667 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021668 PyMem_Free(_children);
21669 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21670 D(p->level--);
21671 return _seq;
21672}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021673
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021674// _gather_7: expression _loop0_8
21675static asdl_seq *
21676_gather_7_rule(Parser *p)
21677{
21678 D(p->level++);
21679 if (p->error_indicator) {
21680 D(p->level--);
21681 return NULL;
21682 }
21683 asdl_seq * _res = NULL;
21684 int _mark = p->mark;
21685 { // expression _loop0_8
21686 if (p->error_indicator) {
21687 D(p->level--);
21688 return NULL;
21689 }
21690 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21691 expr_ty elem;
21692 asdl_seq * seq;
21693 if (
21694 (elem = expression_rule(p)) // expression
21695 &&
21696 (seq = _loop0_8_rule(p)) // _loop0_8
21697 )
21698 {
21699 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21700 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21701 goto done;
21702 }
21703 p->mark = _mark;
21704 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21706 }
21707 _res = NULL;
21708 done:
21709 D(p->level--);
21710 return _res;
21711}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021712
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021713// _loop0_10: ',' expression
21714static asdl_seq *
21715_loop0_10_rule(Parser *p)
21716{
21717 D(p->level++);
21718 if (p->error_indicator) {
21719 D(p->level--);
21720 return NULL;
21721 }
21722 void *_res = NULL;
21723 int _mark = p->mark;
21724 int _start_mark = p->mark;
21725 void **_children = PyMem_Malloc(sizeof(void *));
21726 if (!_children) {
21727 p->error_indicator = 1;
21728 PyErr_NoMemory();
21729 D(p->level--);
21730 return NULL;
21731 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021732 Py_ssize_t _children_capacity = 1;
21733 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021734 { // ',' expression
21735 if (p->error_indicator) {
21736 D(p->level--);
21737 return NULL;
21738 }
21739 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21740 Token * _literal;
21741 expr_ty elem;
21742 while (
21743 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21744 &&
21745 (elem = expression_rule(p)) // expression
21746 )
21747 {
21748 _res = elem;
21749 if (_res == NULL && PyErr_Occurred()) {
21750 p->error_indicator = 1;
21751 PyMem_Free(_children);
21752 D(p->level--);
21753 return NULL;
21754 }
21755 if (_n == _children_capacity) {
21756 _children_capacity *= 2;
21757 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21758 if (!_new_children) {
21759 p->error_indicator = 1;
21760 PyErr_NoMemory();
21761 D(p->level--);
21762 return NULL;
21763 }
21764 _children = _new_children;
21765 }
21766 _children[_n++] = _res;
21767 _mark = p->mark;
21768 }
21769 p->mark = _mark;
21770 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21772 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021773 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021774 if (!_seq) {
21775 PyMem_Free(_children);
21776 p->error_indicator = 1;
21777 PyErr_NoMemory();
21778 D(p->level--);
21779 return NULL;
21780 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021781 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021782 PyMem_Free(_children);
21783 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21784 D(p->level--);
21785 return _seq;
21786}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021787
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021788// _gather_9: expression _loop0_10
21789static asdl_seq *
21790_gather_9_rule(Parser *p)
21791{
21792 D(p->level++);
21793 if (p->error_indicator) {
21794 D(p->level--);
21795 return NULL;
21796 }
21797 asdl_seq * _res = NULL;
21798 int _mark = p->mark;
21799 { // expression _loop0_10
21800 if (p->error_indicator) {
21801 D(p->level--);
21802 return NULL;
21803 }
21804 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21805 expr_ty elem;
21806 asdl_seq * seq;
21807 if (
21808 (elem = expression_rule(p)) // expression
21809 &&
21810 (seq = _loop0_10_rule(p)) // _loop0_10
21811 )
21812 {
21813 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21814 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21815 goto done;
21816 }
21817 p->mark = _mark;
21818 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21820 }
21821 _res = NULL;
21822 done:
21823 D(p->level--);
21824 return _res;
21825}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021826
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021827// _loop1_11: statement
21828static asdl_seq *
21829_loop1_11_rule(Parser *p)
21830{
21831 D(p->level++);
21832 if (p->error_indicator) {
21833 D(p->level--);
21834 return NULL;
21835 }
21836 void *_res = NULL;
21837 int _mark = p->mark;
21838 int _start_mark = p->mark;
21839 void **_children = PyMem_Malloc(sizeof(void *));
21840 if (!_children) {
21841 p->error_indicator = 1;
21842 PyErr_NoMemory();
21843 D(p->level--);
21844 return NULL;
21845 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021846 Py_ssize_t _children_capacity = 1;
21847 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021848 { // statement
21849 if (p->error_indicator) {
21850 D(p->level--);
21851 return NULL;
21852 }
21853 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021854 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021855 while (
21856 (statement_var = statement_rule(p)) // statement
21857 )
21858 {
21859 _res = statement_var;
21860 if (_n == _children_capacity) {
21861 _children_capacity *= 2;
21862 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21863 if (!_new_children) {
21864 p->error_indicator = 1;
21865 PyErr_NoMemory();
21866 D(p->level--);
21867 return NULL;
21868 }
21869 _children = _new_children;
21870 }
21871 _children[_n++] = _res;
21872 _mark = p->mark;
21873 }
21874 p->mark = _mark;
21875 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21877 }
21878 if (_n == 0 || p->error_indicator) {
21879 PyMem_Free(_children);
21880 D(p->level--);
21881 return NULL;
21882 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021883 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021884 if (!_seq) {
21885 PyMem_Free(_children);
21886 p->error_indicator = 1;
21887 PyErr_NoMemory();
21888 D(p->level--);
21889 return NULL;
21890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021891 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021892 PyMem_Free(_children);
21893 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21894 D(p->level--);
21895 return _seq;
21896}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021897
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021898// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021899static asdl_seq *
21900_loop0_13_rule(Parser *p)
21901{
21902 D(p->level++);
21903 if (p->error_indicator) {
21904 D(p->level--);
21905 return NULL;
21906 }
21907 void *_res = NULL;
21908 int _mark = p->mark;
21909 int _start_mark = p->mark;
21910 void **_children = PyMem_Malloc(sizeof(void *));
21911 if (!_children) {
21912 p->error_indicator = 1;
21913 PyErr_NoMemory();
21914 D(p->level--);
21915 return NULL;
21916 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021917 Py_ssize_t _children_capacity = 1;
21918 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021919 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021920 if (p->error_indicator) {
21921 D(p->level--);
21922 return NULL;
21923 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021924 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925 Token * _literal;
21926 stmt_ty elem;
21927 while (
21928 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21929 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021930 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021931 )
21932 {
21933 _res = elem;
21934 if (_res == NULL && PyErr_Occurred()) {
21935 p->error_indicator = 1;
21936 PyMem_Free(_children);
21937 D(p->level--);
21938 return NULL;
21939 }
21940 if (_n == _children_capacity) {
21941 _children_capacity *= 2;
21942 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21943 if (!_new_children) {
21944 p->error_indicator = 1;
21945 PyErr_NoMemory();
21946 D(p->level--);
21947 return NULL;
21948 }
21949 _children = _new_children;
21950 }
21951 _children[_n++] = _res;
21952 _mark = p->mark;
21953 }
21954 p->mark = _mark;
21955 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021957 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021958 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021959 if (!_seq) {
21960 PyMem_Free(_children);
21961 p->error_indicator = 1;
21962 PyErr_NoMemory();
21963 D(p->level--);
21964 return NULL;
21965 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021966 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021967 PyMem_Free(_children);
21968 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21969 D(p->level--);
21970 return _seq;
21971}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021972
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021973// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021974static asdl_seq *
21975_gather_12_rule(Parser *p)
21976{
21977 D(p->level++);
21978 if (p->error_indicator) {
21979 D(p->level--);
21980 return NULL;
21981 }
21982 asdl_seq * _res = NULL;
21983 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021984 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021985 if (p->error_indicator) {
21986 D(p->level--);
21987 return NULL;
21988 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021989 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 +010021990 stmt_ty elem;
21991 asdl_seq * seq;
21992 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021993 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021994 &&
21995 (seq = _loop0_13_rule(p)) // _loop0_13
21996 )
21997 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021998 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 +010021999 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22000 goto done;
22001 }
22002 p->mark = _mark;
22003 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022005 }
22006 _res = NULL;
22007 done:
22008 D(p->level--);
22009 return _res;
22010}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022011
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022012// _tmp_14: 'import' | 'from'
22013static void *
22014_tmp_14_rule(Parser *p)
22015{
22016 D(p->level++);
22017 if (p->error_indicator) {
22018 D(p->level--);
22019 return NULL;
22020 }
22021 void * _res = NULL;
22022 int _mark = p->mark;
22023 { // 'import'
22024 if (p->error_indicator) {
22025 D(p->level--);
22026 return NULL;
22027 }
22028 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22029 Token * _keyword;
22030 if (
22031 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22032 )
22033 {
22034 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22035 _res = _keyword;
22036 goto done;
22037 }
22038 p->mark = _mark;
22039 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22041 }
22042 { // 'from'
22043 if (p->error_indicator) {
22044 D(p->level--);
22045 return NULL;
22046 }
22047 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22048 Token * _keyword;
22049 if (
22050 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22051 )
22052 {
22053 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22054 _res = _keyword;
22055 goto done;
22056 }
22057 p->mark = _mark;
22058 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22060 }
22061 _res = NULL;
22062 done:
22063 D(p->level--);
22064 return _res;
22065}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022066
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022067// _tmp_15: 'def' | '@' | ASYNC
22068static void *
22069_tmp_15_rule(Parser *p)
22070{
22071 D(p->level++);
22072 if (p->error_indicator) {
22073 D(p->level--);
22074 return NULL;
22075 }
22076 void * _res = NULL;
22077 int _mark = p->mark;
22078 { // 'def'
22079 if (p->error_indicator) {
22080 D(p->level--);
22081 return NULL;
22082 }
22083 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22084 Token * _keyword;
22085 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022086 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022087 )
22088 {
22089 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22090 _res = _keyword;
22091 goto done;
22092 }
22093 p->mark = _mark;
22094 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22096 }
22097 { // '@'
22098 if (p->error_indicator) {
22099 D(p->level--);
22100 return NULL;
22101 }
22102 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22103 Token * _literal;
22104 if (
22105 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22106 )
22107 {
22108 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22109 _res = _literal;
22110 goto done;
22111 }
22112 p->mark = _mark;
22113 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22115 }
22116 { // ASYNC
22117 if (p->error_indicator) {
22118 D(p->level--);
22119 return NULL;
22120 }
22121 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22122 Token * async_var;
22123 if (
22124 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22125 )
22126 {
22127 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22128 _res = async_var;
22129 goto done;
22130 }
22131 p->mark = _mark;
22132 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22134 }
22135 _res = NULL;
22136 done:
22137 D(p->level--);
22138 return _res;
22139}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022140
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022141// _tmp_16: 'class' | '@'
22142static void *
22143_tmp_16_rule(Parser *p)
22144{
22145 D(p->level++);
22146 if (p->error_indicator) {
22147 D(p->level--);
22148 return NULL;
22149 }
22150 void * _res = NULL;
22151 int _mark = p->mark;
22152 { // 'class'
22153 if (p->error_indicator) {
22154 D(p->level--);
22155 return NULL;
22156 }
22157 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22158 Token * _keyword;
22159 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022160 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022161 )
22162 {
22163 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22164 _res = _keyword;
22165 goto done;
22166 }
22167 p->mark = _mark;
22168 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22170 }
22171 { // '@'
22172 if (p->error_indicator) {
22173 D(p->level--);
22174 return NULL;
22175 }
22176 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22177 Token * _literal;
22178 if (
22179 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22180 )
22181 {
22182 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22183 _res = _literal;
22184 goto done;
22185 }
22186 p->mark = _mark;
22187 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22189 }
22190 _res = NULL;
22191 done:
22192 D(p->level--);
22193 return _res;
22194}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022195
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022196// _tmp_17: 'with' | ASYNC
22197static void *
22198_tmp_17_rule(Parser *p)
22199{
22200 D(p->level++);
22201 if (p->error_indicator) {
22202 D(p->level--);
22203 return NULL;
22204 }
22205 void * _res = NULL;
22206 int _mark = p->mark;
22207 { // 'with'
22208 if (p->error_indicator) {
22209 D(p->level--);
22210 return NULL;
22211 }
22212 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22213 Token * _keyword;
22214 if (
22215 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22216 )
22217 {
22218 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22219 _res = _keyword;
22220 goto done;
22221 }
22222 p->mark = _mark;
22223 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22225 }
22226 { // ASYNC
22227 if (p->error_indicator) {
22228 D(p->level--);
22229 return NULL;
22230 }
22231 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22232 Token * async_var;
22233 if (
22234 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22235 )
22236 {
22237 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22238 _res = async_var;
22239 goto done;
22240 }
22241 p->mark = _mark;
22242 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22244 }
22245 _res = NULL;
22246 done:
22247 D(p->level--);
22248 return _res;
22249}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022250
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022251// _tmp_18: 'for' | ASYNC
22252static void *
22253_tmp_18_rule(Parser *p)
22254{
22255 D(p->level++);
22256 if (p->error_indicator) {
22257 D(p->level--);
22258 return NULL;
22259 }
22260 void * _res = NULL;
22261 int _mark = p->mark;
22262 { // 'for'
22263 if (p->error_indicator) {
22264 D(p->level--);
22265 return NULL;
22266 }
22267 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22268 Token * _keyword;
22269 if (
22270 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22271 )
22272 {
22273 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22274 _res = _keyword;
22275 goto done;
22276 }
22277 p->mark = _mark;
22278 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22280 }
22281 { // ASYNC
22282 if (p->error_indicator) {
22283 D(p->level--);
22284 return NULL;
22285 }
22286 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22287 Token * async_var;
22288 if (
22289 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22290 )
22291 {
22292 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22293 _res = async_var;
22294 goto done;
22295 }
22296 p->mark = _mark;
22297 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22299 }
22300 _res = NULL;
22301 done:
22302 D(p->level--);
22303 return _res;
22304}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022305
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022306// _tmp_19: '=' annotated_rhs
22307static void *
22308_tmp_19_rule(Parser *p)
22309{
22310 D(p->level++);
22311 if (p->error_indicator) {
22312 D(p->level--);
22313 return NULL;
22314 }
22315 void * _res = NULL;
22316 int _mark = p->mark;
22317 { // '=' annotated_rhs
22318 if (p->error_indicator) {
22319 D(p->level--);
22320 return NULL;
22321 }
22322 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22323 Token * _literal;
22324 expr_ty d;
22325 if (
22326 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22327 &&
22328 (d = annotated_rhs_rule(p)) // annotated_rhs
22329 )
22330 {
22331 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22332 _res = d;
22333 if (_res == NULL && PyErr_Occurred()) {
22334 p->error_indicator = 1;
22335 D(p->level--);
22336 return NULL;
22337 }
22338 goto done;
22339 }
22340 p->mark = _mark;
22341 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22343 }
22344 _res = NULL;
22345 done:
22346 D(p->level--);
22347 return _res;
22348}
22349
22350// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22351static void *
22352_tmp_20_rule(Parser *p)
22353{
22354 D(p->level++);
22355 if (p->error_indicator) {
22356 D(p->level--);
22357 return NULL;
22358 }
22359 void * _res = NULL;
22360 int _mark = p->mark;
22361 { // '(' single_target ')'
22362 if (p->error_indicator) {
22363 D(p->level--);
22364 return NULL;
22365 }
22366 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22367 Token * _literal;
22368 Token * _literal_1;
22369 expr_ty b;
22370 if (
22371 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22372 &&
22373 (b = single_target_rule(p)) // single_target
22374 &&
22375 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22376 )
22377 {
22378 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22379 _res = b;
22380 if (_res == NULL && PyErr_Occurred()) {
22381 p->error_indicator = 1;
22382 D(p->level--);
22383 return NULL;
22384 }
22385 goto done;
22386 }
22387 p->mark = _mark;
22388 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22390 }
22391 { // single_subscript_attribute_target
22392 if (p->error_indicator) {
22393 D(p->level--);
22394 return NULL;
22395 }
22396 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22397 expr_ty single_subscript_attribute_target_var;
22398 if (
22399 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22400 )
22401 {
22402 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22403 _res = single_subscript_attribute_target_var;
22404 goto done;
22405 }
22406 p->mark = _mark;
22407 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22409 }
22410 _res = NULL;
22411 done:
22412 D(p->level--);
22413 return _res;
22414}
22415
22416// _tmp_21: '=' annotated_rhs
22417static void *
22418_tmp_21_rule(Parser *p)
22419{
22420 D(p->level++);
22421 if (p->error_indicator) {
22422 D(p->level--);
22423 return NULL;
22424 }
22425 void * _res = NULL;
22426 int _mark = p->mark;
22427 { // '=' annotated_rhs
22428 if (p->error_indicator) {
22429 D(p->level--);
22430 return NULL;
22431 }
22432 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22433 Token * _literal;
22434 expr_ty d;
22435 if (
22436 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22437 &&
22438 (d = annotated_rhs_rule(p)) // annotated_rhs
22439 )
22440 {
22441 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22442 _res = d;
22443 if (_res == NULL && PyErr_Occurred()) {
22444 p->error_indicator = 1;
22445 D(p->level--);
22446 return NULL;
22447 }
22448 goto done;
22449 }
22450 p->mark = _mark;
22451 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22453 }
22454 _res = NULL;
22455 done:
22456 D(p->level--);
22457 return _res;
22458}
22459
22460// _loop1_22: (star_targets '=')
22461static asdl_seq *
22462_loop1_22_rule(Parser *p)
22463{
22464 D(p->level++);
22465 if (p->error_indicator) {
22466 D(p->level--);
22467 return NULL;
22468 }
22469 void *_res = NULL;
22470 int _mark = p->mark;
22471 int _start_mark = p->mark;
22472 void **_children = PyMem_Malloc(sizeof(void *));
22473 if (!_children) {
22474 p->error_indicator = 1;
22475 PyErr_NoMemory();
22476 D(p->level--);
22477 return NULL;
22478 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022479 Py_ssize_t _children_capacity = 1;
22480 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022481 { // (star_targets '=')
22482 if (p->error_indicator) {
22483 D(p->level--);
22484 return NULL;
22485 }
22486 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022487 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022488 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022489 (_tmp_179_var = _tmp_179_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022490 )
22491 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022492 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022493 if (_n == _children_capacity) {
22494 _children_capacity *= 2;
22495 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22496 if (!_new_children) {
22497 p->error_indicator = 1;
22498 PyErr_NoMemory();
22499 D(p->level--);
22500 return NULL;
22501 }
22502 _children = _new_children;
22503 }
22504 _children[_n++] = _res;
22505 _mark = p->mark;
22506 }
22507 p->mark = _mark;
22508 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22510 }
22511 if (_n == 0 || p->error_indicator) {
22512 PyMem_Free(_children);
22513 D(p->level--);
22514 return NULL;
22515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022516 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022517 if (!_seq) {
22518 PyMem_Free(_children);
22519 p->error_indicator = 1;
22520 PyErr_NoMemory();
22521 D(p->level--);
22522 return NULL;
22523 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022524 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022525 PyMem_Free(_children);
22526 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22527 D(p->level--);
22528 return _seq;
22529}
22530
22531// _tmp_23: yield_expr | star_expressions
22532static void *
22533_tmp_23_rule(Parser *p)
22534{
22535 D(p->level++);
22536 if (p->error_indicator) {
22537 D(p->level--);
22538 return NULL;
22539 }
22540 void * _res = NULL;
22541 int _mark = p->mark;
22542 { // yield_expr
22543 if (p->error_indicator) {
22544 D(p->level--);
22545 return NULL;
22546 }
22547 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22548 expr_ty yield_expr_var;
22549 if (
22550 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22551 )
22552 {
22553 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22554 _res = yield_expr_var;
22555 goto done;
22556 }
22557 p->mark = _mark;
22558 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22560 }
22561 { // star_expressions
22562 if (p->error_indicator) {
22563 D(p->level--);
22564 return NULL;
22565 }
22566 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22567 expr_ty star_expressions_var;
22568 if (
22569 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22570 )
22571 {
22572 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22573 _res = star_expressions_var;
22574 goto done;
22575 }
22576 p->mark = _mark;
22577 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22579 }
22580 _res = NULL;
22581 done:
22582 D(p->level--);
22583 return _res;
22584}
22585
22586// _tmp_24: yield_expr | star_expressions
22587static void *
22588_tmp_24_rule(Parser *p)
22589{
22590 D(p->level++);
22591 if (p->error_indicator) {
22592 D(p->level--);
22593 return NULL;
22594 }
22595 void * _res = NULL;
22596 int _mark = p->mark;
22597 { // yield_expr
22598 if (p->error_indicator) {
22599 D(p->level--);
22600 return NULL;
22601 }
22602 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22603 expr_ty yield_expr_var;
22604 if (
22605 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22606 )
22607 {
22608 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22609 _res = yield_expr_var;
22610 goto done;
22611 }
22612 p->mark = _mark;
22613 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22615 }
22616 { // star_expressions
22617 if (p->error_indicator) {
22618 D(p->level--);
22619 return NULL;
22620 }
22621 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22622 expr_ty star_expressions_var;
22623 if (
22624 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22625 )
22626 {
22627 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22628 _res = star_expressions_var;
22629 goto done;
22630 }
22631 p->mark = _mark;
22632 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22634 }
22635 _res = NULL;
22636 done:
22637 D(p->level--);
22638 return _res;
22639}
22640
22641// _loop0_26: ',' NAME
22642static asdl_seq *
22643_loop0_26_rule(Parser *p)
22644{
22645 D(p->level++);
22646 if (p->error_indicator) {
22647 D(p->level--);
22648 return NULL;
22649 }
22650 void *_res = NULL;
22651 int _mark = p->mark;
22652 int _start_mark = p->mark;
22653 void **_children = PyMem_Malloc(sizeof(void *));
22654 if (!_children) {
22655 p->error_indicator = 1;
22656 PyErr_NoMemory();
22657 D(p->level--);
22658 return NULL;
22659 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022660 Py_ssize_t _children_capacity = 1;
22661 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022662 { // ',' NAME
22663 if (p->error_indicator) {
22664 D(p->level--);
22665 return NULL;
22666 }
22667 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22668 Token * _literal;
22669 expr_ty elem;
22670 while (
22671 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22672 &&
22673 (elem = _PyPegen_name_token(p)) // NAME
22674 )
22675 {
22676 _res = elem;
22677 if (_res == NULL && PyErr_Occurred()) {
22678 p->error_indicator = 1;
22679 PyMem_Free(_children);
22680 D(p->level--);
22681 return NULL;
22682 }
22683 if (_n == _children_capacity) {
22684 _children_capacity *= 2;
22685 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22686 if (!_new_children) {
22687 p->error_indicator = 1;
22688 PyErr_NoMemory();
22689 D(p->level--);
22690 return NULL;
22691 }
22692 _children = _new_children;
22693 }
22694 _children[_n++] = _res;
22695 _mark = p->mark;
22696 }
22697 p->mark = _mark;
22698 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022701 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022702 if (!_seq) {
22703 PyMem_Free(_children);
22704 p->error_indicator = 1;
22705 PyErr_NoMemory();
22706 D(p->level--);
22707 return NULL;
22708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022709 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022710 PyMem_Free(_children);
22711 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22712 D(p->level--);
22713 return _seq;
22714}
22715
22716// _gather_25: NAME _loop0_26
22717static asdl_seq *
22718_gather_25_rule(Parser *p)
22719{
22720 D(p->level++);
22721 if (p->error_indicator) {
22722 D(p->level--);
22723 return NULL;
22724 }
22725 asdl_seq * _res = NULL;
22726 int _mark = p->mark;
22727 { // NAME _loop0_26
22728 if (p->error_indicator) {
22729 D(p->level--);
22730 return NULL;
22731 }
22732 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22733 expr_ty elem;
22734 asdl_seq * seq;
22735 if (
22736 (elem = _PyPegen_name_token(p)) // NAME
22737 &&
22738 (seq = _loop0_26_rule(p)) // _loop0_26
22739 )
22740 {
22741 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22742 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22743 goto done;
22744 }
22745 p->mark = _mark;
22746 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22748 }
22749 _res = NULL;
22750 done:
22751 D(p->level--);
22752 return _res;
22753}
22754
22755// _loop0_28: ',' NAME
22756static asdl_seq *
22757_loop0_28_rule(Parser *p)
22758{
22759 D(p->level++);
22760 if (p->error_indicator) {
22761 D(p->level--);
22762 return NULL;
22763 }
22764 void *_res = NULL;
22765 int _mark = p->mark;
22766 int _start_mark = p->mark;
22767 void **_children = PyMem_Malloc(sizeof(void *));
22768 if (!_children) {
22769 p->error_indicator = 1;
22770 PyErr_NoMemory();
22771 D(p->level--);
22772 return NULL;
22773 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022774 Py_ssize_t _children_capacity = 1;
22775 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022776 { // ',' NAME
22777 if (p->error_indicator) {
22778 D(p->level--);
22779 return NULL;
22780 }
22781 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22782 Token * _literal;
22783 expr_ty elem;
22784 while (
22785 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22786 &&
22787 (elem = _PyPegen_name_token(p)) // NAME
22788 )
22789 {
22790 _res = elem;
22791 if (_res == NULL && PyErr_Occurred()) {
22792 p->error_indicator = 1;
22793 PyMem_Free(_children);
22794 D(p->level--);
22795 return NULL;
22796 }
22797 if (_n == _children_capacity) {
22798 _children_capacity *= 2;
22799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22800 if (!_new_children) {
22801 p->error_indicator = 1;
22802 PyErr_NoMemory();
22803 D(p->level--);
22804 return NULL;
22805 }
22806 _children = _new_children;
22807 }
22808 _children[_n++] = _res;
22809 _mark = p->mark;
22810 }
22811 p->mark = _mark;
22812 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22814 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022815 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022816 if (!_seq) {
22817 PyMem_Free(_children);
22818 p->error_indicator = 1;
22819 PyErr_NoMemory();
22820 D(p->level--);
22821 return NULL;
22822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022823 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824 PyMem_Free(_children);
22825 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22826 D(p->level--);
22827 return _seq;
22828}
22829
22830// _gather_27: NAME _loop0_28
22831static asdl_seq *
22832_gather_27_rule(Parser *p)
22833{
22834 D(p->level++);
22835 if (p->error_indicator) {
22836 D(p->level--);
22837 return NULL;
22838 }
22839 asdl_seq * _res = NULL;
22840 int _mark = p->mark;
22841 { // NAME _loop0_28
22842 if (p->error_indicator) {
22843 D(p->level--);
22844 return NULL;
22845 }
22846 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22847 expr_ty elem;
22848 asdl_seq * seq;
22849 if (
22850 (elem = _PyPegen_name_token(p)) // NAME
22851 &&
22852 (seq = _loop0_28_rule(p)) // _loop0_28
22853 )
22854 {
22855 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22856 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22857 goto done;
22858 }
22859 p->mark = _mark;
22860 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22862 }
22863 _res = NULL;
22864 done:
22865 D(p->level--);
22866 return _res;
22867}
22868
22869// _tmp_29: ',' expression
22870static void *
22871_tmp_29_rule(Parser *p)
22872{
22873 D(p->level++);
22874 if (p->error_indicator) {
22875 D(p->level--);
22876 return NULL;
22877 }
22878 void * _res = NULL;
22879 int _mark = p->mark;
22880 { // ',' expression
22881 if (p->error_indicator) {
22882 D(p->level--);
22883 return NULL;
22884 }
22885 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22886 Token * _literal;
22887 expr_ty z;
22888 if (
22889 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22890 &&
22891 (z = expression_rule(p)) // expression
22892 )
22893 {
22894 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22895 _res = z;
22896 if (_res == NULL && PyErr_Occurred()) {
22897 p->error_indicator = 1;
22898 D(p->level--);
22899 return NULL;
22900 }
22901 goto done;
22902 }
22903 p->mark = _mark;
22904 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22906 }
22907 _res = NULL;
22908 done:
22909 D(p->level--);
22910 return _res;
22911}
22912
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022913// _tmp_30: ';' | NEWLINE
22914static void *
22915_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022916{
22917 D(p->level++);
22918 if (p->error_indicator) {
22919 D(p->level--);
22920 return NULL;
22921 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022922 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022923 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022924 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022925 if (p->error_indicator) {
22926 D(p->level--);
22927 return NULL;
22928 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022929 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22930 Token * _literal;
22931 if (
22932 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022933 )
22934 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022935 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22936 _res = _literal;
22937 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022938 }
22939 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022940 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022942 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022943 { // NEWLINE
22944 if (p->error_indicator) {
22945 D(p->level--);
22946 return NULL;
22947 }
22948 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22949 Token * newline_var;
22950 if (
22951 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22952 )
22953 {
22954 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22955 _res = newline_var;
22956 goto done;
22957 }
22958 p->mark = _mark;
22959 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022961 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022962 _res = NULL;
22963 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022964 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022965 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966}
22967
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022968// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022969static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022970_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022971{
22972 D(p->level++);
22973 if (p->error_indicator) {
22974 D(p->level--);
22975 return NULL;
22976 }
22977 void *_res = NULL;
22978 int _mark = p->mark;
22979 int _start_mark = p->mark;
22980 void **_children = PyMem_Malloc(sizeof(void *));
22981 if (!_children) {
22982 p->error_indicator = 1;
22983 PyErr_NoMemory();
22984 D(p->level--);
22985 return NULL;
22986 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022987 Py_ssize_t _children_capacity = 1;
22988 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022989 { // ('.' | '...')
22990 if (p->error_indicator) {
22991 D(p->level--);
22992 return NULL;
22993 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022994 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022995 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022996 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022997 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022998 )
22999 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070023000 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023001 if (_n == _children_capacity) {
23002 _children_capacity *= 2;
23003 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23004 if (!_new_children) {
23005 p->error_indicator = 1;
23006 PyErr_NoMemory();
23007 D(p->level--);
23008 return NULL;
23009 }
23010 _children = _new_children;
23011 }
23012 _children[_n++] = _res;
23013 _mark = p->mark;
23014 }
23015 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023016 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023019 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023020 if (!_seq) {
23021 PyMem_Free(_children);
23022 p->error_indicator = 1;
23023 PyErr_NoMemory();
23024 D(p->level--);
23025 return NULL;
23026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023027 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023028 PyMem_Free(_children);
23029 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23030 D(p->level--);
23031 return _seq;
23032}
23033
23034// _loop1_32: ('.' | '...')
23035static asdl_seq *
23036_loop1_32_rule(Parser *p)
23037{
23038 D(p->level++);
23039 if (p->error_indicator) {
23040 D(p->level--);
23041 return NULL;
23042 }
23043 void *_res = NULL;
23044 int _mark = p->mark;
23045 int _start_mark = p->mark;
23046 void **_children = PyMem_Malloc(sizeof(void *));
23047 if (!_children) {
23048 p->error_indicator = 1;
23049 PyErr_NoMemory();
23050 D(p->level--);
23051 return NULL;
23052 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023053 Py_ssize_t _children_capacity = 1;
23054 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023055 { // ('.' | '...')
23056 if (p->error_indicator) {
23057 D(p->level--);
23058 return NULL;
23059 }
23060 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070023061 void *_tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023062 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070023063 (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023064 )
23065 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070023066 _res = _tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023067 if (_n == _children_capacity) {
23068 _children_capacity *= 2;
23069 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23070 if (!_new_children) {
23071 p->error_indicator = 1;
23072 PyErr_NoMemory();
23073 D(p->level--);
23074 return NULL;
23075 }
23076 _children = _new_children;
23077 }
23078 _children[_n++] = _res;
23079 _mark = p->mark;
23080 }
23081 p->mark = _mark;
23082 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23084 }
23085 if (_n == 0 || p->error_indicator) {
23086 PyMem_Free(_children);
23087 D(p->level--);
23088 return NULL;
23089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023090 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023091 if (!_seq) {
23092 PyMem_Free(_children);
23093 p->error_indicator = 1;
23094 PyErr_NoMemory();
23095 D(p->level--);
23096 return NULL;
23097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023098 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023099 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023100 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023101 D(p->level--);
23102 return _seq;
23103}
23104
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023105// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023106static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023107_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023108{
23109 D(p->level++);
23110 if (p->error_indicator) {
23111 D(p->level--);
23112 return NULL;
23113 }
23114 void *_res = NULL;
23115 int _mark = p->mark;
23116 int _start_mark = p->mark;
23117 void **_children = PyMem_Malloc(sizeof(void *));
23118 if (!_children) {
23119 p->error_indicator = 1;
23120 PyErr_NoMemory();
23121 D(p->level--);
23122 return NULL;
23123 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023124 Py_ssize_t _children_capacity = 1;
23125 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023126 { // ',' import_from_as_name
23127 if (p->error_indicator) {
23128 D(p->level--);
23129 return NULL;
23130 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023131 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 +010023132 Token * _literal;
23133 alias_ty elem;
23134 while (
23135 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23136 &&
23137 (elem = import_from_as_name_rule(p)) // import_from_as_name
23138 )
23139 {
23140 _res = elem;
23141 if (_res == NULL && PyErr_Occurred()) {
23142 p->error_indicator = 1;
23143 PyMem_Free(_children);
23144 D(p->level--);
23145 return NULL;
23146 }
23147 if (_n == _children_capacity) {
23148 _children_capacity *= 2;
23149 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23150 if (!_new_children) {
23151 p->error_indicator = 1;
23152 PyErr_NoMemory();
23153 D(p->level--);
23154 return NULL;
23155 }
23156 _children = _new_children;
23157 }
23158 _children[_n++] = _res;
23159 _mark = p->mark;
23160 }
23161 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023162 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023165 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023166 if (!_seq) {
23167 PyMem_Free(_children);
23168 p->error_indicator = 1;
23169 PyErr_NoMemory();
23170 D(p->level--);
23171 return NULL;
23172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023173 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023174 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023175 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023176 D(p->level--);
23177 return _seq;
23178}
23179
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023180// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023181static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023182_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183{
23184 D(p->level++);
23185 if (p->error_indicator) {
23186 D(p->level--);
23187 return NULL;
23188 }
23189 asdl_seq * _res = NULL;
23190 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023191 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023192 if (p->error_indicator) {
23193 D(p->level--);
23194 return NULL;
23195 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023196 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 +010023197 alias_ty elem;
23198 asdl_seq * seq;
23199 if (
23200 (elem = import_from_as_name_rule(p)) // import_from_as_name
23201 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023202 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023203 )
23204 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023205 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 +010023206 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23207 goto done;
23208 }
23209 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023210 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023212 }
23213 _res = NULL;
23214 done:
23215 D(p->level--);
23216 return _res;
23217}
23218
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023219// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023220static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023221_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023222{
23223 D(p->level++);
23224 if (p->error_indicator) {
23225 D(p->level--);
23226 return NULL;
23227 }
23228 void * _res = NULL;
23229 int _mark = p->mark;
23230 { // 'as' NAME
23231 if (p->error_indicator) {
23232 D(p->level--);
23233 return NULL;
23234 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023236 Token * _keyword;
23237 expr_ty z;
23238 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023239 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240 &&
23241 (z = _PyPegen_name_token(p)) // NAME
23242 )
23243 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023244 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 +010023245 _res = z;
23246 if (_res == NULL && PyErr_Occurred()) {
23247 p->error_indicator = 1;
23248 D(p->level--);
23249 return NULL;
23250 }
23251 goto done;
23252 }
23253 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023254 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23256 }
23257 _res = NULL;
23258 done:
23259 D(p->level--);
23260 return _res;
23261}
23262
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023263// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023264static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023265_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023266{
23267 D(p->level++);
23268 if (p->error_indicator) {
23269 D(p->level--);
23270 return NULL;
23271 }
23272 void *_res = NULL;
23273 int _mark = p->mark;
23274 int _start_mark = p->mark;
23275 void **_children = PyMem_Malloc(sizeof(void *));
23276 if (!_children) {
23277 p->error_indicator = 1;
23278 PyErr_NoMemory();
23279 D(p->level--);
23280 return NULL;
23281 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023282 Py_ssize_t _children_capacity = 1;
23283 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023284 { // ',' dotted_as_name
23285 if (p->error_indicator) {
23286 D(p->level--);
23287 return NULL;
23288 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023289 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 +010023290 Token * _literal;
23291 alias_ty elem;
23292 while (
23293 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23294 &&
23295 (elem = dotted_as_name_rule(p)) // dotted_as_name
23296 )
23297 {
23298 _res = elem;
23299 if (_res == NULL && PyErr_Occurred()) {
23300 p->error_indicator = 1;
23301 PyMem_Free(_children);
23302 D(p->level--);
23303 return NULL;
23304 }
23305 if (_n == _children_capacity) {
23306 _children_capacity *= 2;
23307 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23308 if (!_new_children) {
23309 p->error_indicator = 1;
23310 PyErr_NoMemory();
23311 D(p->level--);
23312 return NULL;
23313 }
23314 _children = _new_children;
23315 }
23316 _children[_n++] = _res;
23317 _mark = p->mark;
23318 }
23319 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023320 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023323 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023324 if (!_seq) {
23325 PyMem_Free(_children);
23326 p->error_indicator = 1;
23327 PyErr_NoMemory();
23328 D(p->level--);
23329 return NULL;
23330 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023331 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023332 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023333 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023334 D(p->level--);
23335 return _seq;
23336}
23337
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023338// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023339static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023340_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023341{
23342 D(p->level++);
23343 if (p->error_indicator) {
23344 D(p->level--);
23345 return NULL;
23346 }
23347 asdl_seq * _res = NULL;
23348 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023349 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023350 if (p->error_indicator) {
23351 D(p->level--);
23352 return NULL;
23353 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023354 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 +010023355 alias_ty elem;
23356 asdl_seq * seq;
23357 if (
23358 (elem = dotted_as_name_rule(p)) // dotted_as_name
23359 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023360 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023361 )
23362 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023363 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 +010023364 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23365 goto done;
23366 }
23367 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023368 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023370 }
23371 _res = NULL;
23372 done:
23373 D(p->level--);
23374 return _res;
23375}
23376
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023377// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023379_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023380{
23381 D(p->level++);
23382 if (p->error_indicator) {
23383 D(p->level--);
23384 return NULL;
23385 }
23386 void * _res = NULL;
23387 int _mark = p->mark;
23388 { // 'as' NAME
23389 if (p->error_indicator) {
23390 D(p->level--);
23391 return NULL;
23392 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023393 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023394 Token * _keyword;
23395 expr_ty z;
23396 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023397 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023398 &&
23399 (z = _PyPegen_name_token(p)) // NAME
23400 )
23401 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023402 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 +010023403 _res = z;
23404 if (_res == NULL && PyErr_Occurred()) {
23405 p->error_indicator = 1;
23406 D(p->level--);
23407 return NULL;
23408 }
23409 goto done;
23410 }
23411 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023412 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23414 }
23415 _res = NULL;
23416 done:
23417 D(p->level--);
23418 return _res;
23419}
23420
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023421// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023422static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023423_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023424{
23425 D(p->level++);
23426 if (p->error_indicator) {
23427 D(p->level--);
23428 return NULL;
23429 }
23430 void *_res = NULL;
23431 int _mark = p->mark;
23432 int _start_mark = p->mark;
23433 void **_children = PyMem_Malloc(sizeof(void *));
23434 if (!_children) {
23435 p->error_indicator = 1;
23436 PyErr_NoMemory();
23437 D(p->level--);
23438 return NULL;
23439 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023440 Py_ssize_t _children_capacity = 1;
23441 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023442 { // ',' with_item
23443 if (p->error_indicator) {
23444 D(p->level--);
23445 return NULL;
23446 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023447 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023448 Token * _literal;
23449 withitem_ty elem;
23450 while (
23451 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23452 &&
23453 (elem = with_item_rule(p)) // with_item
23454 )
23455 {
23456 _res = elem;
23457 if (_res == NULL && PyErr_Occurred()) {
23458 p->error_indicator = 1;
23459 PyMem_Free(_children);
23460 D(p->level--);
23461 return NULL;
23462 }
23463 if (_n == _children_capacity) {
23464 _children_capacity *= 2;
23465 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23466 if (!_new_children) {
23467 p->error_indicator = 1;
23468 PyErr_NoMemory();
23469 D(p->level--);
23470 return NULL;
23471 }
23472 _children = _new_children;
23473 }
23474 _children[_n++] = _res;
23475 _mark = p->mark;
23476 }
23477 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023478 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023481 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023482 if (!_seq) {
23483 PyMem_Free(_children);
23484 p->error_indicator = 1;
23485 PyErr_NoMemory();
23486 D(p->level--);
23487 return NULL;
23488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023489 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023490 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023491 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023492 D(p->level--);
23493 return _seq;
23494}
23495
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023496// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023497static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023498_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023499{
23500 D(p->level++);
23501 if (p->error_indicator) {
23502 D(p->level--);
23503 return NULL;
23504 }
23505 asdl_seq * _res = NULL;
23506 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023507 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023508 if (p->error_indicator) {
23509 D(p->level--);
23510 return NULL;
23511 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023512 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 +010023513 withitem_ty elem;
23514 asdl_seq * seq;
23515 if (
23516 (elem = with_item_rule(p)) // with_item
23517 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023518 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519 )
23520 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023521 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 +010023522 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23523 goto done;
23524 }
23525 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023526 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023528 }
23529 _res = NULL;
23530 done:
23531 D(p->level--);
23532 return _res;
23533}
23534
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023535// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023536static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023537_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023538{
23539 D(p->level++);
23540 if (p->error_indicator) {
23541 D(p->level--);
23542 return NULL;
23543 }
23544 void *_res = NULL;
23545 int _mark = p->mark;
23546 int _start_mark = p->mark;
23547 void **_children = PyMem_Malloc(sizeof(void *));
23548 if (!_children) {
23549 p->error_indicator = 1;
23550 PyErr_NoMemory();
23551 D(p->level--);
23552 return NULL;
23553 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023554 Py_ssize_t _children_capacity = 1;
23555 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023556 { // ',' with_item
23557 if (p->error_indicator) {
23558 D(p->level--);
23559 return NULL;
23560 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023561 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023562 Token * _literal;
23563 withitem_ty elem;
23564 while (
23565 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23566 &&
23567 (elem = with_item_rule(p)) // with_item
23568 )
23569 {
23570 _res = elem;
23571 if (_res == NULL && PyErr_Occurred()) {
23572 p->error_indicator = 1;
23573 PyMem_Free(_children);
23574 D(p->level--);
23575 return NULL;
23576 }
23577 if (_n == _children_capacity) {
23578 _children_capacity *= 2;
23579 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23580 if (!_new_children) {
23581 p->error_indicator = 1;
23582 PyErr_NoMemory();
23583 D(p->level--);
23584 return NULL;
23585 }
23586 _children = _new_children;
23587 }
23588 _children[_n++] = _res;
23589 _mark = p->mark;
23590 }
23591 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023592 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23594 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023595 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023596 if (!_seq) {
23597 PyMem_Free(_children);
23598 p->error_indicator = 1;
23599 PyErr_NoMemory();
23600 D(p->level--);
23601 return NULL;
23602 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023603 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023604 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023605 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023606 D(p->level--);
23607 return _seq;
23608}
23609
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023610// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023611static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023612_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023613{
23614 D(p->level++);
23615 if (p->error_indicator) {
23616 D(p->level--);
23617 return NULL;
23618 }
23619 asdl_seq * _res = NULL;
23620 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023621 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023622 if (p->error_indicator) {
23623 D(p->level--);
23624 return NULL;
23625 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023626 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 +010023627 withitem_ty elem;
23628 asdl_seq * seq;
23629 if (
23630 (elem = with_item_rule(p)) // with_item
23631 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023632 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023633 )
23634 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023635 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 +010023636 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23637 goto done;
23638 }
23639 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023640 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023642 }
23643 _res = NULL;
23644 done:
23645 D(p->level--);
23646 return _res;
23647}
23648
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023649// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023650static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023651_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023652{
23653 D(p->level++);
23654 if (p->error_indicator) {
23655 D(p->level--);
23656 return NULL;
23657 }
23658 void *_res = NULL;
23659 int _mark = p->mark;
23660 int _start_mark = p->mark;
23661 void **_children = PyMem_Malloc(sizeof(void *));
23662 if (!_children) {
23663 p->error_indicator = 1;
23664 PyErr_NoMemory();
23665 D(p->level--);
23666 return NULL;
23667 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023668 Py_ssize_t _children_capacity = 1;
23669 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023670 { // ',' with_item
23671 if (p->error_indicator) {
23672 D(p->level--);
23673 return NULL;
23674 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023675 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023676 Token * _literal;
23677 withitem_ty elem;
23678 while (
23679 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23680 &&
23681 (elem = with_item_rule(p)) // with_item
23682 )
23683 {
23684 _res = elem;
23685 if (_res == NULL && PyErr_Occurred()) {
23686 p->error_indicator = 1;
23687 PyMem_Free(_children);
23688 D(p->level--);
23689 return NULL;
23690 }
23691 if (_n == _children_capacity) {
23692 _children_capacity *= 2;
23693 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23694 if (!_new_children) {
23695 p->error_indicator = 1;
23696 PyErr_NoMemory();
23697 D(p->level--);
23698 return NULL;
23699 }
23700 _children = _new_children;
23701 }
23702 _children[_n++] = _res;
23703 _mark = p->mark;
23704 }
23705 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023706 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023709 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023710 if (!_seq) {
23711 PyMem_Free(_children);
23712 p->error_indicator = 1;
23713 PyErr_NoMemory();
23714 D(p->level--);
23715 return NULL;
23716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023717 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023718 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023719 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023720 D(p->level--);
23721 return _seq;
23722}
23723
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023724// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023725static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023726_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023727{
23728 D(p->level++);
23729 if (p->error_indicator) {
23730 D(p->level--);
23731 return NULL;
23732 }
23733 asdl_seq * _res = NULL;
23734 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023735 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736 if (p->error_indicator) {
23737 D(p->level--);
23738 return NULL;
23739 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023740 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 +010023741 withitem_ty elem;
23742 asdl_seq * seq;
23743 if (
23744 (elem = with_item_rule(p)) // with_item
23745 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023746 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747 )
23748 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023749 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 +010023750 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23751 goto done;
23752 }
23753 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023754 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023756 }
23757 _res = NULL;
23758 done:
23759 D(p->level--);
23760 return _res;
23761}
23762
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023763// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023764static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023765_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023766{
23767 D(p->level++);
23768 if (p->error_indicator) {
23769 D(p->level--);
23770 return NULL;
23771 }
23772 void *_res = NULL;
23773 int _mark = p->mark;
23774 int _start_mark = p->mark;
23775 void **_children = PyMem_Malloc(sizeof(void *));
23776 if (!_children) {
23777 p->error_indicator = 1;
23778 PyErr_NoMemory();
23779 D(p->level--);
23780 return NULL;
23781 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023782 Py_ssize_t _children_capacity = 1;
23783 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023784 { // ',' with_item
23785 if (p->error_indicator) {
23786 D(p->level--);
23787 return NULL;
23788 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023789 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023790 Token * _literal;
23791 withitem_ty elem;
23792 while (
23793 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23794 &&
23795 (elem = with_item_rule(p)) // with_item
23796 )
23797 {
23798 _res = elem;
23799 if (_res == NULL && PyErr_Occurred()) {
23800 p->error_indicator = 1;
23801 PyMem_Free(_children);
23802 D(p->level--);
23803 return NULL;
23804 }
23805 if (_n == _children_capacity) {
23806 _children_capacity *= 2;
23807 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23808 if (!_new_children) {
23809 p->error_indicator = 1;
23810 PyErr_NoMemory();
23811 D(p->level--);
23812 return NULL;
23813 }
23814 _children = _new_children;
23815 }
23816 _children[_n++] = _res;
23817 _mark = p->mark;
23818 }
23819 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023820 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023823 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023824 if (!_seq) {
23825 PyMem_Free(_children);
23826 p->error_indicator = 1;
23827 PyErr_NoMemory();
23828 D(p->level--);
23829 return NULL;
23830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023831 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023832 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023833 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023834 D(p->level--);
23835 return _seq;
23836}
23837
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023838// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023839static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023840_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023841{
23842 D(p->level++);
23843 if (p->error_indicator) {
23844 D(p->level--);
23845 return NULL;
23846 }
23847 asdl_seq * _res = NULL;
23848 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023849 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023850 if (p->error_indicator) {
23851 D(p->level--);
23852 return NULL;
23853 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023854 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 +010023855 withitem_ty elem;
23856 asdl_seq * seq;
23857 if (
23858 (elem = with_item_rule(p)) // with_item
23859 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023860 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 )
23862 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023863 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 +010023864 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23865 goto done;
23866 }
23867 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023868 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023870 }
23871 _res = NULL;
23872 done:
23873 D(p->level--);
23874 return _res;
23875}
23876
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023877// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023878static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023879_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023880{
23881 D(p->level++);
23882 if (p->error_indicator) {
23883 D(p->level--);
23884 return NULL;
23885 }
23886 void * _res = NULL;
23887 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023888 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023889 if (p->error_indicator) {
23890 D(p->level--);
23891 return NULL;
23892 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023893 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23894 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023895 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023896 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023897 )
23898 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023899 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23900 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023901 goto done;
23902 }
23903 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023904 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23906 }
23907 { // ')'
23908 if (p->error_indicator) {
23909 D(p->level--);
23910 return NULL;
23911 }
23912 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23913 Token * _literal;
23914 if (
23915 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23916 )
23917 {
23918 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23919 _res = _literal;
23920 goto done;
23921 }
23922 p->mark = _mark;
23923 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23925 }
23926 { // ':'
23927 if (p->error_indicator) {
23928 D(p->level--);
23929 return NULL;
23930 }
23931 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23932 Token * _literal;
23933 if (
23934 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23935 )
23936 {
23937 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23938 _res = _literal;
23939 goto done;
23940 }
23941 p->mark = _mark;
23942 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023944 }
23945 _res = NULL;
23946 done:
23947 D(p->level--);
23948 return _res;
23949}
23950
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023951// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023952static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023953_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023954{
23955 D(p->level++);
23956 if (p->error_indicator) {
23957 D(p->level--);
23958 return NULL;
23959 }
23960 void *_res = NULL;
23961 int _mark = p->mark;
23962 int _start_mark = p->mark;
23963 void **_children = PyMem_Malloc(sizeof(void *));
23964 if (!_children) {
23965 p->error_indicator = 1;
23966 PyErr_NoMemory();
23967 D(p->level--);
23968 return NULL;
23969 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023970 Py_ssize_t _children_capacity = 1;
23971 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023972 { // except_block
23973 if (p->error_indicator) {
23974 D(p->level--);
23975 return NULL;
23976 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023977 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023978 excepthandler_ty except_block_var;
23979 while (
23980 (except_block_var = except_block_rule(p)) // except_block
23981 )
23982 {
23983 _res = except_block_var;
23984 if (_n == _children_capacity) {
23985 _children_capacity *= 2;
23986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23987 if (!_new_children) {
23988 p->error_indicator = 1;
23989 PyErr_NoMemory();
23990 D(p->level--);
23991 return NULL;
23992 }
23993 _children = _new_children;
23994 }
23995 _children[_n++] = _res;
23996 _mark = p->mark;
23997 }
23998 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023999 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
24001 }
24002 if (_n == 0 || p->error_indicator) {
24003 PyMem_Free(_children);
24004 D(p->level--);
24005 return NULL;
24006 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024007 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024008 if (!_seq) {
24009 PyMem_Free(_children);
24010 p->error_indicator = 1;
24011 PyErr_NoMemory();
24012 D(p->level--);
24013 return NULL;
24014 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024015 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024016 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024017 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024018 D(p->level--);
24019 return _seq;
24020}
24021
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024022// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024023static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024024_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024025{
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;
24033 { // 'as' NAME
24034 if (p->error_indicator) {
24035 D(p->level--);
24036 return NULL;
24037 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024038 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024039 Token * _keyword;
24040 expr_ty z;
24041 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024042 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024043 &&
24044 (z = _PyPegen_name_token(p)) // NAME
24045 )
24046 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024047 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 +010024048 _res = z;
24049 if (_res == NULL && PyErr_Occurred()) {
24050 p->error_indicator = 1;
24051 D(p->level--);
24052 return NULL;
24053 }
24054 goto done;
24055 }
24056 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024057 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24059 }
24060 _res = NULL;
24061 done:
24062 D(p->level--);
24063 return _res;
24064}
24065
Brandt Bucher145bf262021-02-26 14:51:55 -080024066// _loop1_50: case_block
24067static asdl_seq *
24068_loop1_50_rule(Parser *p)
24069{
24070 D(p->level++);
24071 if (p->error_indicator) {
24072 D(p->level--);
24073 return NULL;
24074 }
24075 void *_res = NULL;
24076 int _mark = p->mark;
24077 int _start_mark = p->mark;
24078 void **_children = PyMem_Malloc(sizeof(void *));
24079 if (!_children) {
24080 p->error_indicator = 1;
24081 PyErr_NoMemory();
24082 D(p->level--);
24083 return NULL;
24084 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024085 Py_ssize_t _children_capacity = 1;
24086 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024087 { // case_block
24088 if (p->error_indicator) {
24089 D(p->level--);
24090 return NULL;
24091 }
24092 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24093 match_case_ty case_block_var;
24094 while (
24095 (case_block_var = case_block_rule(p)) // case_block
24096 )
24097 {
24098 _res = case_block_var;
24099 if (_n == _children_capacity) {
24100 _children_capacity *= 2;
24101 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24102 if (!_new_children) {
24103 p->error_indicator = 1;
24104 PyErr_NoMemory();
24105 D(p->level--);
24106 return NULL;
24107 }
24108 _children = _new_children;
24109 }
24110 _children[_n++] = _res;
24111 _mark = p->mark;
24112 }
24113 p->mark = _mark;
24114 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24116 }
24117 if (_n == 0 || p->error_indicator) {
24118 PyMem_Free(_children);
24119 D(p->level--);
24120 return NULL;
24121 }
24122 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24123 if (!_seq) {
24124 PyMem_Free(_children);
24125 p->error_indicator = 1;
24126 PyErr_NoMemory();
24127 D(p->level--);
24128 return NULL;
24129 }
24130 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24131 PyMem_Free(_children);
24132 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24133 D(p->level--);
24134 return _seq;
24135}
24136
24137// _loop0_52: '|' closed_pattern
24138static asdl_seq *
24139_loop0_52_rule(Parser *p)
24140{
24141 D(p->level++);
24142 if (p->error_indicator) {
24143 D(p->level--);
24144 return NULL;
24145 }
24146 void *_res = NULL;
24147 int _mark = p->mark;
24148 int _start_mark = p->mark;
24149 void **_children = PyMem_Malloc(sizeof(void *));
24150 if (!_children) {
24151 p->error_indicator = 1;
24152 PyErr_NoMemory();
24153 D(p->level--);
24154 return NULL;
24155 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024156 Py_ssize_t _children_capacity = 1;
24157 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024158 { // '|' closed_pattern
24159 if (p->error_indicator) {
24160 D(p->level--);
24161 return NULL;
24162 }
24163 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24164 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024165 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024166 while (
24167 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24168 &&
24169 (elem = closed_pattern_rule(p)) // closed_pattern
24170 )
24171 {
24172 _res = elem;
24173 if (_res == NULL && PyErr_Occurred()) {
24174 p->error_indicator = 1;
24175 PyMem_Free(_children);
24176 D(p->level--);
24177 return NULL;
24178 }
24179 if (_n == _children_capacity) {
24180 _children_capacity *= 2;
24181 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24182 if (!_new_children) {
24183 p->error_indicator = 1;
24184 PyErr_NoMemory();
24185 D(p->level--);
24186 return NULL;
24187 }
24188 _children = _new_children;
24189 }
24190 _children[_n++] = _res;
24191 _mark = p->mark;
24192 }
24193 p->mark = _mark;
24194 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24196 }
24197 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24198 if (!_seq) {
24199 PyMem_Free(_children);
24200 p->error_indicator = 1;
24201 PyErr_NoMemory();
24202 D(p->level--);
24203 return NULL;
24204 }
24205 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24206 PyMem_Free(_children);
24207 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24208 D(p->level--);
24209 return _seq;
24210}
24211
24212// _gather_51: closed_pattern _loop0_52
24213static asdl_seq *
24214_gather_51_rule(Parser *p)
24215{
24216 D(p->level++);
24217 if (p->error_indicator) {
24218 D(p->level--);
24219 return NULL;
24220 }
24221 asdl_seq * _res = NULL;
24222 int _mark = p->mark;
24223 { // closed_pattern _loop0_52
24224 if (p->error_indicator) {
24225 D(p->level--);
24226 return NULL;
24227 }
24228 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 +100024229 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024230 asdl_seq * seq;
24231 if (
24232 (elem = closed_pattern_rule(p)) // closed_pattern
24233 &&
24234 (seq = _loop0_52_rule(p)) // _loop0_52
24235 )
24236 {
24237 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24238 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24239 goto done;
24240 }
24241 p->mark = _mark;
24242 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24244 }
24245 _res = NULL;
24246 done:
24247 D(p->level--);
24248 return _res;
24249}
24250
24251// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024252static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024253_tmp_53_rule(Parser *p)
24254{
24255 D(p->level++);
24256 if (p->error_indicator) {
24257 D(p->level--);
24258 return NULL;
24259 }
24260 void * _res = NULL;
24261 int _mark = p->mark;
24262 { // '+'
24263 if (p->error_indicator) {
24264 D(p->level--);
24265 return NULL;
24266 }
24267 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24268 Token * _literal;
24269 if (
24270 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24271 )
24272 {
24273 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24274 _res = _literal;
24275 goto done;
24276 }
24277 p->mark = _mark;
24278 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24280 }
24281 { // '-'
24282 if (p->error_indicator) {
24283 D(p->level--);
24284 return NULL;
24285 }
24286 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24287 Token * _literal;
24288 if (
24289 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24290 )
24291 {
24292 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24293 _res = _literal;
24294 goto done;
24295 }
24296 p->mark = _mark;
24297 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24299 }
24300 _res = NULL;
24301 done:
24302 D(p->level--);
24303 return _res;
24304}
24305
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024306// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024307static void *
24308_tmp_54_rule(Parser *p)
24309{
24310 D(p->level++);
24311 if (p->error_indicator) {
24312 D(p->level--);
24313 return NULL;
24314 }
24315 void * _res = NULL;
24316 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024317 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024318 if (p->error_indicator) {
24319 D(p->level--);
24320 return NULL;
24321 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024322 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024323 Token * _literal;
24324 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024325 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 )
24327 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024328 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024329 _res = _literal;
24330 goto done;
24331 }
24332 p->mark = _mark;
24333 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024335 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024336 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024337 if (p->error_indicator) {
24338 D(p->level--);
24339 return NULL;
24340 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024341 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024342 Token * _literal;
24343 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024344 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024345 )
24346 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024347 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024348 _res = _literal;
24349 goto done;
24350 }
24351 p->mark = _mark;
24352 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024354 }
24355 _res = NULL;
24356 done:
24357 D(p->level--);
24358 return _res;
24359}
24360
24361// _tmp_55: '.' | '(' | '='
24362static void *
24363_tmp_55_rule(Parser *p)
24364{
24365 D(p->level++);
24366 if (p->error_indicator) {
24367 D(p->level--);
24368 return NULL;
24369 }
24370 void * _res = NULL;
24371 int _mark = p->mark;
24372 { // '.'
24373 if (p->error_indicator) {
24374 D(p->level--);
24375 return NULL;
24376 }
24377 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24378 Token * _literal;
24379 if (
24380 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24381 )
24382 {
24383 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24384 _res = _literal;
24385 goto done;
24386 }
24387 p->mark = _mark;
24388 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24390 }
24391 { // '('
24392 if (p->error_indicator) {
24393 D(p->level--);
24394 return NULL;
24395 }
24396 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24397 Token * _literal;
24398 if (
24399 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24400 )
24401 {
24402 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24403 _res = _literal;
24404 goto done;
24405 }
24406 p->mark = _mark;
24407 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24409 }
24410 { // '='
24411 if (p->error_indicator) {
24412 D(p->level--);
24413 return NULL;
24414 }
24415 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24416 Token * _literal;
24417 if (
24418 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24419 )
24420 {
24421 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24422 _res = _literal;
24423 goto done;
24424 }
24425 p->mark = _mark;
24426 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24428 }
24429 _res = NULL;
24430 done:
24431 D(p->level--);
24432 return _res;
24433}
24434
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024435// _tmp_56: '.' | '(' | '='
24436static void *
24437_tmp_56_rule(Parser *p)
24438{
24439 D(p->level++);
24440 if (p->error_indicator) {
24441 D(p->level--);
24442 return NULL;
24443 }
24444 void * _res = NULL;
24445 int _mark = p->mark;
24446 { // '.'
24447 if (p->error_indicator) {
24448 D(p->level--);
24449 return NULL;
24450 }
24451 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24452 Token * _literal;
24453 if (
24454 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24455 )
24456 {
24457 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24458 _res = _literal;
24459 goto done;
24460 }
24461 p->mark = _mark;
24462 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24464 }
24465 { // '('
24466 if (p->error_indicator) {
24467 D(p->level--);
24468 return NULL;
24469 }
24470 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24471 Token * _literal;
24472 if (
24473 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24474 )
24475 {
24476 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24477 _res = _literal;
24478 goto done;
24479 }
24480 p->mark = _mark;
24481 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24483 }
24484 { // '='
24485 if (p->error_indicator) {
24486 D(p->level--);
24487 return NULL;
24488 }
24489 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24490 Token * _literal;
24491 if (
24492 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24493 )
24494 {
24495 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24496 _res = _literal;
24497 goto done;
24498 }
24499 p->mark = _mark;
24500 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24502 }
24503 _res = NULL;
24504 done:
24505 D(p->level--);
24506 return _res;
24507}
24508
24509// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024510static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024511_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024512{
24513 D(p->level++);
24514 if (p->error_indicator) {
24515 D(p->level--);
24516 return NULL;
24517 }
24518 void *_res = NULL;
24519 int _mark = p->mark;
24520 int _start_mark = p->mark;
24521 void **_children = PyMem_Malloc(sizeof(void *));
24522 if (!_children) {
24523 p->error_indicator = 1;
24524 PyErr_NoMemory();
24525 D(p->level--);
24526 return NULL;
24527 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024528 Py_ssize_t _children_capacity = 1;
24529 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024530 { // ',' maybe_star_pattern
24531 if (p->error_indicator) {
24532 D(p->level--);
24533 return NULL;
24534 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024535 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 -080024536 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024537 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024538 while (
24539 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24540 &&
24541 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24542 )
24543 {
24544 _res = elem;
24545 if (_res == NULL && PyErr_Occurred()) {
24546 p->error_indicator = 1;
24547 PyMem_Free(_children);
24548 D(p->level--);
24549 return NULL;
24550 }
24551 if (_n == _children_capacity) {
24552 _children_capacity *= 2;
24553 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24554 if (!_new_children) {
24555 p->error_indicator = 1;
24556 PyErr_NoMemory();
24557 D(p->level--);
24558 return NULL;
24559 }
24560 _children = _new_children;
24561 }
24562 _children[_n++] = _res;
24563 _mark = p->mark;
24564 }
24565 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024566 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24568 }
24569 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24570 if (!_seq) {
24571 PyMem_Free(_children);
24572 p->error_indicator = 1;
24573 PyErr_NoMemory();
24574 D(p->level--);
24575 return NULL;
24576 }
24577 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24578 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024579 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024580 D(p->level--);
24581 return _seq;
24582}
24583
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024584// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024585static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024586_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024587{
24588 D(p->level++);
24589 if (p->error_indicator) {
24590 D(p->level--);
24591 return NULL;
24592 }
24593 asdl_seq * _res = NULL;
24594 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024595 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024596 if (p->error_indicator) {
24597 D(p->level--);
24598 return NULL;
24599 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024600 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24601 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024602 asdl_seq * seq;
24603 if (
24604 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24605 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024606 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024607 )
24608 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024609 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 -080024610 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24611 goto done;
24612 }
24613 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024614 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024616 }
24617 _res = NULL;
24618 done:
24619 D(p->level--);
24620 return _res;
24621}
24622
24623// _loop0_60: ',' key_value_pattern
24624static asdl_seq *
24625_loop0_60_rule(Parser *p)
24626{
24627 D(p->level++);
24628 if (p->error_indicator) {
24629 D(p->level--);
24630 return NULL;
24631 }
24632 void *_res = NULL;
24633 int _mark = p->mark;
24634 int _start_mark = p->mark;
24635 void **_children = PyMem_Malloc(sizeof(void *));
24636 if (!_children) {
24637 p->error_indicator = 1;
24638 PyErr_NoMemory();
24639 D(p->level--);
24640 return NULL;
24641 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024642 Py_ssize_t _children_capacity = 1;
24643 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024644 { // ',' key_value_pattern
24645 if (p->error_indicator) {
24646 D(p->level--);
24647 return NULL;
24648 }
24649 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24650 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024651 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024652 while (
24653 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24654 &&
24655 (elem = key_value_pattern_rule(p)) // key_value_pattern
24656 )
24657 {
24658 _res = elem;
24659 if (_res == NULL && PyErr_Occurred()) {
24660 p->error_indicator = 1;
24661 PyMem_Free(_children);
24662 D(p->level--);
24663 return NULL;
24664 }
24665 if (_n == _children_capacity) {
24666 _children_capacity *= 2;
24667 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24668 if (!_new_children) {
24669 p->error_indicator = 1;
24670 PyErr_NoMemory();
24671 D(p->level--);
24672 return NULL;
24673 }
24674 _children = _new_children;
24675 }
24676 _children[_n++] = _res;
24677 _mark = p->mark;
24678 }
24679 p->mark = _mark;
24680 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24682 }
24683 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24684 if (!_seq) {
24685 PyMem_Free(_children);
24686 p->error_indicator = 1;
24687 PyErr_NoMemory();
24688 D(p->level--);
24689 return NULL;
24690 }
24691 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24692 PyMem_Free(_children);
24693 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24694 D(p->level--);
24695 return _seq;
24696}
24697
24698// _gather_59: key_value_pattern _loop0_60
24699static asdl_seq *
24700_gather_59_rule(Parser *p)
24701{
24702 D(p->level++);
24703 if (p->error_indicator) {
24704 D(p->level--);
24705 return NULL;
24706 }
24707 asdl_seq * _res = NULL;
24708 int _mark = p->mark;
24709 { // key_value_pattern _loop0_60
24710 if (p->error_indicator) {
24711 D(p->level--);
24712 return NULL;
24713 }
24714 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 +100024715 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024716 asdl_seq * seq;
24717 if (
24718 (elem = key_value_pattern_rule(p)) // key_value_pattern
24719 &&
24720 (seq = _loop0_60_rule(p)) // _loop0_60
24721 )
24722 {
24723 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24724 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24725 goto done;
24726 }
24727 p->mark = _mark;
24728 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24730 }
24731 _res = NULL;
24732 done:
24733 D(p->level--);
24734 return _res;
24735}
24736
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024737// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024738static void *
24739_tmp_61_rule(Parser *p)
24740{
24741 D(p->level++);
24742 if (p->error_indicator) {
24743 D(p->level--);
24744 return NULL;
24745 }
24746 void * _res = NULL;
24747 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024748 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024749 if (p->error_indicator) {
24750 D(p->level--);
24751 return NULL;
24752 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024753 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24754 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024755 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024756 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024757 )
24758 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024759 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24760 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024761 goto done;
24762 }
24763 p->mark = _mark;
24764 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024766 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024767 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024768 if (p->error_indicator) {
24769 D(p->level--);
24770 return NULL;
24771 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024772 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24773 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024774 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024775 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024776 )
24777 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024778 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24779 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024780 goto done;
24781 }
24782 p->mark = _mark;
24783 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024785 }
24786 _res = NULL;
24787 done:
24788 D(p->level--);
24789 return _res;
24790}
24791
24792// _loop0_63: ',' pattern
24793static asdl_seq *
24794_loop0_63_rule(Parser *p)
24795{
24796 D(p->level++);
24797 if (p->error_indicator) {
24798 D(p->level--);
24799 return NULL;
24800 }
24801 void *_res = NULL;
24802 int _mark = p->mark;
24803 int _start_mark = p->mark;
24804 void **_children = PyMem_Malloc(sizeof(void *));
24805 if (!_children) {
24806 p->error_indicator = 1;
24807 PyErr_NoMemory();
24808 D(p->level--);
24809 return NULL;
24810 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024811 Py_ssize_t _children_capacity = 1;
24812 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024813 { // ',' pattern
24814 if (p->error_indicator) {
24815 D(p->level--);
24816 return NULL;
24817 }
24818 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24819 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024820 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024821 while (
24822 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24823 &&
24824 (elem = pattern_rule(p)) // pattern
24825 )
24826 {
24827 _res = elem;
24828 if (_res == NULL && PyErr_Occurred()) {
24829 p->error_indicator = 1;
24830 PyMem_Free(_children);
24831 D(p->level--);
24832 return NULL;
24833 }
24834 if (_n == _children_capacity) {
24835 _children_capacity *= 2;
24836 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24837 if (!_new_children) {
24838 p->error_indicator = 1;
24839 PyErr_NoMemory();
24840 D(p->level--);
24841 return NULL;
24842 }
24843 _children = _new_children;
24844 }
24845 _children[_n++] = _res;
24846 _mark = p->mark;
24847 }
24848 p->mark = _mark;
24849 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24851 }
24852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24853 if (!_seq) {
24854 PyMem_Free(_children);
24855 p->error_indicator = 1;
24856 PyErr_NoMemory();
24857 D(p->level--);
24858 return NULL;
24859 }
24860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24861 PyMem_Free(_children);
24862 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24863 D(p->level--);
24864 return _seq;
24865}
24866
24867// _gather_62: pattern _loop0_63
24868static asdl_seq *
24869_gather_62_rule(Parser *p)
24870{
24871 D(p->level++);
24872 if (p->error_indicator) {
24873 D(p->level--);
24874 return NULL;
24875 }
24876 asdl_seq * _res = NULL;
24877 int _mark = p->mark;
24878 { // pattern _loop0_63
24879 if (p->error_indicator) {
24880 D(p->level--);
24881 return NULL;
24882 }
24883 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 +100024884 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024885 asdl_seq * seq;
24886 if (
24887 (elem = pattern_rule(p)) // pattern
24888 &&
24889 (seq = _loop0_63_rule(p)) // _loop0_63
24890 )
24891 {
24892 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24893 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24894 goto done;
24895 }
24896 p->mark = _mark;
24897 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24899 }
24900 _res = NULL;
24901 done:
24902 D(p->level--);
24903 return _res;
24904}
24905
24906// _loop0_65: ',' keyword_pattern
24907static asdl_seq *
24908_loop0_65_rule(Parser *p)
24909{
24910 D(p->level++);
24911 if (p->error_indicator) {
24912 D(p->level--);
24913 return NULL;
24914 }
24915 void *_res = NULL;
24916 int _mark = p->mark;
24917 int _start_mark = p->mark;
24918 void **_children = PyMem_Malloc(sizeof(void *));
24919 if (!_children) {
24920 p->error_indicator = 1;
24921 PyErr_NoMemory();
24922 D(p->level--);
24923 return NULL;
24924 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024925 Py_ssize_t _children_capacity = 1;
24926 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024927 { // ',' keyword_pattern
24928 if (p->error_indicator) {
24929 D(p->level--);
24930 return NULL;
24931 }
24932 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24933 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024934 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024935 while (
24936 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24937 &&
24938 (elem = keyword_pattern_rule(p)) // keyword_pattern
24939 )
24940 {
24941 _res = elem;
24942 if (_res == NULL && PyErr_Occurred()) {
24943 p->error_indicator = 1;
24944 PyMem_Free(_children);
24945 D(p->level--);
24946 return NULL;
24947 }
24948 if (_n == _children_capacity) {
24949 _children_capacity *= 2;
24950 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24951 if (!_new_children) {
24952 p->error_indicator = 1;
24953 PyErr_NoMemory();
24954 D(p->level--);
24955 return NULL;
24956 }
24957 _children = _new_children;
24958 }
24959 _children[_n++] = _res;
24960 _mark = p->mark;
24961 }
24962 p->mark = _mark;
24963 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24965 }
24966 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24967 if (!_seq) {
24968 PyMem_Free(_children);
24969 p->error_indicator = 1;
24970 PyErr_NoMemory();
24971 D(p->level--);
24972 return NULL;
24973 }
24974 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24975 PyMem_Free(_children);
24976 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24977 D(p->level--);
24978 return _seq;
24979}
24980
24981// _gather_64: keyword_pattern _loop0_65
24982static asdl_seq *
24983_gather_64_rule(Parser *p)
24984{
24985 D(p->level++);
24986 if (p->error_indicator) {
24987 D(p->level--);
24988 return NULL;
24989 }
24990 asdl_seq * _res = NULL;
24991 int _mark = p->mark;
24992 { // keyword_pattern _loop0_65
24993 if (p->error_indicator) {
24994 D(p->level--);
24995 return NULL;
24996 }
24997 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 +100024998 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024999 asdl_seq * seq;
25000 if (
25001 (elem = keyword_pattern_rule(p)) // keyword_pattern
25002 &&
25003 (seq = _loop0_65_rule(p)) // _loop0_65
25004 )
25005 {
25006 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
25007 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25008 goto done;
25009 }
25010 p->mark = _mark;
25011 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25013 }
25014 _res = NULL;
25015 done:
25016 D(p->level--);
25017 return _res;
25018}
25019
25020// _tmp_66: 'from' expression
25021static void *
25022_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025023{
25024 D(p->level++);
25025 if (p->error_indicator) {
25026 D(p->level--);
25027 return NULL;
25028 }
25029 void * _res = NULL;
25030 int _mark = p->mark;
25031 { // 'from' expression
25032 if (p->error_indicator) {
25033 D(p->level--);
25034 return NULL;
25035 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025036 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025037 Token * _keyword;
25038 expr_ty z;
25039 if (
25040 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25041 &&
25042 (z = expression_rule(p)) // expression
25043 )
25044 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025045 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 +010025046 _res = z;
25047 if (_res == NULL && PyErr_Occurred()) {
25048 p->error_indicator = 1;
25049 D(p->level--);
25050 return NULL;
25051 }
25052 goto done;
25053 }
25054 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025055 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025057 }
25058 _res = NULL;
25059 done:
25060 D(p->level--);
25061 return _res;
25062}
25063
Brandt Bucher145bf262021-02-26 14:51:55 -080025064// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025065static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025066_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025067{
25068 D(p->level++);
25069 if (p->error_indicator) {
25070 D(p->level--);
25071 return NULL;
25072 }
25073 void * _res = NULL;
25074 int _mark = p->mark;
25075 { // '->' expression
25076 if (p->error_indicator) {
25077 D(p->level--);
25078 return NULL;
25079 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025080 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025081 Token * _literal;
25082 expr_ty z;
25083 if (
25084 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25085 &&
25086 (z = expression_rule(p)) // expression
25087 )
25088 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025089 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025090 _res = z;
25091 if (_res == NULL && PyErr_Occurred()) {
25092 p->error_indicator = 1;
25093 D(p->level--);
25094 return NULL;
25095 }
25096 goto done;
25097 }
25098 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025099 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25101 }
25102 _res = NULL;
25103 done:
25104 D(p->level--);
25105 return _res;
25106}
25107
Brandt Bucher145bf262021-02-26 14:51:55 -080025108// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025109static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025110_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025111{
25112 D(p->level++);
25113 if (p->error_indicator) {
25114 D(p->level--);
25115 return NULL;
25116 }
25117 void * _res = NULL;
25118 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025119 { // '->' expression
25120 if (p->error_indicator) {
25121 D(p->level--);
25122 return NULL;
25123 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025124 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025125 Token * _literal;
25126 expr_ty z;
25127 if (
25128 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25129 &&
25130 (z = expression_rule(p)) // expression
25131 )
25132 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025133 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025134 _res = z;
25135 if (_res == NULL && PyErr_Occurred()) {
25136 p->error_indicator = 1;
25137 D(p->level--);
25138 return NULL;
25139 }
25140 goto done;
25141 }
25142 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025143 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25145 }
25146 _res = NULL;
25147 done:
25148 D(p->level--);
25149 return _res;
25150}
25151
Brandt Bucher145bf262021-02-26 14:51:55 -080025152// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025153static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025154_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025155{
25156 D(p->level++);
25157 if (p->error_indicator) {
25158 D(p->level--);
25159 return NULL;
25160 }
25161 void * _res = NULL;
25162 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025163 { // NEWLINE INDENT
25164 if (p->error_indicator) {
25165 D(p->level--);
25166 return NULL;
25167 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025168 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025169 Token * indent_var;
25170 Token * newline_var;
25171 if (
25172 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25173 &&
25174 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25175 )
25176 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025177 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 +010025178 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25179 goto done;
25180 }
25181 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025182 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25184 }
25185 _res = NULL;
25186 done:
25187 D(p->level--);
25188 return _res;
25189}
25190
Brandt Bucher145bf262021-02-26 14:51:55 -080025191// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025192static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025193_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025194{
25195 D(p->level++);
25196 if (p->error_indicator) {
25197 D(p->level--);
25198 return NULL;
25199 }
25200 void *_res = NULL;
25201 int _mark = p->mark;
25202 int _start_mark = p->mark;
25203 void **_children = PyMem_Malloc(sizeof(void *));
25204 if (!_children) {
25205 p->error_indicator = 1;
25206 PyErr_NoMemory();
25207 D(p->level--);
25208 return NULL;
25209 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025210 Py_ssize_t _children_capacity = 1;
25211 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025212 { // param_no_default
25213 if (p->error_indicator) {
25214 D(p->level--);
25215 return NULL;
25216 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025217 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 +010025218 arg_ty param_no_default_var;
25219 while (
25220 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25221 )
25222 {
25223 _res = param_no_default_var;
25224 if (_n == _children_capacity) {
25225 _children_capacity *= 2;
25226 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25227 if (!_new_children) {
25228 p->error_indicator = 1;
25229 PyErr_NoMemory();
25230 D(p->level--);
25231 return NULL;
25232 }
25233 _children = _new_children;
25234 }
25235 _children[_n++] = _res;
25236 _mark = p->mark;
25237 }
25238 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025239 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025241 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025242 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025243 if (!_seq) {
25244 PyMem_Free(_children);
25245 p->error_indicator = 1;
25246 PyErr_NoMemory();
25247 D(p->level--);
25248 return NULL;
25249 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025250 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025251 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025252 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025253 D(p->level--);
25254 return _seq;
25255}
25256
Brandt Bucher145bf262021-02-26 14:51:55 -080025257// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025258static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025259_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025260{
25261 D(p->level++);
25262 if (p->error_indicator) {
25263 D(p->level--);
25264 return NULL;
25265 }
25266 void *_res = NULL;
25267 int _mark = p->mark;
25268 int _start_mark = p->mark;
25269 void **_children = PyMem_Malloc(sizeof(void *));
25270 if (!_children) {
25271 p->error_indicator = 1;
25272 PyErr_NoMemory();
25273 D(p->level--);
25274 return NULL;
25275 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025276 Py_ssize_t _children_capacity = 1;
25277 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025278 { // param_with_default
25279 if (p->error_indicator) {
25280 D(p->level--);
25281 return NULL;
25282 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025283 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 +010025284 NameDefaultPair* param_with_default_var;
25285 while (
25286 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25287 )
25288 {
25289 _res = param_with_default_var;
25290 if (_n == _children_capacity) {
25291 _children_capacity *= 2;
25292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25293 if (!_new_children) {
25294 p->error_indicator = 1;
25295 PyErr_NoMemory();
25296 D(p->level--);
25297 return NULL;
25298 }
25299 _children = _new_children;
25300 }
25301 _children[_n++] = _res;
25302 _mark = p->mark;
25303 }
25304 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025305 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25307 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025308 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025309 if (!_seq) {
25310 PyMem_Free(_children);
25311 p->error_indicator = 1;
25312 PyErr_NoMemory();
25313 D(p->level--);
25314 return NULL;
25315 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025316 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025317 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025318 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025319 D(p->level--);
25320 return _seq;
25321}
25322
Brandt Bucher145bf262021-02-26 14:51:55 -080025323// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025324static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025325_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025326{
25327 D(p->level++);
25328 if (p->error_indicator) {
25329 D(p->level--);
25330 return NULL;
25331 }
25332 void *_res = NULL;
25333 int _mark = p->mark;
25334 int _start_mark = p->mark;
25335 void **_children = PyMem_Malloc(sizeof(void *));
25336 if (!_children) {
25337 p->error_indicator = 1;
25338 PyErr_NoMemory();
25339 D(p->level--);
25340 return NULL;
25341 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025342 Py_ssize_t _children_capacity = 1;
25343 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025344 { // param_with_default
25345 if (p->error_indicator) {
25346 D(p->level--);
25347 return NULL;
25348 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025349 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 +030025350 NameDefaultPair* param_with_default_var;
25351 while (
25352 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25353 )
25354 {
25355 _res = param_with_default_var;
25356 if (_n == _children_capacity) {
25357 _children_capacity *= 2;
25358 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25359 if (!_new_children) {
25360 p->error_indicator = 1;
25361 PyErr_NoMemory();
25362 D(p->level--);
25363 return NULL;
25364 }
25365 _children = _new_children;
25366 }
25367 _children[_n++] = _res;
25368 _mark = p->mark;
25369 }
25370 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025371 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25373 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025374 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025375 if (!_seq) {
25376 PyMem_Free(_children);
25377 p->error_indicator = 1;
25378 PyErr_NoMemory();
25379 D(p->level--);
25380 return NULL;
25381 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025382 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025383 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025384 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025385 D(p->level--);
25386 return _seq;
25387}
25388
Brandt Bucher145bf262021-02-26 14:51:55 -080025389// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025390static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025391_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025392{
25393 D(p->level++);
25394 if (p->error_indicator) {
25395 D(p->level--);
25396 return NULL;
25397 }
25398 void *_res = NULL;
25399 int _mark = p->mark;
25400 int _start_mark = p->mark;
25401 void **_children = PyMem_Malloc(sizeof(void *));
25402 if (!_children) {
25403 p->error_indicator = 1;
25404 PyErr_NoMemory();
25405 D(p->level--);
25406 return NULL;
25407 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025408 Py_ssize_t _children_capacity = 1;
25409 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025410 { // param_no_default
25411 if (p->error_indicator) {
25412 D(p->level--);
25413 return NULL;
25414 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025415 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 +010025416 arg_ty param_no_default_var;
25417 while (
25418 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25419 )
25420 {
25421 _res = param_no_default_var;
25422 if (_n == _children_capacity) {
25423 _children_capacity *= 2;
25424 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25425 if (!_new_children) {
25426 p->error_indicator = 1;
25427 PyErr_NoMemory();
25428 D(p->level--);
25429 return NULL;
25430 }
25431 _children = _new_children;
25432 }
25433 _children[_n++] = _res;
25434 _mark = p->mark;
25435 }
25436 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025437 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25439 }
25440 if (_n == 0 || p->error_indicator) {
25441 PyMem_Free(_children);
25442 D(p->level--);
25443 return NULL;
25444 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025445 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025446 if (!_seq) {
25447 PyMem_Free(_children);
25448 p->error_indicator = 1;
25449 PyErr_NoMemory();
25450 D(p->level--);
25451 return NULL;
25452 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025453 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025454 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025455 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025456 D(p->level--);
25457 return _seq;
25458}
25459
Brandt Bucher145bf262021-02-26 14:51:55 -080025460// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025461static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025462_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025463{
25464 D(p->level++);
25465 if (p->error_indicator) {
25466 D(p->level--);
25467 return NULL;
25468 }
25469 void *_res = NULL;
25470 int _mark = p->mark;
25471 int _start_mark = p->mark;
25472 void **_children = PyMem_Malloc(sizeof(void *));
25473 if (!_children) {
25474 p->error_indicator = 1;
25475 PyErr_NoMemory();
25476 D(p->level--);
25477 return NULL;
25478 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025479 Py_ssize_t _children_capacity = 1;
25480 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481 { // param_with_default
25482 if (p->error_indicator) {
25483 D(p->level--);
25484 return NULL;
25485 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025486 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 +010025487 NameDefaultPair* param_with_default_var;
25488 while (
25489 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25490 )
25491 {
25492 _res = param_with_default_var;
25493 if (_n == _children_capacity) {
25494 _children_capacity *= 2;
25495 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25496 if (!_new_children) {
25497 p->error_indicator = 1;
25498 PyErr_NoMemory();
25499 D(p->level--);
25500 return NULL;
25501 }
25502 _children = _new_children;
25503 }
25504 _children[_n++] = _res;
25505 _mark = p->mark;
25506 }
25507 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025508 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25510 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025511 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025512 if (!_seq) {
25513 PyMem_Free(_children);
25514 p->error_indicator = 1;
25515 PyErr_NoMemory();
25516 D(p->level--);
25517 return NULL;
25518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025519 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025520 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025521 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025522 D(p->level--);
25523 return _seq;
25524}
25525
Brandt Bucher145bf262021-02-26 14:51:55 -080025526// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025527static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025528_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025529{
25530 D(p->level++);
25531 if (p->error_indicator) {
25532 D(p->level--);
25533 return NULL;
25534 }
25535 void *_res = NULL;
25536 int _mark = p->mark;
25537 int _start_mark = p->mark;
25538 void **_children = PyMem_Malloc(sizeof(void *));
25539 if (!_children) {
25540 p->error_indicator = 1;
25541 PyErr_NoMemory();
25542 D(p->level--);
25543 return NULL;
25544 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025545 Py_ssize_t _children_capacity = 1;
25546 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025547 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025548 if (p->error_indicator) {
25549 D(p->level--);
25550 return NULL;
25551 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025552 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 +030025553 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025554 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025555 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025556 )
25557 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025558 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025559 if (_n == _children_capacity) {
25560 _children_capacity *= 2;
25561 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25562 if (!_new_children) {
25563 p->error_indicator = 1;
25564 PyErr_NoMemory();
25565 D(p->level--);
25566 return NULL;
25567 }
25568 _children = _new_children;
25569 }
25570 _children[_n++] = _res;
25571 _mark = p->mark;
25572 }
25573 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025574 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025576 }
25577 if (_n == 0 || p->error_indicator) {
25578 PyMem_Free(_children);
25579 D(p->level--);
25580 return NULL;
25581 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025583 if (!_seq) {
25584 PyMem_Free(_children);
25585 p->error_indicator = 1;
25586 PyErr_NoMemory();
25587 D(p->level--);
25588 return NULL;
25589 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025591 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025592 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025593 D(p->level--);
25594 return _seq;
25595}
25596
Brandt Bucher145bf262021-02-26 14:51:55 -080025597// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025598static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025599_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600{
25601 D(p->level++);
25602 if (p->error_indicator) {
25603 D(p->level--);
25604 return NULL;
25605 }
25606 void *_res = NULL;
25607 int _mark = p->mark;
25608 int _start_mark = p->mark;
25609 void **_children = PyMem_Malloc(sizeof(void *));
25610 if (!_children) {
25611 p->error_indicator = 1;
25612 PyErr_NoMemory();
25613 D(p->level--);
25614 return NULL;
25615 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025616 Py_ssize_t _children_capacity = 1;
25617 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025618 { // param_no_default
25619 if (p->error_indicator) {
25620 D(p->level--);
25621 return NULL;
25622 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025623 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 +010025624 arg_ty param_no_default_var;
25625 while (
25626 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25627 )
25628 {
25629 _res = param_no_default_var;
25630 if (_n == _children_capacity) {
25631 _children_capacity *= 2;
25632 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25633 if (!_new_children) {
25634 p->error_indicator = 1;
25635 PyErr_NoMemory();
25636 D(p->level--);
25637 return NULL;
25638 }
25639 _children = _new_children;
25640 }
25641 _children[_n++] = _res;
25642 _mark = p->mark;
25643 }
25644 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025645 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25647 }
25648 if (_n == 0 || p->error_indicator) {
25649 PyMem_Free(_children);
25650 D(p->level--);
25651 return NULL;
25652 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025653 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025654 if (!_seq) {
25655 PyMem_Free(_children);
25656 p->error_indicator = 1;
25657 PyErr_NoMemory();
25658 D(p->level--);
25659 return NULL;
25660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025661 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025662 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025663 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025664 D(p->level--);
25665 return _seq;
25666}
25667
Brandt Bucher145bf262021-02-26 14:51:55 -080025668// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025669static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025670_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025671{
25672 D(p->level++);
25673 if (p->error_indicator) {
25674 D(p->level--);
25675 return NULL;
25676 }
25677 void *_res = NULL;
25678 int _mark = p->mark;
25679 int _start_mark = p->mark;
25680 void **_children = PyMem_Malloc(sizeof(void *));
25681 if (!_children) {
25682 p->error_indicator = 1;
25683 PyErr_NoMemory();
25684 D(p->level--);
25685 return NULL;
25686 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025687 Py_ssize_t _children_capacity = 1;
25688 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025689 { // param_no_default
25690 if (p->error_indicator) {
25691 D(p->level--);
25692 return NULL;
25693 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025694 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 +010025695 arg_ty param_no_default_var;
25696 while (
25697 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25698 )
25699 {
25700 _res = param_no_default_var;
25701 if (_n == _children_capacity) {
25702 _children_capacity *= 2;
25703 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25704 if (!_new_children) {
25705 p->error_indicator = 1;
25706 PyErr_NoMemory();
25707 D(p->level--);
25708 return NULL;
25709 }
25710 _children = _new_children;
25711 }
25712 _children[_n++] = _res;
25713 _mark = p->mark;
25714 }
25715 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025716 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25718 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025719 if (_n == 0 || p->error_indicator) {
25720 PyMem_Free(_children);
25721 D(p->level--);
25722 return NULL;
25723 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025724 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025725 if (!_seq) {
25726 PyMem_Free(_children);
25727 p->error_indicator = 1;
25728 PyErr_NoMemory();
25729 D(p->level--);
25730 return NULL;
25731 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025732 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025733 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025734 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025735 D(p->level--);
25736 return _seq;
25737}
25738
Brandt Bucher145bf262021-02-26 14:51:55 -080025739// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025740static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025741_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025742{
25743 D(p->level++);
25744 if (p->error_indicator) {
25745 D(p->level--);
25746 return NULL;
25747 }
25748 void *_res = NULL;
25749 int _mark = p->mark;
25750 int _start_mark = p->mark;
25751 void **_children = PyMem_Malloc(sizeof(void *));
25752 if (!_children) {
25753 p->error_indicator = 1;
25754 PyErr_NoMemory();
25755 D(p->level--);
25756 return NULL;
25757 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025758 Py_ssize_t _children_capacity = 1;
25759 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025760 { // param_no_default
25761 if (p->error_indicator) {
25762 D(p->level--);
25763 return NULL;
25764 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025765 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 +010025766 arg_ty param_no_default_var;
25767 while (
25768 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25769 )
25770 {
25771 _res = param_no_default_var;
25772 if (_n == _children_capacity) {
25773 _children_capacity *= 2;
25774 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25775 if (!_new_children) {
25776 p->error_indicator = 1;
25777 PyErr_NoMemory();
25778 D(p->level--);
25779 return NULL;
25780 }
25781 _children = _new_children;
25782 }
25783 _children[_n++] = _res;
25784 _mark = p->mark;
25785 }
25786 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025787 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25789 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025790 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025791 if (!_seq) {
25792 PyMem_Free(_children);
25793 p->error_indicator = 1;
25794 PyErr_NoMemory();
25795 D(p->level--);
25796 return NULL;
25797 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025798 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025799 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025800 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025801 D(p->level--);
25802 return _seq;
25803}
25804
Brandt Bucher145bf262021-02-26 14:51:55 -080025805// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025806static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025807_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025808{
25809 D(p->level++);
25810 if (p->error_indicator) {
25811 D(p->level--);
25812 return NULL;
25813 }
25814 void *_res = NULL;
25815 int _mark = p->mark;
25816 int _start_mark = p->mark;
25817 void **_children = PyMem_Malloc(sizeof(void *));
25818 if (!_children) {
25819 p->error_indicator = 1;
25820 PyErr_NoMemory();
25821 D(p->level--);
25822 return NULL;
25823 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025824 Py_ssize_t _children_capacity = 1;
25825 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025826 { // param_with_default
25827 if (p->error_indicator) {
25828 D(p->level--);
25829 return NULL;
25830 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025831 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 +010025832 NameDefaultPair* param_with_default_var;
25833 while (
25834 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25835 )
25836 {
25837 _res = param_with_default_var;
25838 if (_n == _children_capacity) {
25839 _children_capacity *= 2;
25840 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25841 if (!_new_children) {
25842 p->error_indicator = 1;
25843 PyErr_NoMemory();
25844 D(p->level--);
25845 return NULL;
25846 }
25847 _children = _new_children;
25848 }
25849 _children[_n++] = _res;
25850 _mark = p->mark;
25851 }
25852 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025853 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25855 }
25856 if (_n == 0 || p->error_indicator) {
25857 PyMem_Free(_children);
25858 D(p->level--);
25859 return NULL;
25860 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025861 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025862 if (!_seq) {
25863 PyMem_Free(_children);
25864 p->error_indicator = 1;
25865 PyErr_NoMemory();
25866 D(p->level--);
25867 return NULL;
25868 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025869 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025870 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025871 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025872 D(p->level--);
25873 return _seq;
25874}
25875
Brandt Bucher145bf262021-02-26 14:51:55 -080025876// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025877static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025878_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025879{
25880 D(p->level++);
25881 if (p->error_indicator) {
25882 D(p->level--);
25883 return NULL;
25884 }
25885 void *_res = NULL;
25886 int _mark = p->mark;
25887 int _start_mark = p->mark;
25888 void **_children = PyMem_Malloc(sizeof(void *));
25889 if (!_children) {
25890 p->error_indicator = 1;
25891 PyErr_NoMemory();
25892 D(p->level--);
25893 return NULL;
25894 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025895 Py_ssize_t _children_capacity = 1;
25896 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025897 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025898 if (p->error_indicator) {
25899 D(p->level--);
25900 return NULL;
25901 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025902 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 +030025903 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025904 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025905 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025906 )
25907 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025908 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025909 if (_n == _children_capacity) {
25910 _children_capacity *= 2;
25911 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25912 if (!_new_children) {
25913 p->error_indicator = 1;
25914 PyErr_NoMemory();
25915 D(p->level--);
25916 return NULL;
25917 }
25918 _children = _new_children;
25919 }
25920 _children[_n++] = _res;
25921 _mark = p->mark;
25922 }
25923 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025924 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025926 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025927 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025928 if (!_seq) {
25929 PyMem_Free(_children);
25930 p->error_indicator = 1;
25931 PyErr_NoMemory();
25932 D(p->level--);
25933 return NULL;
25934 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025935 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025936 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025937 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025938 D(p->level--);
25939 return _seq;
25940}
25941
Brandt Bucher145bf262021-02-26 14:51:55 -080025942// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025943static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025944_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025945{
25946 D(p->level++);
25947 if (p->error_indicator) {
25948 D(p->level--);
25949 return NULL;
25950 }
25951 void *_res = NULL;
25952 int _mark = p->mark;
25953 int _start_mark = p->mark;
25954 void **_children = PyMem_Malloc(sizeof(void *));
25955 if (!_children) {
25956 p->error_indicator = 1;
25957 PyErr_NoMemory();
25958 D(p->level--);
25959 return NULL;
25960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025961 Py_ssize_t _children_capacity = 1;
25962 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025963 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025964 if (p->error_indicator) {
25965 D(p->level--);
25966 return NULL;
25967 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025968 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 +030025969 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025970 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025971 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025972 )
25973 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025974 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025975 if (_n == _children_capacity) {
25976 _children_capacity *= 2;
25977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25978 if (!_new_children) {
25979 p->error_indicator = 1;
25980 PyErr_NoMemory();
25981 D(p->level--);
25982 return NULL;
25983 }
25984 _children = _new_children;
25985 }
25986 _children[_n++] = _res;
25987 _mark = p->mark;
25988 }
25989 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025990 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025992 }
25993 if (_n == 0 || p->error_indicator) {
25994 PyMem_Free(_children);
25995 D(p->level--);
25996 return NULL;
25997 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025998 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025999 if (!_seq) {
26000 PyMem_Free(_children);
26001 p->error_indicator = 1;
26002 PyErr_NoMemory();
26003 D(p->level--);
26004 return NULL;
26005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026006 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026007 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026008 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026009 D(p->level--);
26010 return _seq;
26011}
26012
Brandt Bucher145bf262021-02-26 14:51:55 -080026013// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026014static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026015_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026016{
26017 D(p->level++);
26018 if (p->error_indicator) {
26019 D(p->level--);
26020 return NULL;
26021 }
26022 void *_res = NULL;
26023 int _mark = p->mark;
26024 int _start_mark = p->mark;
26025 void **_children = PyMem_Malloc(sizeof(void *));
26026 if (!_children) {
26027 p->error_indicator = 1;
26028 PyErr_NoMemory();
26029 D(p->level--);
26030 return NULL;
26031 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026032 Py_ssize_t _children_capacity = 1;
26033 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026034 { // param_maybe_default
26035 if (p->error_indicator) {
26036 D(p->level--);
26037 return NULL;
26038 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026039 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 +030026040 NameDefaultPair* param_maybe_default_var;
26041 while (
26042 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26043 )
26044 {
26045 _res = param_maybe_default_var;
26046 if (_n == _children_capacity) {
26047 _children_capacity *= 2;
26048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26049 if (!_new_children) {
26050 p->error_indicator = 1;
26051 PyErr_NoMemory();
26052 D(p->level--);
26053 return NULL;
26054 }
26055 _children = _new_children;
26056 }
26057 _children[_n++] = _res;
26058 _mark = p->mark;
26059 }
26060 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026061 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026064 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026065 if (!_seq) {
26066 PyMem_Free(_children);
26067 p->error_indicator = 1;
26068 PyErr_NoMemory();
26069 D(p->level--);
26070 return NULL;
26071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026072 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026073 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026074 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026075 D(p->level--);
26076 return _seq;
26077}
26078
Brandt Bucher145bf262021-02-26 14:51:55 -080026079// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026080static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026081_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026082{
26083 D(p->level++);
26084 if (p->error_indicator) {
26085 D(p->level--);
26086 return NULL;
26087 }
26088 void *_res = NULL;
26089 int _mark = p->mark;
26090 int _start_mark = p->mark;
26091 void **_children = PyMem_Malloc(sizeof(void *));
26092 if (!_children) {
26093 p->error_indicator = 1;
26094 PyErr_NoMemory();
26095 D(p->level--);
26096 return NULL;
26097 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026098 Py_ssize_t _children_capacity = 1;
26099 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026100 { // param_maybe_default
26101 if (p->error_indicator) {
26102 D(p->level--);
26103 return NULL;
26104 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026105 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 +030026106 NameDefaultPair* param_maybe_default_var;
26107 while (
26108 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26109 )
26110 {
26111 _res = param_maybe_default_var;
26112 if (_n == _children_capacity) {
26113 _children_capacity *= 2;
26114 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26115 if (!_new_children) {
26116 p->error_indicator = 1;
26117 PyErr_NoMemory();
26118 D(p->level--);
26119 return NULL;
26120 }
26121 _children = _new_children;
26122 }
26123 _children[_n++] = _res;
26124 _mark = p->mark;
26125 }
26126 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026127 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26129 }
26130 if (_n == 0 || p->error_indicator) {
26131 PyMem_Free(_children);
26132 D(p->level--);
26133 return NULL;
26134 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026135 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026136 if (!_seq) {
26137 PyMem_Free(_children);
26138 p->error_indicator = 1;
26139 PyErr_NoMemory();
26140 D(p->level--);
26141 return NULL;
26142 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026143 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026144 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026145 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026146 D(p->level--);
26147 return _seq;
26148}
26149
Brandt Bucher145bf262021-02-26 14:51:55 -080026150// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026151static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026152_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026153{
26154 D(p->level++);
26155 if (p->error_indicator) {
26156 D(p->level--);
26157 return NULL;
26158 }
26159 void *_res = NULL;
26160 int _mark = p->mark;
26161 int _start_mark = p->mark;
26162 void **_children = PyMem_Malloc(sizeof(void *));
26163 if (!_children) {
26164 p->error_indicator = 1;
26165 PyErr_NoMemory();
26166 D(p->level--);
26167 return NULL;
26168 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026169 Py_ssize_t _children_capacity = 1;
26170 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 { // ('@' named_expression NEWLINE)
26172 if (p->error_indicator) {
26173 D(p->level--);
26174 return NULL;
26175 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026176 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026177 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026178 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026179 (_tmp_182_var = _tmp_182_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026180 )
26181 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026182 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026183 if (_n == _children_capacity) {
26184 _children_capacity *= 2;
26185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26186 if (!_new_children) {
26187 p->error_indicator = 1;
26188 PyErr_NoMemory();
26189 D(p->level--);
26190 return NULL;
26191 }
26192 _children = _new_children;
26193 }
26194 _children[_n++] = _res;
26195 _mark = p->mark;
26196 }
26197 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026198 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26200 }
26201 if (_n == 0 || p->error_indicator) {
26202 PyMem_Free(_children);
26203 D(p->level--);
26204 return NULL;
26205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026206 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026207 if (!_seq) {
26208 PyMem_Free(_children);
26209 p->error_indicator = 1;
26210 PyErr_NoMemory();
26211 D(p->level--);
26212 return NULL;
26213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026214 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026215 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026216 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026217 D(p->level--);
26218 return _seq;
26219}
26220
Brandt Bucher145bf262021-02-26 14:51:55 -080026221// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026222static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026223_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026224{
26225 D(p->level++);
26226 if (p->error_indicator) {
26227 D(p->level--);
26228 return NULL;
26229 }
26230 void * _res = NULL;
26231 int _mark = p->mark;
26232 { // '(' arguments? ')'
26233 if (p->error_indicator) {
26234 D(p->level--);
26235 return NULL;
26236 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026237 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026238 Token * _literal;
26239 Token * _literal_1;
26240 void *z;
26241 if (
26242 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26243 &&
26244 (z = arguments_rule(p), 1) // arguments?
26245 &&
26246 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26247 )
26248 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026249 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026250 _res = z;
26251 if (_res == NULL && PyErr_Occurred()) {
26252 p->error_indicator = 1;
26253 D(p->level--);
26254 return NULL;
26255 }
26256 goto done;
26257 }
26258 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026259 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26261 }
26262 _res = NULL;
26263 done:
26264 D(p->level--);
26265 return _res;
26266}
26267
Brandt Bucher145bf262021-02-26 14:51:55 -080026268// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026269static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026270_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026271{
26272 D(p->level++);
26273 if (p->error_indicator) {
26274 D(p->level--);
26275 return NULL;
26276 }
26277 void *_res = NULL;
26278 int _mark = p->mark;
26279 int _start_mark = p->mark;
26280 void **_children = PyMem_Malloc(sizeof(void *));
26281 if (!_children) {
26282 p->error_indicator = 1;
26283 PyErr_NoMemory();
26284 D(p->level--);
26285 return NULL;
26286 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026287 Py_ssize_t _children_capacity = 1;
26288 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026289 { // (',' star_expression)
26290 if (p->error_indicator) {
26291 D(p->level--);
26292 return NULL;
26293 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026294 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026295 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026296 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026297 (_tmp_183_var = _tmp_183_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026298 )
26299 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026300 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026301 if (_n == _children_capacity) {
26302 _children_capacity *= 2;
26303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26304 if (!_new_children) {
26305 p->error_indicator = 1;
26306 PyErr_NoMemory();
26307 D(p->level--);
26308 return NULL;
26309 }
26310 _children = _new_children;
26311 }
26312 _children[_n++] = _res;
26313 _mark = p->mark;
26314 }
26315 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026316 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26318 }
26319 if (_n == 0 || p->error_indicator) {
26320 PyMem_Free(_children);
26321 D(p->level--);
26322 return NULL;
26323 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026324 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026325 if (!_seq) {
26326 PyMem_Free(_children);
26327 p->error_indicator = 1;
26328 PyErr_NoMemory();
26329 D(p->level--);
26330 return NULL;
26331 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026332 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026334 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026335 D(p->level--);
26336 return _seq;
26337}
26338
Brandt Bucher145bf262021-02-26 14:51:55 -080026339// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026340static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026341_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026342{
26343 D(p->level++);
26344 if (p->error_indicator) {
26345 D(p->level--);
26346 return NULL;
26347 }
26348 void *_res = NULL;
26349 int _mark = p->mark;
26350 int _start_mark = p->mark;
26351 void **_children = PyMem_Malloc(sizeof(void *));
26352 if (!_children) {
26353 p->error_indicator = 1;
26354 PyErr_NoMemory();
26355 D(p->level--);
26356 return NULL;
26357 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026358 Py_ssize_t _children_capacity = 1;
26359 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026360 { // ',' star_named_expression
26361 if (p->error_indicator) {
26362 D(p->level--);
26363 return NULL;
26364 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026365 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 +010026366 Token * _literal;
26367 expr_ty elem;
26368 while (
26369 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26370 &&
26371 (elem = star_named_expression_rule(p)) // star_named_expression
26372 )
26373 {
26374 _res = elem;
26375 if (_res == NULL && PyErr_Occurred()) {
26376 p->error_indicator = 1;
26377 PyMem_Free(_children);
26378 D(p->level--);
26379 return NULL;
26380 }
26381 if (_n == _children_capacity) {
26382 _children_capacity *= 2;
26383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26384 if (!_new_children) {
26385 p->error_indicator = 1;
26386 PyErr_NoMemory();
26387 D(p->level--);
26388 return NULL;
26389 }
26390 _children = _new_children;
26391 }
26392 _children[_n++] = _res;
26393 _mark = p->mark;
26394 }
26395 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026396 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26398 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026399 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026400 if (!_seq) {
26401 PyMem_Free(_children);
26402 p->error_indicator = 1;
26403 PyErr_NoMemory();
26404 D(p->level--);
26405 return NULL;
26406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026407 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026408 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026409 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026410 D(p->level--);
26411 return _seq;
26412}
26413
Brandt Bucher145bf262021-02-26 14:51:55 -080026414// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026415static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026416_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026417{
26418 D(p->level++);
26419 if (p->error_indicator) {
26420 D(p->level--);
26421 return NULL;
26422 }
26423 asdl_seq * _res = NULL;
26424 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026425 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026426 if (p->error_indicator) {
26427 D(p->level--);
26428 return NULL;
26429 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026430 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 +010026431 expr_ty elem;
26432 asdl_seq * seq;
26433 if (
26434 (elem = star_named_expression_rule(p)) // star_named_expression
26435 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026436 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026437 )
26438 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026439 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 +010026440 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26441 goto done;
26442 }
26443 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026444 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026446 }
26447 _res = NULL;
26448 done:
26449 D(p->level--);
26450 return _res;
26451}
26452
Brandt Bucher145bf262021-02-26 14:51:55 -080026453// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026454static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026455_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026456{
26457 D(p->level++);
26458 if (p->error_indicator) {
26459 D(p->level--);
26460 return NULL;
26461 }
26462 void *_res = NULL;
26463 int _mark = p->mark;
26464 int _start_mark = p->mark;
26465 void **_children = PyMem_Malloc(sizeof(void *));
26466 if (!_children) {
26467 p->error_indicator = 1;
26468 PyErr_NoMemory();
26469 D(p->level--);
26470 return NULL;
26471 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026472 Py_ssize_t _children_capacity = 1;
26473 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026474 { // (',' expression)
26475 if (p->error_indicator) {
26476 D(p->level--);
26477 return NULL;
26478 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026479 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026480 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026481 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026482 (_tmp_184_var = _tmp_184_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026483 )
26484 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026485 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026486 if (_n == _children_capacity) {
26487 _children_capacity *= 2;
26488 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26489 if (!_new_children) {
26490 p->error_indicator = 1;
26491 PyErr_NoMemory();
26492 D(p->level--);
26493 return NULL;
26494 }
26495 _children = _new_children;
26496 }
26497 _children[_n++] = _res;
26498 _mark = p->mark;
26499 }
26500 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026501 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26503 }
26504 if (_n == 0 || p->error_indicator) {
26505 PyMem_Free(_children);
26506 D(p->level--);
26507 return NULL;
26508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026509 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026510 if (!_seq) {
26511 PyMem_Free(_children);
26512 p->error_indicator = 1;
26513 PyErr_NoMemory();
26514 D(p->level--);
26515 return NULL;
26516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026517 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026518 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026519 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026520 D(p->level--);
26521 return _seq;
26522}
26523
Brandt Bucher145bf262021-02-26 14:51:55 -080026524// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026525static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026526_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026527{
26528 D(p->level++);
26529 if (p->error_indicator) {
26530 D(p->level--);
26531 return NULL;
26532 }
26533 void *_res = NULL;
26534 int _mark = p->mark;
26535 int _start_mark = p->mark;
26536 void **_children = PyMem_Malloc(sizeof(void *));
26537 if (!_children) {
26538 p->error_indicator = 1;
26539 PyErr_NoMemory();
26540 D(p->level--);
26541 return NULL;
26542 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026543 Py_ssize_t _children_capacity = 1;
26544 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026545 { // lambda_param_no_default
26546 if (p->error_indicator) {
26547 D(p->level--);
26548 return NULL;
26549 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026550 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 +010026551 arg_ty lambda_param_no_default_var;
26552 while (
26553 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26554 )
26555 {
26556 _res = lambda_param_no_default_var;
26557 if (_n == _children_capacity) {
26558 _children_capacity *= 2;
26559 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26560 if (!_new_children) {
26561 p->error_indicator = 1;
26562 PyErr_NoMemory();
26563 D(p->level--);
26564 return NULL;
26565 }
26566 _children = _new_children;
26567 }
26568 _children[_n++] = _res;
26569 _mark = p->mark;
26570 }
26571 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026572 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026574 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026575 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026576 if (!_seq) {
26577 PyMem_Free(_children);
26578 p->error_indicator = 1;
26579 PyErr_NoMemory();
26580 D(p->level--);
26581 return NULL;
26582 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026583 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026584 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026585 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026586 D(p->level--);
26587 return _seq;
26588}
26589
Brandt Bucher145bf262021-02-26 14:51:55 -080026590// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026591static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026592_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026593{
26594 D(p->level++);
26595 if (p->error_indicator) {
26596 D(p->level--);
26597 return NULL;
26598 }
26599 void *_res = NULL;
26600 int _mark = p->mark;
26601 int _start_mark = p->mark;
26602 void **_children = PyMem_Malloc(sizeof(void *));
26603 if (!_children) {
26604 p->error_indicator = 1;
26605 PyErr_NoMemory();
26606 D(p->level--);
26607 return NULL;
26608 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026609 Py_ssize_t _children_capacity = 1;
26610 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026611 { // lambda_param_with_default
26612 if (p->error_indicator) {
26613 D(p->level--);
26614 return NULL;
26615 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026616 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 +010026617 NameDefaultPair* lambda_param_with_default_var;
26618 while (
26619 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26620 )
26621 {
26622 _res = lambda_param_with_default_var;
26623 if (_n == _children_capacity) {
26624 _children_capacity *= 2;
26625 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26626 if (!_new_children) {
26627 p->error_indicator = 1;
26628 PyErr_NoMemory();
26629 D(p->level--);
26630 return NULL;
26631 }
26632 _children = _new_children;
26633 }
26634 _children[_n++] = _res;
26635 _mark = p->mark;
26636 }
26637 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026638 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26640 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026641 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026642 if (!_seq) {
26643 PyMem_Free(_children);
26644 p->error_indicator = 1;
26645 PyErr_NoMemory();
26646 D(p->level--);
26647 return NULL;
26648 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026649 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026650 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026651 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026652 D(p->level--);
26653 return _seq;
26654}
26655
Brandt Bucher145bf262021-02-26 14:51:55 -080026656// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026657static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026658_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026659{
26660 D(p->level++);
26661 if (p->error_indicator) {
26662 D(p->level--);
26663 return NULL;
26664 }
26665 void *_res = NULL;
26666 int _mark = p->mark;
26667 int _start_mark = p->mark;
26668 void **_children = PyMem_Malloc(sizeof(void *));
26669 if (!_children) {
26670 p->error_indicator = 1;
26671 PyErr_NoMemory();
26672 D(p->level--);
26673 return NULL;
26674 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026675 Py_ssize_t _children_capacity = 1;
26676 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026677 { // lambda_param_with_default
26678 if (p->error_indicator) {
26679 D(p->level--);
26680 return NULL;
26681 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026682 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 +000026683 NameDefaultPair* lambda_param_with_default_var;
26684 while (
26685 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26686 )
26687 {
26688 _res = lambda_param_with_default_var;
26689 if (_n == _children_capacity) {
26690 _children_capacity *= 2;
26691 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26692 if (!_new_children) {
26693 p->error_indicator = 1;
26694 PyErr_NoMemory();
26695 D(p->level--);
26696 return NULL;
26697 }
26698 _children = _new_children;
26699 }
26700 _children[_n++] = _res;
26701 _mark = p->mark;
26702 }
26703 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026704 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26706 }
26707 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26708 if (!_seq) {
26709 PyMem_Free(_children);
26710 p->error_indicator = 1;
26711 PyErr_NoMemory();
26712 D(p->level--);
26713 return NULL;
26714 }
26715 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26716 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026717 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026718 D(p->level--);
26719 return _seq;
26720}
26721
Brandt Bucher145bf262021-02-26 14:51:55 -080026722// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026723static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026724_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026725{
26726 D(p->level++);
26727 if (p->error_indicator) {
26728 D(p->level--);
26729 return NULL;
26730 }
26731 void *_res = NULL;
26732 int _mark = p->mark;
26733 int _start_mark = p->mark;
26734 void **_children = PyMem_Malloc(sizeof(void *));
26735 if (!_children) {
26736 p->error_indicator = 1;
26737 PyErr_NoMemory();
26738 D(p->level--);
26739 return NULL;
26740 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026741 Py_ssize_t _children_capacity = 1;
26742 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026743 { // lambda_param_no_default
26744 if (p->error_indicator) {
26745 D(p->level--);
26746 return NULL;
26747 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026748 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 +000026749 arg_ty lambda_param_no_default_var;
26750 while (
26751 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26752 )
26753 {
26754 _res = lambda_param_no_default_var;
26755 if (_n == _children_capacity) {
26756 _children_capacity *= 2;
26757 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26758 if (!_new_children) {
26759 p->error_indicator = 1;
26760 PyErr_NoMemory();
26761 D(p->level--);
26762 return NULL;
26763 }
26764 _children = _new_children;
26765 }
26766 _children[_n++] = _res;
26767 _mark = p->mark;
26768 }
26769 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026770 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26772 }
26773 if (_n == 0 || p->error_indicator) {
26774 PyMem_Free(_children);
26775 D(p->level--);
26776 return NULL;
26777 }
26778 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26779 if (!_seq) {
26780 PyMem_Free(_children);
26781 p->error_indicator = 1;
26782 PyErr_NoMemory();
26783 D(p->level--);
26784 return NULL;
26785 }
26786 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26787 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026788 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026789 D(p->level--);
26790 return _seq;
26791}
26792
Brandt Bucher145bf262021-02-26 14:51:55 -080026793// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026795_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026796{
26797 D(p->level++);
26798 if (p->error_indicator) {
26799 D(p->level--);
26800 return NULL;
26801 }
26802 void *_res = NULL;
26803 int _mark = p->mark;
26804 int _start_mark = p->mark;
26805 void **_children = PyMem_Malloc(sizeof(void *));
26806 if (!_children) {
26807 p->error_indicator = 1;
26808 PyErr_NoMemory();
26809 D(p->level--);
26810 return NULL;
26811 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026812 Py_ssize_t _children_capacity = 1;
26813 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026814 { // lambda_param_with_default
26815 if (p->error_indicator) {
26816 D(p->level--);
26817 return NULL;
26818 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026819 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 +030026820 NameDefaultPair* lambda_param_with_default_var;
26821 while (
26822 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26823 )
26824 {
26825 _res = lambda_param_with_default_var;
26826 if (_n == _children_capacity) {
26827 _children_capacity *= 2;
26828 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26829 if (!_new_children) {
26830 p->error_indicator = 1;
26831 PyErr_NoMemory();
26832 D(p->level--);
26833 return NULL;
26834 }
26835 _children = _new_children;
26836 }
26837 _children[_n++] = _res;
26838 _mark = p->mark;
26839 }
26840 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026841 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26843 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026844 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026845 if (!_seq) {
26846 PyMem_Free(_children);
26847 p->error_indicator = 1;
26848 PyErr_NoMemory();
26849 D(p->level--);
26850 return NULL;
26851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026852 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026853 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026854 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026855 D(p->level--);
26856 return _seq;
26857}
26858
Brandt Bucher145bf262021-02-26 14:51:55 -080026859// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026860static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026861_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026862{
26863 D(p->level++);
26864 if (p->error_indicator) {
26865 D(p->level--);
26866 return NULL;
26867 }
26868 void *_res = NULL;
26869 int _mark = p->mark;
26870 int _start_mark = p->mark;
26871 void **_children = PyMem_Malloc(sizeof(void *));
26872 if (!_children) {
26873 p->error_indicator = 1;
26874 PyErr_NoMemory();
26875 D(p->level--);
26876 return NULL;
26877 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026878 Py_ssize_t _children_capacity = 1;
26879 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026880 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026881 if (p->error_indicator) {
26882 D(p->level--);
26883 return NULL;
26884 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026885 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 +000026886 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026887 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026888 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026889 )
26890 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026891 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026892 if (_n == _children_capacity) {
26893 _children_capacity *= 2;
26894 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26895 if (!_new_children) {
26896 p->error_indicator = 1;
26897 PyErr_NoMemory();
26898 D(p->level--);
26899 return NULL;
26900 }
26901 _children = _new_children;
26902 }
26903 _children[_n++] = _res;
26904 _mark = p->mark;
26905 }
26906 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026907 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026909 }
26910 if (_n == 0 || p->error_indicator) {
26911 PyMem_Free(_children);
26912 D(p->level--);
26913 return NULL;
26914 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026915 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026916 if (!_seq) {
26917 PyMem_Free(_children);
26918 p->error_indicator = 1;
26919 PyErr_NoMemory();
26920 D(p->level--);
26921 return NULL;
26922 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026923 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026924 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026925 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026926 D(p->level--);
26927 return _seq;
26928}
26929
Brandt Bucher145bf262021-02-26 14:51:55 -080026930// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026931static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026932_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026933{
26934 D(p->level++);
26935 if (p->error_indicator) {
26936 D(p->level--);
26937 return NULL;
26938 }
26939 void *_res = NULL;
26940 int _mark = p->mark;
26941 int _start_mark = p->mark;
26942 void **_children = PyMem_Malloc(sizeof(void *));
26943 if (!_children) {
26944 p->error_indicator = 1;
26945 PyErr_NoMemory();
26946 D(p->level--);
26947 return NULL;
26948 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026949 Py_ssize_t _children_capacity = 1;
26950 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026951 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026952 if (p->error_indicator) {
26953 D(p->level--);
26954 return NULL;
26955 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026956 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 +000026957 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026958 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026959 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026960 )
26961 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026962 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026963 if (_n == _children_capacity) {
26964 _children_capacity *= 2;
26965 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26966 if (!_new_children) {
26967 p->error_indicator = 1;
26968 PyErr_NoMemory();
26969 D(p->level--);
26970 return NULL;
26971 }
26972 _children = _new_children;
26973 }
26974 _children[_n++] = _res;
26975 _mark = p->mark;
26976 }
26977 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026978 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26980 }
26981 if (_n == 0 || p->error_indicator) {
26982 PyMem_Free(_children);
26983 D(p->level--);
26984 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026986 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026987 if (!_seq) {
26988 PyMem_Free(_children);
26989 p->error_indicator = 1;
26990 PyErr_NoMemory();
26991 D(p->level--);
26992 return NULL;
26993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026994 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026995 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026996 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026997 D(p->level--);
26998 return _seq;
26999}
27000
Brandt Bucher145bf262021-02-26 14:51:55 -080027001// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027002static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027003_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027004{
27005 D(p->level++);
27006 if (p->error_indicator) {
27007 D(p->level--);
27008 return NULL;
27009 }
27010 void *_res = NULL;
27011 int _mark = p->mark;
27012 int _start_mark = p->mark;
27013 void **_children = PyMem_Malloc(sizeof(void *));
27014 if (!_children) {
27015 p->error_indicator = 1;
27016 PyErr_NoMemory();
27017 D(p->level--);
27018 return NULL;
27019 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027020 Py_ssize_t _children_capacity = 1;
27021 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027022 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027023 if (p->error_indicator) {
27024 D(p->level--);
27025 return NULL;
27026 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027027 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 +000027028 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027029 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027030 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027031 )
27032 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027033 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027034 if (_n == _children_capacity) {
27035 _children_capacity *= 2;
27036 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27037 if (!_new_children) {
27038 p->error_indicator = 1;
27039 PyErr_NoMemory();
27040 D(p->level--);
27041 return NULL;
27042 }
27043 _children = _new_children;
27044 }
27045 _children[_n++] = _res;
27046 _mark = p->mark;
27047 }
27048 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027049 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027051 }
27052 if (_n == 0 || p->error_indicator) {
27053 PyMem_Free(_children);
27054 D(p->level--);
27055 return NULL;
27056 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027057 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027058 if (!_seq) {
27059 PyMem_Free(_children);
27060 p->error_indicator = 1;
27061 PyErr_NoMemory();
27062 D(p->level--);
27063 return NULL;
27064 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027065 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027066 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027067 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027068 D(p->level--);
27069 return _seq;
27070}
27071
Brandt Bucher145bf262021-02-26 14:51:55 -080027072// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027073static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027074_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027075{
27076 D(p->level++);
27077 if (p->error_indicator) {
27078 D(p->level--);
27079 return NULL;
27080 }
27081 void *_res = NULL;
27082 int _mark = p->mark;
27083 int _start_mark = p->mark;
27084 void **_children = PyMem_Malloc(sizeof(void *));
27085 if (!_children) {
27086 p->error_indicator = 1;
27087 PyErr_NoMemory();
27088 D(p->level--);
27089 return NULL;
27090 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027091 Py_ssize_t _children_capacity = 1;
27092 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027093 { // lambda_param_no_default
27094 if (p->error_indicator) {
27095 D(p->level--);
27096 return NULL;
27097 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027098 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 +010027099 arg_ty lambda_param_no_default_var;
27100 while (
27101 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27102 )
27103 {
27104 _res = lambda_param_no_default_var;
27105 if (_n == _children_capacity) {
27106 _children_capacity *= 2;
27107 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27108 if (!_new_children) {
27109 p->error_indicator = 1;
27110 PyErr_NoMemory();
27111 D(p->level--);
27112 return NULL;
27113 }
27114 _children = _new_children;
27115 }
27116 _children[_n++] = _res;
27117 _mark = p->mark;
27118 }
27119 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027120 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27122 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027123 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027124 if (!_seq) {
27125 PyMem_Free(_children);
27126 p->error_indicator = 1;
27127 PyErr_NoMemory();
27128 D(p->level--);
27129 return NULL;
27130 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027131 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027132 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027133 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027134 D(p->level--);
27135 return _seq;
27136}
27137
Brandt Bucher145bf262021-02-26 14:51:55 -080027138// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027139static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027140_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027141{
27142 D(p->level++);
27143 if (p->error_indicator) {
27144 D(p->level--);
27145 return NULL;
27146 }
27147 void *_res = NULL;
27148 int _mark = p->mark;
27149 int _start_mark = p->mark;
27150 void **_children = PyMem_Malloc(sizeof(void *));
27151 if (!_children) {
27152 p->error_indicator = 1;
27153 PyErr_NoMemory();
27154 D(p->level--);
27155 return NULL;
27156 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027157 Py_ssize_t _children_capacity = 1;
27158 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027159 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027160 if (p->error_indicator) {
27161 D(p->level--);
27162 return NULL;
27163 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027164 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 +000027165 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027166 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027167 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027168 )
27169 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027170 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027171 if (_n == _children_capacity) {
27172 _children_capacity *= 2;
27173 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27174 if (!_new_children) {
27175 p->error_indicator = 1;
27176 PyErr_NoMemory();
27177 D(p->level--);
27178 return NULL;
27179 }
27180 _children = _new_children;
27181 }
27182 _children[_n++] = _res;
27183 _mark = p->mark;
27184 }
27185 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027186 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027188 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027189 if (_n == 0 || p->error_indicator) {
27190 PyMem_Free(_children);
27191 D(p->level--);
27192 return NULL;
27193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027194 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027195 if (!_seq) {
27196 PyMem_Free(_children);
27197 p->error_indicator = 1;
27198 PyErr_NoMemory();
27199 D(p->level--);
27200 return NULL;
27201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027202 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027203 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027204 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027205 D(p->level--);
27206 return _seq;
27207}
27208
Brandt Bucher145bf262021-02-26 14:51:55 -080027209// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027210static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027211_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027212{
27213 D(p->level++);
27214 if (p->error_indicator) {
27215 D(p->level--);
27216 return NULL;
27217 }
27218 void *_res = NULL;
27219 int _mark = p->mark;
27220 int _start_mark = p->mark;
27221 void **_children = PyMem_Malloc(sizeof(void *));
27222 if (!_children) {
27223 p->error_indicator = 1;
27224 PyErr_NoMemory();
27225 D(p->level--);
27226 return NULL;
27227 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027228 Py_ssize_t _children_capacity = 1;
27229 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027230 { // lambda_param_no_default
27231 if (p->error_indicator) {
27232 D(p->level--);
27233 return NULL;
27234 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027235 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 +010027236 arg_ty lambda_param_no_default_var;
27237 while (
27238 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27239 )
27240 {
27241 _res = lambda_param_no_default_var;
27242 if (_n == _children_capacity) {
27243 _children_capacity *= 2;
27244 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27245 if (!_new_children) {
27246 p->error_indicator = 1;
27247 PyErr_NoMemory();
27248 D(p->level--);
27249 return NULL;
27250 }
27251 _children = _new_children;
27252 }
27253 _children[_n++] = _res;
27254 _mark = p->mark;
27255 }
27256 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027257 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27259 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027260 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027261 if (!_seq) {
27262 PyMem_Free(_children);
27263 p->error_indicator = 1;
27264 PyErr_NoMemory();
27265 D(p->level--);
27266 return NULL;
27267 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027268 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027269 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027270 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027271 D(p->level--);
27272 return _seq;
27273}
27274
Brandt Bucher145bf262021-02-26 14:51:55 -080027275// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027276static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027277_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027278{
27279 D(p->level++);
27280 if (p->error_indicator) {
27281 D(p->level--);
27282 return NULL;
27283 }
27284 void *_res = NULL;
27285 int _mark = p->mark;
27286 int _start_mark = p->mark;
27287 void **_children = PyMem_Malloc(sizeof(void *));
27288 if (!_children) {
27289 p->error_indicator = 1;
27290 PyErr_NoMemory();
27291 D(p->level--);
27292 return NULL;
27293 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027294 Py_ssize_t _children_capacity = 1;
27295 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027296 { // lambda_param_with_default
27297 if (p->error_indicator) {
27298 D(p->level--);
27299 return NULL;
27300 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027301 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 +010027302 NameDefaultPair* lambda_param_with_default_var;
27303 while (
27304 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27305 )
27306 {
27307 _res = lambda_param_with_default_var;
27308 if (_n == _children_capacity) {
27309 _children_capacity *= 2;
27310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27311 if (!_new_children) {
27312 p->error_indicator = 1;
27313 PyErr_NoMemory();
27314 D(p->level--);
27315 return NULL;
27316 }
27317 _children = _new_children;
27318 }
27319 _children[_n++] = _res;
27320 _mark = p->mark;
27321 }
27322 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027323 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27325 }
27326 if (_n == 0 || p->error_indicator) {
27327 PyMem_Free(_children);
27328 D(p->level--);
27329 return NULL;
27330 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027331 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027332 if (!_seq) {
27333 PyMem_Free(_children);
27334 p->error_indicator = 1;
27335 PyErr_NoMemory();
27336 D(p->level--);
27337 return NULL;
27338 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027339 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027340 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027341 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027342 D(p->level--);
27343 return _seq;
27344}
27345
Brandt Bucher145bf262021-02-26 14:51:55 -080027346// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027347static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027348_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349{
27350 D(p->level++);
27351 if (p->error_indicator) {
27352 D(p->level--);
27353 return NULL;
27354 }
27355 void *_res = NULL;
27356 int _mark = p->mark;
27357 int _start_mark = p->mark;
27358 void **_children = PyMem_Malloc(sizeof(void *));
27359 if (!_children) {
27360 p->error_indicator = 1;
27361 PyErr_NoMemory();
27362 D(p->level--);
27363 return NULL;
27364 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027365 Py_ssize_t _children_capacity = 1;
27366 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027367 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027368 if (p->error_indicator) {
27369 D(p->level--);
27370 return NULL;
27371 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027372 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 +000027373 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027374 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027375 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027376 )
27377 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027378 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027379 if (_n == _children_capacity) {
27380 _children_capacity *= 2;
27381 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27382 if (!_new_children) {
27383 p->error_indicator = 1;
27384 PyErr_NoMemory();
27385 D(p->level--);
27386 return NULL;
27387 }
27388 _children = _new_children;
27389 }
27390 _children[_n++] = _res;
27391 _mark = p->mark;
27392 }
27393 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027394 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027396 }
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, _loop0_102_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// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027414_loop1_103_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 int _start_mark = p->mark;
27424 void **_children = PyMem_Malloc(sizeof(void *));
27425 if (!_children) {
27426 p->error_indicator = 1;
27427 PyErr_NoMemory();
27428 D(p->level--);
27429 return NULL;
27430 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027431 Py_ssize_t _children_capacity = 1;
27432 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027433 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027434 if (p->error_indicator) {
27435 D(p->level--);
27436 return NULL;
27437 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027438 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 +000027439 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027440 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027441 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027442 )
27443 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027444 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 if (_n == _children_capacity) {
27446 _children_capacity *= 2;
27447 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27448 if (!_new_children) {
27449 p->error_indicator = 1;
27450 PyErr_NoMemory();
27451 D(p->level--);
27452 return NULL;
27453 }
27454 _children = _new_children;
27455 }
27456 _children[_n++] = _res;
27457 _mark = p->mark;
27458 }
27459 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027460 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027462 }
27463 if (_n == 0 || p->error_indicator) {
27464 PyMem_Free(_children);
27465 D(p->level--);
27466 return NULL;
27467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027469 if (!_seq) {
27470 PyMem_Free(_children);
27471 p->error_indicator = 1;
27472 PyErr_NoMemory();
27473 D(p->level--);
27474 return NULL;
27475 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027477 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027478 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027479 D(p->level--);
27480 return _seq;
27481}
27482
Brandt Bucher145bf262021-02-26 14:51:55 -080027483// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027484static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027485_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027486{
27487 D(p->level++);
27488 if (p->error_indicator) {
27489 D(p->level--);
27490 return NULL;
27491 }
27492 void *_res = NULL;
27493 int _mark = p->mark;
27494 int _start_mark = p->mark;
27495 void **_children = PyMem_Malloc(sizeof(void *));
27496 if (!_children) {
27497 p->error_indicator = 1;
27498 PyErr_NoMemory();
27499 D(p->level--);
27500 return NULL;
27501 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027502 Py_ssize_t _children_capacity = 1;
27503 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027504 { // ('or' conjunction)
27505 if (p->error_indicator) {
27506 D(p->level--);
27507 return NULL;
27508 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027509 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027510 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027511 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027512 (_tmp_185_var = _tmp_185_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027513 )
27514 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027515 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027516 if (_n == _children_capacity) {
27517 _children_capacity *= 2;
27518 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27519 if (!_new_children) {
27520 p->error_indicator = 1;
27521 PyErr_NoMemory();
27522 D(p->level--);
27523 return NULL;
27524 }
27525 _children = _new_children;
27526 }
27527 _children[_n++] = _res;
27528 _mark = p->mark;
27529 }
27530 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027531 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27533 }
27534 if (_n == 0 || p->error_indicator) {
27535 PyMem_Free(_children);
27536 D(p->level--);
27537 return NULL;
27538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027540 if (!_seq) {
27541 PyMem_Free(_children);
27542 p->error_indicator = 1;
27543 PyErr_NoMemory();
27544 D(p->level--);
27545 return NULL;
27546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027548 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027549 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027550 D(p->level--);
27551 return _seq;
27552}
27553
Brandt Bucher145bf262021-02-26 14:51:55 -080027554// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027555static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027556_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027557{
27558 D(p->level++);
27559 if (p->error_indicator) {
27560 D(p->level--);
27561 return NULL;
27562 }
27563 void *_res = NULL;
27564 int _mark = p->mark;
27565 int _start_mark = p->mark;
27566 void **_children = PyMem_Malloc(sizeof(void *));
27567 if (!_children) {
27568 p->error_indicator = 1;
27569 PyErr_NoMemory();
27570 D(p->level--);
27571 return NULL;
27572 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027573 Py_ssize_t _children_capacity = 1;
27574 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027575 { // ('and' inversion)
27576 if (p->error_indicator) {
27577 D(p->level--);
27578 return NULL;
27579 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027580 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027581 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027582 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027583 (_tmp_186_var = _tmp_186_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027584 )
27585 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027586 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027587 if (_n == _children_capacity) {
27588 _children_capacity *= 2;
27589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27590 if (!_new_children) {
27591 p->error_indicator = 1;
27592 PyErr_NoMemory();
27593 D(p->level--);
27594 return NULL;
27595 }
27596 _children = _new_children;
27597 }
27598 _children[_n++] = _res;
27599 _mark = p->mark;
27600 }
27601 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027602 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27604 }
27605 if (_n == 0 || p->error_indicator) {
27606 PyMem_Free(_children);
27607 D(p->level--);
27608 return NULL;
27609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027610 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027611 if (!_seq) {
27612 PyMem_Free(_children);
27613 p->error_indicator = 1;
27614 PyErr_NoMemory();
27615 D(p->level--);
27616 return NULL;
27617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027618 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027619 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027620 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027621 D(p->level--);
27622 return _seq;
27623}
27624
Brandt Bucher145bf262021-02-26 14:51:55 -080027625// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027626static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027627_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027628{
27629 D(p->level++);
27630 if (p->error_indicator) {
27631 D(p->level--);
27632 return NULL;
27633 }
27634 void *_res = NULL;
27635 int _mark = p->mark;
27636 int _start_mark = p->mark;
27637 void **_children = PyMem_Malloc(sizeof(void *));
27638 if (!_children) {
27639 p->error_indicator = 1;
27640 PyErr_NoMemory();
27641 D(p->level--);
27642 return NULL;
27643 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027644 Py_ssize_t _children_capacity = 1;
27645 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027646 { // compare_op_bitwise_or_pair
27647 if (p->error_indicator) {
27648 D(p->level--);
27649 return NULL;
27650 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027651 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 +010027652 CmpopExprPair* compare_op_bitwise_or_pair_var;
27653 while (
27654 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27655 )
27656 {
27657 _res = compare_op_bitwise_or_pair_var;
27658 if (_n == _children_capacity) {
27659 _children_capacity *= 2;
27660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27661 if (!_new_children) {
27662 p->error_indicator = 1;
27663 PyErr_NoMemory();
27664 D(p->level--);
27665 return NULL;
27666 }
27667 _children = _new_children;
27668 }
27669 _children[_n++] = _res;
27670 _mark = p->mark;
27671 }
27672 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027673 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27675 }
27676 if (_n == 0 || p->error_indicator) {
27677 PyMem_Free(_children);
27678 D(p->level--);
27679 return NULL;
27680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027681 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027682 if (!_seq) {
27683 PyMem_Free(_children);
27684 p->error_indicator = 1;
27685 PyErr_NoMemory();
27686 D(p->level--);
27687 return NULL;
27688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027689 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027690 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027691 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027692 D(p->level--);
27693 return _seq;
27694}
27695
Brandt Bucher145bf262021-02-26 14:51:55 -080027696// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027697static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027698_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027699{
27700 D(p->level++);
27701 if (p->error_indicator) {
27702 D(p->level--);
27703 return NULL;
27704 }
27705 void * _res = NULL;
27706 int _mark = p->mark;
27707 { // '!='
27708 if (p->error_indicator) {
27709 D(p->level--);
27710 return NULL;
27711 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027712 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027713 Token * tok;
27714 if (
27715 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27716 )
27717 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027718 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027719 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027720 if (_res == NULL && PyErr_Occurred()) {
27721 p->error_indicator = 1;
27722 D(p->level--);
27723 return NULL;
27724 }
27725 goto done;
27726 }
27727 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027728 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27730 }
27731 _res = NULL;
27732 done:
27733 D(p->level--);
27734 return _res;
27735}
27736
Brandt Bucher145bf262021-02-26 14:51:55 -080027737// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027738static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027739_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027740{
27741 D(p->level++);
27742 if (p->error_indicator) {
27743 D(p->level--);
27744 return NULL;
27745 }
27746 void *_res = NULL;
27747 int _mark = p->mark;
27748 int _start_mark = p->mark;
27749 void **_children = PyMem_Malloc(sizeof(void *));
27750 if (!_children) {
27751 p->error_indicator = 1;
27752 PyErr_NoMemory();
27753 D(p->level--);
27754 return NULL;
27755 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027756 Py_ssize_t _children_capacity = 1;
27757 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027758 { // ',' slice
27759 if (p->error_indicator) {
27760 D(p->level--);
27761 return NULL;
27762 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027763 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027764 Token * _literal;
27765 expr_ty elem;
27766 while (
27767 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27768 &&
27769 (elem = slice_rule(p)) // slice
27770 )
27771 {
27772 _res = elem;
27773 if (_res == NULL && PyErr_Occurred()) {
27774 p->error_indicator = 1;
27775 PyMem_Free(_children);
27776 D(p->level--);
27777 return NULL;
27778 }
27779 if (_n == _children_capacity) {
27780 _children_capacity *= 2;
27781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27782 if (!_new_children) {
27783 p->error_indicator = 1;
27784 PyErr_NoMemory();
27785 D(p->level--);
27786 return NULL;
27787 }
27788 _children = _new_children;
27789 }
27790 _children[_n++] = _res;
27791 _mark = p->mark;
27792 }
27793 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027794 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027798 if (!_seq) {
27799 PyMem_Free(_children);
27800 p->error_indicator = 1;
27801 PyErr_NoMemory();
27802 D(p->level--);
27803 return NULL;
27804 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027806 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027807 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027808 D(p->level--);
27809 return _seq;
27810}
27811
Brandt Bucher145bf262021-02-26 14:51:55 -080027812// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027813static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027814_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027815{
27816 D(p->level++);
27817 if (p->error_indicator) {
27818 D(p->level--);
27819 return NULL;
27820 }
27821 asdl_seq * _res = NULL;
27822 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027823 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027824 if (p->error_indicator) {
27825 D(p->level--);
27826 return NULL;
27827 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027828 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 +010027829 expr_ty elem;
27830 asdl_seq * seq;
27831 if (
27832 (elem = slice_rule(p)) // slice
27833 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027834 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027835 )
27836 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027837 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 +010027838 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27839 goto done;
27840 }
27841 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027842 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027844 }
27845 _res = NULL;
27846 done:
27847 D(p->level--);
27848 return _res;
27849}
27850
Brandt Bucher145bf262021-02-26 14:51:55 -080027851// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027852static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027853_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027854{
27855 D(p->level++);
27856 if (p->error_indicator) {
27857 D(p->level--);
27858 return NULL;
27859 }
27860 void * _res = NULL;
27861 int _mark = p->mark;
27862 { // ':' expression?
27863 if (p->error_indicator) {
27864 D(p->level--);
27865 return NULL;
27866 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027867 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027868 Token * _literal;
27869 void *d;
27870 if (
27871 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27872 &&
27873 (d = expression_rule(p), 1) // expression?
27874 )
27875 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027876 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027877 _res = d;
27878 if (_res == NULL && PyErr_Occurred()) {
27879 p->error_indicator = 1;
27880 D(p->level--);
27881 return NULL;
27882 }
27883 goto done;
27884 }
27885 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027886 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27888 }
27889 _res = NULL;
27890 done:
27891 D(p->level--);
27892 return _res;
27893}
27894
Brandt Bucher145bf262021-02-26 14:51:55 -080027895// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027896static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027897_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027898{
27899 D(p->level++);
27900 if (p->error_indicator) {
27901 D(p->level--);
27902 return NULL;
27903 }
27904 void * _res = NULL;
27905 int _mark = p->mark;
27906 { // tuple
27907 if (p->error_indicator) {
27908 D(p->level--);
27909 return NULL;
27910 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027911 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027912 expr_ty tuple_var;
27913 if (
27914 (tuple_var = tuple_rule(p)) // tuple
27915 )
27916 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027917 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027918 _res = tuple_var;
27919 goto done;
27920 }
27921 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027922 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27924 }
27925 { // group
27926 if (p->error_indicator) {
27927 D(p->level--);
27928 return NULL;
27929 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027930 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027931 expr_ty group_var;
27932 if (
27933 (group_var = group_rule(p)) // group
27934 )
27935 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027936 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027937 _res = group_var;
27938 goto done;
27939 }
27940 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027941 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27943 }
27944 { // genexp
27945 if (p->error_indicator) {
27946 D(p->level--);
27947 return NULL;
27948 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027949 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027950 expr_ty genexp_var;
27951 if (
27952 (genexp_var = genexp_rule(p)) // genexp
27953 )
27954 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027955 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956 _res = genexp_var;
27957 goto done;
27958 }
27959 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027960 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27962 }
27963 _res = NULL;
27964 done:
27965 D(p->level--);
27966 return _res;
27967}
27968
Brandt Bucher145bf262021-02-26 14:51:55 -080027969// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027970static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027971_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027972{
27973 D(p->level++);
27974 if (p->error_indicator) {
27975 D(p->level--);
27976 return NULL;
27977 }
27978 void * _res = NULL;
27979 int _mark = p->mark;
27980 { // list
27981 if (p->error_indicator) {
27982 D(p->level--);
27983 return NULL;
27984 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027985 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027986 expr_ty list_var;
27987 if (
27988 (list_var = list_rule(p)) // list
27989 )
27990 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027991 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027992 _res = list_var;
27993 goto done;
27994 }
27995 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027996 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27998 }
27999 { // listcomp
28000 if (p->error_indicator) {
28001 D(p->level--);
28002 return NULL;
28003 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028004 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028005 expr_ty listcomp_var;
28006 if (
28007 (listcomp_var = listcomp_rule(p)) // listcomp
28008 )
28009 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028010 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028011 _res = listcomp_var;
28012 goto done;
28013 }
28014 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028015 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
28017 }
28018 _res = NULL;
28019 done:
28020 D(p->level--);
28021 return _res;
28022}
28023
Brandt Bucher145bf262021-02-26 14:51:55 -080028024// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028025static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028026_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028027{
28028 D(p->level++);
28029 if (p->error_indicator) {
28030 D(p->level--);
28031 return NULL;
28032 }
28033 void * _res = NULL;
28034 int _mark = p->mark;
28035 { // dict
28036 if (p->error_indicator) {
28037 D(p->level--);
28038 return NULL;
28039 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028040 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028041 expr_ty dict_var;
28042 if (
28043 (dict_var = dict_rule(p)) // dict
28044 )
28045 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028046 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028047 _res = dict_var;
28048 goto done;
28049 }
28050 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028051 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28053 }
28054 { // set
28055 if (p->error_indicator) {
28056 D(p->level--);
28057 return NULL;
28058 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028059 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028060 expr_ty set_var;
28061 if (
28062 (set_var = set_rule(p)) // set
28063 )
28064 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028065 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028066 _res = set_var;
28067 goto done;
28068 }
28069 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028070 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28072 }
28073 { // dictcomp
28074 if (p->error_indicator) {
28075 D(p->level--);
28076 return NULL;
28077 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028078 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028079 expr_ty dictcomp_var;
28080 if (
28081 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28082 )
28083 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028084 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028085 _res = dictcomp_var;
28086 goto done;
28087 }
28088 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028089 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28091 }
28092 { // setcomp
28093 if (p->error_indicator) {
28094 D(p->level--);
28095 return NULL;
28096 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028097 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028098 expr_ty setcomp_var;
28099 if (
28100 (setcomp_var = setcomp_rule(p)) // setcomp
28101 )
28102 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028103 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028104 _res = setcomp_var;
28105 goto done;
28106 }
28107 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028108 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28110 }
28111 _res = NULL;
28112 done:
28113 D(p->level--);
28114 return _res;
28115}
28116
Brandt Bucher145bf262021-02-26 14:51:55 -080028117// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028118static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028119_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028120{
28121 D(p->level++);
28122 if (p->error_indicator) {
28123 D(p->level--);
28124 return NULL;
28125 }
28126 void *_res = NULL;
28127 int _mark = p->mark;
28128 int _start_mark = p->mark;
28129 void **_children = PyMem_Malloc(sizeof(void *));
28130 if (!_children) {
28131 p->error_indicator = 1;
28132 PyErr_NoMemory();
28133 D(p->level--);
28134 return NULL;
28135 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028136 Py_ssize_t _children_capacity = 1;
28137 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028138 { // STRING
28139 if (p->error_indicator) {
28140 D(p->level--);
28141 return NULL;
28142 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028143 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028144 expr_ty string_var;
28145 while (
28146 (string_var = _PyPegen_string_token(p)) // STRING
28147 )
28148 {
28149 _res = string_var;
28150 if (_n == _children_capacity) {
28151 _children_capacity *= 2;
28152 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28153 if (!_new_children) {
28154 p->error_indicator = 1;
28155 PyErr_NoMemory();
28156 D(p->level--);
28157 return NULL;
28158 }
28159 _children = _new_children;
28160 }
28161 _children[_n++] = _res;
28162 _mark = p->mark;
28163 }
28164 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028165 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28167 }
28168 if (_n == 0 || p->error_indicator) {
28169 PyMem_Free(_children);
28170 D(p->level--);
28171 return NULL;
28172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028173 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028174 if (!_seq) {
28175 PyMem_Free(_children);
28176 p->error_indicator = 1;
28177 PyErr_NoMemory();
28178 D(p->level--);
28179 return NULL;
28180 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028181 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028182 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028183 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028184 D(p->level--);
28185 return _seq;
28186}
28187
Brandt Bucher145bf262021-02-26 14:51:55 -080028188// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028189static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028190_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028191{
28192 D(p->level++);
28193 if (p->error_indicator) {
28194 D(p->level--);
28195 return NULL;
28196 }
28197 void * _res = NULL;
28198 int _mark = p->mark;
28199 { // star_named_expression ',' star_named_expressions?
28200 if (p->error_indicator) {
28201 D(p->level--);
28202 return NULL;
28203 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028204 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 +010028205 Token * _literal;
28206 expr_ty y;
28207 void *z;
28208 if (
28209 (y = star_named_expression_rule(p)) // star_named_expression
28210 &&
28211 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28212 &&
28213 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28214 )
28215 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028216 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 +010028217 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28218 if (_res == NULL && PyErr_Occurred()) {
28219 p->error_indicator = 1;
28220 D(p->level--);
28221 return NULL;
28222 }
28223 goto done;
28224 }
28225 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028226 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28228 }
28229 _res = NULL;
28230 done:
28231 D(p->level--);
28232 return _res;
28233}
28234
Brandt Bucher145bf262021-02-26 14:51:55 -080028235// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028236static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028237_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028238{
28239 D(p->level++);
28240 if (p->error_indicator) {
28241 D(p->level--);
28242 return NULL;
28243 }
28244 void * _res = NULL;
28245 int _mark = p->mark;
28246 { // yield_expr
28247 if (p->error_indicator) {
28248 D(p->level--);
28249 return NULL;
28250 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028251 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028252 expr_ty yield_expr_var;
28253 if (
28254 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28255 )
28256 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028257 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 +010028258 _res = yield_expr_var;
28259 goto done;
28260 }
28261 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028262 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28264 }
28265 { // named_expression
28266 if (p->error_indicator) {
28267 D(p->level--);
28268 return NULL;
28269 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028270 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028271 expr_ty named_expression_var;
28272 if (
28273 (named_expression_var = named_expression_rule(p)) // named_expression
28274 )
28275 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028276 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 +010028277 _res = named_expression_var;
28278 goto done;
28279 }
28280 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028281 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28283 }
28284 _res = NULL;
28285 done:
28286 D(p->level--);
28287 return _res;
28288}
28289
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028290// _tmp_117: assigment_expression | expression !':='
28291static void *
28292_tmp_117_rule(Parser *p)
28293{
28294 D(p->level++);
28295 if (p->error_indicator) {
28296 D(p->level--);
28297 return NULL;
28298 }
28299 void * _res = NULL;
28300 int _mark = p->mark;
28301 { // assigment_expression
28302 if (p->error_indicator) {
28303 D(p->level--);
28304 return NULL;
28305 }
28306 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28307 expr_ty assigment_expression_var;
28308 if (
28309 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28310 )
28311 {
28312 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28313 _res = assigment_expression_var;
28314 goto done;
28315 }
28316 p->mark = _mark;
28317 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28319 }
28320 { // expression !':='
28321 if (p->error_indicator) {
28322 D(p->level--);
28323 return NULL;
28324 }
28325 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28326 expr_ty expression_var;
28327 if (
28328 (expression_var = expression_rule(p)) // expression
28329 &&
28330 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28331 )
28332 {
28333 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28334 _res = expression_var;
28335 goto done;
28336 }
28337 p->mark = _mark;
28338 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28340 }
28341 _res = NULL;
28342 done:
28343 D(p->level--);
28344 return _res;
28345}
28346
28347// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028348static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028349_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028350{
28351 D(p->level++);
28352 if (p->error_indicator) {
28353 D(p->level--);
28354 return NULL;
28355 }
28356 void *_res = NULL;
28357 int _mark = p->mark;
28358 int _start_mark = p->mark;
28359 void **_children = PyMem_Malloc(sizeof(void *));
28360 if (!_children) {
28361 p->error_indicator = 1;
28362 PyErr_NoMemory();
28363 D(p->level--);
28364 return NULL;
28365 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028366 Py_ssize_t _children_capacity = 1;
28367 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028368 { // ',' double_starred_kvpair
28369 if (p->error_indicator) {
28370 D(p->level--);
28371 return NULL;
28372 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028373 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028374 Token * _literal;
28375 KeyValuePair* elem;
28376 while (
28377 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28378 &&
28379 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28380 )
28381 {
28382 _res = elem;
28383 if (_res == NULL && PyErr_Occurred()) {
28384 p->error_indicator = 1;
28385 PyMem_Free(_children);
28386 D(p->level--);
28387 return NULL;
28388 }
28389 if (_n == _children_capacity) {
28390 _children_capacity *= 2;
28391 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28392 if (!_new_children) {
28393 p->error_indicator = 1;
28394 PyErr_NoMemory();
28395 D(p->level--);
28396 return NULL;
28397 }
28398 _children = _new_children;
28399 }
28400 _children[_n++] = _res;
28401 _mark = p->mark;
28402 }
28403 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028404 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028407 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028408 if (!_seq) {
28409 PyMem_Free(_children);
28410 p->error_indicator = 1;
28411 PyErr_NoMemory();
28412 D(p->level--);
28413 return NULL;
28414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028415 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028416 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028417 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028418 D(p->level--);
28419 return _seq;
28420}
28421
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028422// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028423static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028424_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028425{
28426 D(p->level++);
28427 if (p->error_indicator) {
28428 D(p->level--);
28429 return NULL;
28430 }
28431 asdl_seq * _res = NULL;
28432 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028433 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028434 if (p->error_indicator) {
28435 D(p->level--);
28436 return NULL;
28437 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028438 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028439 KeyValuePair* elem;
28440 asdl_seq * seq;
28441 if (
28442 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28443 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028444 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028445 )
28446 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028447 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028448 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28449 goto done;
28450 }
28451 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028452 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028454 }
28455 _res = NULL;
28456 done:
28457 D(p->level--);
28458 return _res;
28459}
28460
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028461// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028462static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028463_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028464{
28465 D(p->level++);
28466 if (p->error_indicator) {
28467 D(p->level--);
28468 return NULL;
28469 }
28470 void *_res = NULL;
28471 int _mark = p->mark;
28472 int _start_mark = p->mark;
28473 void **_children = PyMem_Malloc(sizeof(void *));
28474 if (!_children) {
28475 p->error_indicator = 1;
28476 PyErr_NoMemory();
28477 D(p->level--);
28478 return NULL;
28479 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028480 Py_ssize_t _children_capacity = 1;
28481 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028482 { // for_if_clause
28483 if (p->error_indicator) {
28484 D(p->level--);
28485 return NULL;
28486 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028487 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028488 comprehension_ty for_if_clause_var;
28489 while (
28490 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28491 )
28492 {
28493 _res = for_if_clause_var;
28494 if (_n == _children_capacity) {
28495 _children_capacity *= 2;
28496 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28497 if (!_new_children) {
28498 p->error_indicator = 1;
28499 PyErr_NoMemory();
28500 D(p->level--);
28501 return NULL;
28502 }
28503 _children = _new_children;
28504 }
28505 _children[_n++] = _res;
28506 _mark = p->mark;
28507 }
28508 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028509 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28511 }
28512 if (_n == 0 || p->error_indicator) {
28513 PyMem_Free(_children);
28514 D(p->level--);
28515 return NULL;
28516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028517 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028518 if (!_seq) {
28519 PyMem_Free(_children);
28520 p->error_indicator = 1;
28521 PyErr_NoMemory();
28522 D(p->level--);
28523 return NULL;
28524 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028525 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028526 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028527 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028528 D(p->level--);
28529 return _seq;
28530}
28531
Brandt Bucher145bf262021-02-26 14:51:55 -080028532// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028533static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028534_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028535{
28536 D(p->level++);
28537 if (p->error_indicator) {
28538 D(p->level--);
28539 return NULL;
28540 }
28541 void *_res = NULL;
28542 int _mark = p->mark;
28543 int _start_mark = p->mark;
28544 void **_children = PyMem_Malloc(sizeof(void *));
28545 if (!_children) {
28546 p->error_indicator = 1;
28547 PyErr_NoMemory();
28548 D(p->level--);
28549 return NULL;
28550 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028551 Py_ssize_t _children_capacity = 1;
28552 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028553 { // ('if' disjunction)
28554 if (p->error_indicator) {
28555 D(p->level--);
28556 return NULL;
28557 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028558 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028559 void *_tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028560 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028561 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028562 )
28563 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028564 _res = _tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028565 if (_n == _children_capacity) {
28566 _children_capacity *= 2;
28567 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28568 if (!_new_children) {
28569 p->error_indicator = 1;
28570 PyErr_NoMemory();
28571 D(p->level--);
28572 return NULL;
28573 }
28574 _children = _new_children;
28575 }
28576 _children[_n++] = _res;
28577 _mark = p->mark;
28578 }
28579 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028580 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28582 }
28583 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28584 if (!_seq) {
28585 PyMem_Free(_children);
28586 p->error_indicator = 1;
28587 PyErr_NoMemory();
28588 D(p->level--);
28589 return NULL;
28590 }
28591 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28592 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028593 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028594 D(p->level--);
28595 return _seq;
28596}
28597
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028598// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028599static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028600_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028601{
28602 D(p->level++);
28603 if (p->error_indicator) {
28604 D(p->level--);
28605 return NULL;
28606 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028607 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028608 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028609 int _start_mark = p->mark;
28610 void **_children = PyMem_Malloc(sizeof(void *));
28611 if (!_children) {
28612 p->error_indicator = 1;
28613 PyErr_NoMemory();
28614 D(p->level--);
28615 return NULL;
28616 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028617 Py_ssize_t _children_capacity = 1;
28618 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028619 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028620 if (p->error_indicator) {
28621 D(p->level--);
28622 return NULL;
28623 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028624 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028625 void *_tmp_188_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028626 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028627 (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028628 )
28629 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028630 _res = _tmp_188_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028631 if (_n == _children_capacity) {
28632 _children_capacity *= 2;
28633 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28634 if (!_new_children) {
28635 p->error_indicator = 1;
28636 PyErr_NoMemory();
28637 D(p->level--);
28638 return NULL;
28639 }
28640 _children = _new_children;
28641 }
28642 _children[_n++] = _res;
28643 _mark = p->mark;
28644 }
28645 p->mark = _mark;
28646 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28648 }
28649 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28650 if (!_seq) {
28651 PyMem_Free(_children);
28652 p->error_indicator = 1;
28653 PyErr_NoMemory();
28654 D(p->level--);
28655 return NULL;
28656 }
28657 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28658 PyMem_Free(_children);
28659 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28660 D(p->level--);
28661 return _seq;
28662}
28663
28664// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28665static asdl_seq *
28666_loop0_124_rule(Parser *p)
28667{
28668 D(p->level++);
28669 if (p->error_indicator) {
28670 D(p->level--);
28671 return NULL;
28672 }
28673 void *_res = NULL;
28674 int _mark = p->mark;
28675 int _start_mark = p->mark;
28676 void **_children = PyMem_Malloc(sizeof(void *));
28677 if (!_children) {
28678 p->error_indicator = 1;
28679 PyErr_NoMemory();
28680 D(p->level--);
28681 return NULL;
28682 }
28683 Py_ssize_t _children_capacity = 1;
28684 Py_ssize_t _n = 0;
28685 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28686 if (p->error_indicator) {
28687 D(p->level--);
28688 return NULL;
28689 }
28690 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028691 Token * _literal;
28692 void *elem;
28693 while (
28694 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28695 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028696 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028697 )
28698 {
28699 _res = elem;
28700 if (_res == NULL && PyErr_Occurred()) {
28701 p->error_indicator = 1;
28702 PyMem_Free(_children);
28703 D(p->level--);
28704 return NULL;
28705 }
28706 if (_n == _children_capacity) {
28707 _children_capacity *= 2;
28708 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28709 if (!_new_children) {
28710 p->error_indicator = 1;
28711 PyErr_NoMemory();
28712 D(p->level--);
28713 return NULL;
28714 }
28715 _children = _new_children;
28716 }
28717 _children[_n++] = _res;
28718 _mark = p->mark;
28719 }
28720 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028721 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028723 }
28724 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28725 if (!_seq) {
28726 PyMem_Free(_children);
28727 p->error_indicator = 1;
28728 PyErr_NoMemory();
28729 D(p->level--);
28730 return NULL;
28731 }
28732 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28733 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028734 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028735 D(p->level--);
28736 return _seq;
28737}
28738
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028739// _gather_123:
28740// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028741static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028742_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028743{
28744 D(p->level++);
28745 if (p->error_indicator) {
28746 D(p->level--);
28747 return NULL;
28748 }
28749 asdl_seq * _res = NULL;
28750 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028751 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028752 if (p->error_indicator) {
28753 D(p->level--);
28754 return NULL;
28755 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028756 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028757 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028758 asdl_seq * seq;
28759 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028760 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028761 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028762 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028763 )
28764 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028765 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028766 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28767 goto done;
28768 }
28769 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028770 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028772 }
28773 _res = NULL;
28774 done:
28775 D(p->level--);
28776 return _res;
28777}
28778
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028779// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028780static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028781_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028782{
28783 D(p->level++);
28784 if (p->error_indicator) {
28785 D(p->level--);
28786 return NULL;
28787 }
28788 void * _res = NULL;
28789 int _mark = p->mark;
28790 { // ',' kwargs
28791 if (p->error_indicator) {
28792 D(p->level--);
28793 return NULL;
28794 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028795 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028796 Token * _literal;
28797 asdl_seq* k;
28798 if (
28799 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28800 &&
28801 (k = kwargs_rule(p)) // kwargs
28802 )
28803 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028804 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028805 _res = k;
28806 if (_res == NULL && PyErr_Occurred()) {
28807 p->error_indicator = 1;
28808 D(p->level--);
28809 return NULL;
28810 }
28811 goto done;
28812 }
28813 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028814 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28816 }
28817 _res = NULL;
28818 done:
28819 D(p->level--);
28820 return _res;
28821}
28822
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028823// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028824static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028825_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028826{
28827 D(p->level++);
28828 if (p->error_indicator) {
28829 D(p->level--);
28830 return NULL;
28831 }
28832 void *_res = NULL;
28833 int _mark = p->mark;
28834 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;
28841 }
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_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028845 if (p->error_indicator) {
28846 D(p->level--);
28847 return NULL;
28848 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028849 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028850 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028851 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028852 while (
28853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28854 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028855 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028856 )
28857 {
28858 _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;
28878 }
28879 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028880 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028882 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028883 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028884 if (!_seq) {
28885 PyMem_Free(_children);
28886 p->error_indicator = 1;
28887 PyErr_NoMemory();
28888 D(p->level--);
28889 return NULL;
28890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028891 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028892 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028893 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028894 D(p->level--);
28895 return _seq;
28896}
28897
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028898// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028899static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028900_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028901{
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;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028909 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028910 if (p->error_indicator) {
28911 D(p->level--);
28912 return NULL;
28913 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028914 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028915 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028916 asdl_seq * seq;
28917 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028918 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028919 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028920 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 )
28922 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028923 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028924 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28925 goto done;
28926 }
28927 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028928 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028930 }
28931 _res = NULL;
28932 done:
28933 D(p->level--);
28934 return _res;
28935}
28936
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028937// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028938static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028939_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028940{
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 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028959 if (p->error_indicator) {
28960 D(p->level--);
28961 return NULL;
28962 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028963 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028964 Token * _literal;
28965 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028966 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028967 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28968 &&
28969 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028970 )
28971 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028972 _res = elem;
28973 if (_res == NULL && PyErr_Occurred()) {
28974 p->error_indicator = 1;
28975 PyMem_Free(_children);
28976 D(p->level--);
28977 return NULL;
28978 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028979 if (_n == _children_capacity) {
28980 _children_capacity *= 2;
28981 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28982 if (!_new_children) {
28983 p->error_indicator = 1;
28984 PyErr_NoMemory();
28985 D(p->level--);
28986 return NULL;
28987 }
28988 _children = _new_children;
28989 }
28990 _children[_n++] = _res;
28991 _mark = p->mark;
28992 }
28993 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028994 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028996 }
28997 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28998 if (!_seq) {
28999 PyMem_Free(_children);
29000 p->error_indicator = 1;
29001 PyErr_NoMemory();
29002 D(p->level--);
29003 return NULL;
29004 }
29005 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29006 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029007 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029008 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030029009 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029010}
29011
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029012// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029013static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029014_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029015{
29016 D(p->level++);
29017 if (p->error_indicator) {
29018 D(p->level--);
29019 return NULL;
29020 }
29021 asdl_seq * _res = NULL;
29022 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029023 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029024 if (p->error_indicator) {
29025 D(p->level--);
29026 return NULL;
29027 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029028 D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029029 KeywordOrStarred* elem;
29030 asdl_seq * seq;
29031 if (
29032 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29033 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029034 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029035 )
29036 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029037 D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029038 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29039 goto done;
29040 }
29041 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029042 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029044 }
29045 _res = NULL;
29046 done:
29047 D(p->level--);
29048 return _res;
29049}
29050
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029051// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029052static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029053_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029054{
29055 D(p->level++);
29056 if (p->error_indicator) {
29057 D(p->level--);
29058 return NULL;
29059 }
29060 void *_res = NULL;
29061 int _mark = p->mark;
29062 int _start_mark = p->mark;
29063 void **_children = PyMem_Malloc(sizeof(void *));
29064 if (!_children) {
29065 p->error_indicator = 1;
29066 PyErr_NoMemory();
29067 D(p->level--);
29068 return NULL;
29069 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029070 Py_ssize_t _children_capacity = 1;
29071 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029072 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029073 if (p->error_indicator) {
29074 D(p->level--);
29075 return NULL;
29076 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029077 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029078 Token * _literal;
29079 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029080 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029081 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29082 &&
29083 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029084 )
29085 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029086 _res = elem;
29087 if (_res == NULL && PyErr_Occurred()) {
29088 p->error_indicator = 1;
29089 PyMem_Free(_children);
29090 D(p->level--);
29091 return NULL;
29092 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029093 if (_n == _children_capacity) {
29094 _children_capacity *= 2;
29095 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29096 if (!_new_children) {
29097 p->error_indicator = 1;
29098 PyErr_NoMemory();
29099 D(p->level--);
29100 return NULL;
29101 }
29102 _children = _new_children;
29103 }
29104 _children[_n++] = _res;
29105 _mark = p->mark;
29106 }
29107 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029108 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029110 }
29111 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29112 if (!_seq) {
29113 PyMem_Free(_children);
29114 p->error_indicator = 1;
29115 PyErr_NoMemory();
29116 D(p->level--);
29117 return NULL;
29118 }
29119 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29120 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029121 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029122 D(p->level--);
29123 return _seq;
29124}
29125
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029126// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029127static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029128_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029129{
29130 D(p->level++);
29131 if (p->error_indicator) {
29132 D(p->level--);
29133 return NULL;
29134 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029135 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029136 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029137 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029138 if (p->error_indicator) {
29139 D(p->level--);
29140 return NULL;
29141 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029142 D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029143 KeywordOrStarred* elem;
29144 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029145 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029146 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29147 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029148 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029149 )
29150 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029151 D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029152 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029153 goto done;
29154 }
29155 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029156 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029158 }
29159 _res = NULL;
29160 done:
29161 D(p->level--);
29162 return _res;
29163}
29164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029165// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029166static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029167_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029168{
29169 D(p->level++);
29170 if (p->error_indicator) {
29171 D(p->level--);
29172 return NULL;
29173 }
29174 void *_res = NULL;
29175 int _mark = p->mark;
29176 int _start_mark = p->mark;
29177 void **_children = PyMem_Malloc(sizeof(void *));
29178 if (!_children) {
29179 p->error_indicator = 1;
29180 PyErr_NoMemory();
29181 D(p->level--);
29182 return NULL;
29183 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029184 Py_ssize_t _children_capacity = 1;
29185 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029186 { // ',' kwarg_or_double_starred
29187 if (p->error_indicator) {
29188 D(p->level--);
29189 return NULL;
29190 }
29191 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29192 Token * _literal;
29193 KeywordOrStarred* elem;
29194 while (
29195 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29196 &&
29197 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29198 )
29199 {
29200 _res = elem;
29201 if (_res == NULL && PyErr_Occurred()) {
29202 p->error_indicator = 1;
29203 PyMem_Free(_children);
29204 D(p->level--);
29205 return NULL;
29206 }
29207 if (_n == _children_capacity) {
29208 _children_capacity *= 2;
29209 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29210 if (!_new_children) {
29211 p->error_indicator = 1;
29212 PyErr_NoMemory();
29213 D(p->level--);
29214 return NULL;
29215 }
29216 _children = _new_children;
29217 }
29218 _children[_n++] = _res;
29219 _mark = p->mark;
29220 }
29221 p->mark = _mark;
29222 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29224 }
29225 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29226 if (!_seq) {
29227 PyMem_Free(_children);
29228 p->error_indicator = 1;
29229 PyErr_NoMemory();
29230 D(p->level--);
29231 return NULL;
29232 }
29233 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29234 PyMem_Free(_children);
29235 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29236 D(p->level--);
29237 return _seq;
29238}
29239
29240// _gather_132: kwarg_or_double_starred _loop0_133
29241static asdl_seq *
29242_gather_132_rule(Parser *p)
29243{
29244 D(p->level++);
29245 if (p->error_indicator) {
29246 D(p->level--);
29247 return NULL;
29248 }
29249 asdl_seq * _res = NULL;
29250 int _mark = p->mark;
29251 { // kwarg_or_double_starred _loop0_133
29252 if (p->error_indicator) {
29253 D(p->level--);
29254 return NULL;
29255 }
29256 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29257 KeywordOrStarred* elem;
29258 asdl_seq * seq;
29259 if (
29260 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29261 &&
29262 (seq = _loop0_133_rule(p)) // _loop0_133
29263 )
29264 {
29265 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29266 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29267 goto done;
29268 }
29269 p->mark = _mark;
29270 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29272 }
29273 _res = NULL;
29274 done:
29275 D(p->level--);
29276 return _res;
29277}
29278
29279// _loop0_134: (',' star_target)
29280static asdl_seq *
29281_loop0_134_rule(Parser *p)
29282{
29283 D(p->level++);
29284 if (p->error_indicator) {
29285 D(p->level--);
29286 return NULL;
29287 }
29288 void *_res = NULL;
29289 int _mark = p->mark;
29290 int _start_mark = p->mark;
29291 void **_children = PyMem_Malloc(sizeof(void *));
29292 if (!_children) {
29293 p->error_indicator = 1;
29294 PyErr_NoMemory();
29295 D(p->level--);
29296 return NULL;
29297 }
29298 Py_ssize_t _children_capacity = 1;
29299 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029300 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029301 if (p->error_indicator) {
29302 D(p->level--);
29303 return NULL;
29304 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029305 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029306 void *_tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029307 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029308 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029309 )
29310 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029311 _res = _tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029312 if (_n == _children_capacity) {
29313 _children_capacity *= 2;
29314 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29315 if (!_new_children) {
29316 p->error_indicator = 1;
29317 PyErr_NoMemory();
29318 D(p->level--);
29319 return NULL;
29320 }
29321 _children = _new_children;
29322 }
29323 _children[_n++] = _res;
29324 _mark = p->mark;
29325 }
29326 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029327 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029329 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029330 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029331 if (!_seq) {
29332 PyMem_Free(_children);
29333 p->error_indicator = 1;
29334 PyErr_NoMemory();
29335 D(p->level--);
29336 return NULL;
29337 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029338 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029339 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029340 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029341 D(p->level--);
29342 return _seq;
29343}
29344
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029345// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029346static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029347_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029348{
29349 D(p->level++);
29350 if (p->error_indicator) {
29351 D(p->level--);
29352 return NULL;
29353 }
29354 void *_res = NULL;
29355 int _mark = p->mark;
29356 int _start_mark = p->mark;
29357 void **_children = PyMem_Malloc(sizeof(void *));
29358 if (!_children) {
29359 p->error_indicator = 1;
29360 PyErr_NoMemory();
29361 D(p->level--);
29362 return NULL;
29363 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029364 Py_ssize_t _children_capacity = 1;
29365 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029366 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029367 if (p->error_indicator) {
29368 D(p->level--);
29369 return NULL;
29370 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029371 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029372 Token * _literal;
29373 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029374 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029375 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29376 &&
29377 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029378 )
29379 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029380 _res = elem;
29381 if (_res == NULL && PyErr_Occurred()) {
29382 p->error_indicator = 1;
29383 PyMem_Free(_children);
29384 D(p->level--);
29385 return NULL;
29386 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029387 if (_n == _children_capacity) {
29388 _children_capacity *= 2;
29389 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29390 if (!_new_children) {
29391 p->error_indicator = 1;
29392 PyErr_NoMemory();
29393 D(p->level--);
29394 return NULL;
29395 }
29396 _children = _new_children;
29397 }
29398 _children[_n++] = _res;
29399 _mark = p->mark;
29400 }
29401 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029402 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029404 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029405 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029406 if (!_seq) {
29407 PyMem_Free(_children);
29408 p->error_indicator = 1;
29409 PyErr_NoMemory();
29410 D(p->level--);
29411 return NULL;
29412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029413 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029414 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029415 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029416 D(p->level--);
29417 return _seq;
29418}
29419
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029420// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029421static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029422_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029423{
29424 D(p->level++);
29425 if (p->error_indicator) {
29426 D(p->level--);
29427 return NULL;
29428 }
29429 asdl_seq * _res = NULL;
29430 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029431 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029432 if (p->error_indicator) {
29433 D(p->level--);
29434 return NULL;
29435 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029436 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029437 expr_ty elem;
29438 asdl_seq * seq;
29439 if (
29440 (elem = star_target_rule(p)) // star_target
29441 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029442 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029443 )
29444 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029445 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029446 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29447 goto done;
29448 }
29449 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029450 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029452 }
29453 _res = NULL;
29454 done:
29455 D(p->level--);
29456 return _res;
29457}
29458
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029459// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029460static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029461_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029462{
29463 D(p->level++);
29464 if (p->error_indicator) {
29465 D(p->level--);
29466 return NULL;
29467 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029468 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029469 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029470 int _start_mark = p->mark;
29471 void **_children = PyMem_Malloc(sizeof(void *));
29472 if (!_children) {
29473 p->error_indicator = 1;
29474 PyErr_NoMemory();
29475 D(p->level--);
29476 return NULL;
29477 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029478 Py_ssize_t _children_capacity = 1;
29479 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029480 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029481 if (p->error_indicator) {
29482 D(p->level--);
29483 return NULL;
29484 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029485 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029486 void *_tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029487 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029488 (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029489 )
29490 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029491 _res = _tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029492 if (_n == _children_capacity) {
29493 _children_capacity *= 2;
29494 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29495 if (!_new_children) {
29496 p->error_indicator = 1;
29497 PyErr_NoMemory();
29498 D(p->level--);
29499 return NULL;
29500 }
29501 _children = _new_children;
29502 }
29503 _children[_n++] = _res;
29504 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029505 }
29506 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029507 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029509 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029510 if (_n == 0 || p->error_indicator) {
29511 PyMem_Free(_children);
29512 D(p->level--);
29513 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029514 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029515 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29516 if (!_seq) {
29517 PyMem_Free(_children);
29518 p->error_indicator = 1;
29519 PyErr_NoMemory();
29520 D(p->level--);
29521 return NULL;
29522 }
29523 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29524 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029525 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029526 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029527 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029528}
29529
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029530// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029531static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029532_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029533{
29534 D(p->level++);
29535 if (p->error_indicator) {
29536 D(p->level--);
29537 return NULL;
29538 }
29539 void * _res = NULL;
29540 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029541 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029542 if (p->error_indicator) {
29543 D(p->level--);
29544 return NULL;
29545 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029546 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029547 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029548 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029549 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029550 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029551 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029552 )
29553 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029554 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029555 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029556 goto done;
29557 }
29558 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029559 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029561 }
29562 _res = NULL;
29563 done:
29564 D(p->level--);
29565 return _res;
29566}
29567
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029568// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029569static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029570_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029571{
29572 D(p->level++);
29573 if (p->error_indicator) {
29574 D(p->level--);
29575 return NULL;
29576 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029577 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029578 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029579 int _start_mark = p->mark;
29580 void **_children = PyMem_Malloc(sizeof(void *));
29581 if (!_children) {
29582 p->error_indicator = 1;
29583 PyErr_NoMemory();
29584 D(p->level--);
29585 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029586 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029587 Py_ssize_t _children_capacity = 1;
29588 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029589 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029590 if (p->error_indicator) {
29591 D(p->level--);
29592 return NULL;
29593 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029594 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029595 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029596 expr_ty elem;
29597 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029598 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29599 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029600 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029601 )
29602 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029603 _res = elem;
29604 if (_res == NULL && PyErr_Occurred()) {
29605 p->error_indicator = 1;
29606 PyMem_Free(_children);
29607 D(p->level--);
29608 return NULL;
29609 }
29610 if (_n == _children_capacity) {
29611 _children_capacity *= 2;
29612 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29613 if (!_new_children) {
29614 p->error_indicator = 1;
29615 PyErr_NoMemory();
29616 D(p->level--);
29617 return NULL;
29618 }
29619 _children = _new_children;
29620 }
29621 _children[_n++] = _res;
29622 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029623 }
29624 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029625 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029627 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029628 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29629 if (!_seq) {
29630 PyMem_Free(_children);
29631 p->error_indicator = 1;
29632 PyErr_NoMemory();
29633 D(p->level--);
29634 return NULL;
29635 }
29636 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29637 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029638 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029639 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029640 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029641}
29642
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029643// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029644static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029645_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029646{
29647 D(p->level++);
29648 if (p->error_indicator) {
29649 D(p->level--);
29650 return NULL;
29651 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029652 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029653 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029654 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029655 if (p->error_indicator) {
29656 D(p->level--);
29657 return NULL;
29658 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029659 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029660 expr_ty elem;
29661 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029662 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029663 (elem = del_target_rule(p)) // del_target
29664 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029665 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029666 )
29667 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029668 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029669 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029670 goto done;
29671 }
29672 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029673 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029675 }
29676 _res = NULL;
29677 done:
29678 D(p->level--);
29679 return _res;
29680}
29681
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029682// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029683static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029684_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029685{
29686 D(p->level++);
29687 if (p->error_indicator) {
29688 D(p->level--);
29689 return NULL;
29690 }
29691 void * _res = NULL;
29692 int _mark = p->mark;
29693 { // args
29694 if (p->error_indicator) {
29695 D(p->level--);
29696 return NULL;
29697 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029698 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029699 expr_ty args_var;
29700 if (
29701 (args_var = args_rule(p)) // args
29702 )
29703 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029704 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029705 _res = args_var;
29706 goto done;
29707 }
29708 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029709 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29711 }
29712 { // expression for_if_clauses
29713 if (p->error_indicator) {
29714 D(p->level--);
29715 return NULL;
29716 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029717 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029718 expr_ty expression_var;
29719 asdl_comprehension_seq* for_if_clauses_var;
29720 if (
29721 (expression_var = expression_rule(p)) // expression
29722 &&
29723 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29724 )
29725 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029726 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029727 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29728 goto done;
29729 }
29730 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029731 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29733 }
29734 _res = NULL;
29735 done:
29736 D(p->level--);
29737 return _res;
29738}
29739
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029740// _tmp_142: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029741static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029742_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029743{
29744 D(p->level++);
29745 if (p->error_indicator) {
29746 D(p->level--);
29747 return NULL;
29748 }
29749 void * _res = NULL;
29750 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029751 { // NAME '='
29752 if (p->error_indicator) {
29753 D(p->level--);
29754 return NULL;
29755 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029756 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029757 Token * _literal;
29758 expr_ty name_var;
29759 if (
29760 (name_var = _PyPegen_name_token(p)) // NAME
29761 &&
29762 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29763 )
29764 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029765 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029766 _res = _PyPegen_dummy_name(p, name_var, _literal);
29767 goto done;
29768 }
29769 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029770 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29772 }
29773 _res = NULL;
29774 done:
29775 D(p->level--);
29776 return _res;
29777}
29778
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029779// _tmp_143: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029780static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029781_tmp_143_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029782{
29783 D(p->level++);
29784 if (p->error_indicator) {
29785 D(p->level--);
29786 return NULL;
29787 }
29788 void * _res = NULL;
29789 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029790 { // NAME STRING
29791 if (p->error_indicator) {
29792 D(p->level--);
29793 return NULL;
29794 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029795 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029796 expr_ty name_var;
29797 expr_ty string_var;
29798 if (
29799 (name_var = _PyPegen_name_token(p)) // NAME
29800 &&
29801 (string_var = _PyPegen_string_token(p)) // STRING
29802 )
29803 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029804 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029805 _res = _PyPegen_dummy_name(p, name_var, string_var);
29806 goto done;
29807 }
29808 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029809 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29811 }
29812 { // SOFT_KEYWORD
29813 if (p->error_indicator) {
29814 D(p->level--);
29815 return NULL;
29816 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029817 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029818 expr_ty soft_keyword_var;
29819 if (
29820 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29821 )
29822 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029823 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029824 _res = soft_keyword_var;
29825 goto done;
29826 }
29827 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029828 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29830 }
29831 _res = NULL;
29832 done:
29833 D(p->level--);
29834 return _res;
29835}
29836
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029837// _tmp_144: '=' | ':='
29838static void *
29839_tmp_144_rule(Parser *p)
29840{
29841 D(p->level++);
29842 if (p->error_indicator) {
29843 D(p->level--);
29844 return NULL;
29845 }
29846 void * _res = NULL;
29847 int _mark = p->mark;
29848 { // '='
29849 if (p->error_indicator) {
29850 D(p->level--);
29851 return NULL;
29852 }
29853 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
29854 Token * _literal;
29855 if (
29856 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29857 )
29858 {
29859 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
29860 _res = _literal;
29861 goto done;
29862 }
29863 p->mark = _mark;
29864 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29866 }
29867 { // ':='
29868 if (p->error_indicator) {
29869 D(p->level--);
29870 return NULL;
29871 }
29872 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
29873 Token * _literal;
29874 if (
29875 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29876 )
29877 {
29878 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
29879 _res = _literal;
29880 goto done;
29881 }
29882 p->mark = _mark;
29883 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29885 }
29886 _res = NULL;
29887 done:
29888 D(p->level--);
29889 return _res;
29890}
29891
29892// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
29893static void *
29894_tmp_145_rule(Parser *p)
29895{
29896 D(p->level++);
29897 if (p->error_indicator) {
29898 D(p->level--);
29899 return NULL;
29900 }
29901 void * _res = NULL;
29902 int _mark = p->mark;
29903 { // list
29904 if (p->error_indicator) {
29905 D(p->level--);
29906 return NULL;
29907 }
29908 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
29909 expr_ty list_var;
29910 if (
29911 (list_var = list_rule(p)) // list
29912 )
29913 {
29914 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
29915 _res = list_var;
29916 goto done;
29917 }
29918 p->mark = _mark;
29919 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29921 }
29922 { // tuple
29923 if (p->error_indicator) {
29924 D(p->level--);
29925 return NULL;
29926 }
29927 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
29928 expr_ty tuple_var;
29929 if (
29930 (tuple_var = tuple_rule(p)) // tuple
29931 )
29932 {
29933 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
29934 _res = tuple_var;
29935 goto done;
29936 }
29937 p->mark = _mark;
29938 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29940 }
29941 { // genexp
29942 if (p->error_indicator) {
29943 D(p->level--);
29944 return NULL;
29945 }
29946 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
29947 expr_ty genexp_var;
29948 if (
29949 (genexp_var = genexp_rule(p)) // genexp
29950 )
29951 {
29952 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
29953 _res = genexp_var;
29954 goto done;
29955 }
29956 p->mark = _mark;
29957 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29959 }
29960 { // 'True'
29961 if (p->error_indicator) {
29962 D(p->level--);
29963 return NULL;
29964 }
29965 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29966 Token * _keyword;
29967 if (
29968 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29969 )
29970 {
29971 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29972 _res = _keyword;
29973 goto done;
29974 }
29975 p->mark = _mark;
29976 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29978 }
29979 { // 'None'
29980 if (p->error_indicator) {
29981 D(p->level--);
29982 return NULL;
29983 }
29984 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29985 Token * _keyword;
29986 if (
29987 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29988 )
29989 {
29990 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29991 _res = _keyword;
29992 goto done;
29993 }
29994 p->mark = _mark;
29995 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29997 }
29998 { // 'False'
29999 if (p->error_indicator) {
30000 D(p->level--);
30001 return NULL;
30002 }
30003 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
30004 Token * _keyword;
30005 if (
30006 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30007 )
30008 {
30009 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
30010 _res = _keyword;
30011 goto done;
30012 }
30013 p->mark = _mark;
30014 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
30015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30016 }
30017 _res = NULL;
30018 done:
30019 D(p->level--);
30020 return _res;
30021}
30022
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030023// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010030024static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030025_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010030026{
30027 D(p->level++);
30028 if (p->error_indicator) {
30029 D(p->level--);
30030 return NULL;
30031 }
30032 void * _res = NULL;
30033 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030034 { // '='
30035 if (p->error_indicator) {
30036 D(p->level--);
30037 return NULL;
30038 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030039 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030040 Token * _literal;
30041 if (
30042 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30043 )
30044 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030045 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030046 _res = _literal;
30047 goto done;
30048 }
30049 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030050 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30052 }
30053 { // ':='
30054 if (p->error_indicator) {
30055 D(p->level--);
30056 return NULL;
30057 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030058 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030059 Token * _literal;
30060 if (
30061 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30062 )
30063 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030064 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030065 _res = _literal;
30066 goto done;
30067 }
30068 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030069 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30071 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030072 _res = NULL;
30073 done:
30074 D(p->level--);
30075 return _res;
30076}
30077
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030078// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030079static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030080_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030081{
30082 D(p->level++);
30083 if (p->error_indicator) {
30084 D(p->level--);
30085 return NULL;
30086 }
30087 void *_res = NULL;
30088 int _mark = p->mark;
30089 int _start_mark = p->mark;
30090 void **_children = PyMem_Malloc(sizeof(void *));
30091 if (!_children) {
30092 p->error_indicator = 1;
30093 PyErr_NoMemory();
30094 D(p->level--);
30095 return NULL;
30096 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030097 Py_ssize_t _children_capacity = 1;
30098 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030099 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030100 if (p->error_indicator) {
30101 D(p->level--);
30102 return NULL;
30103 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030104 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 -080030105 asdl_expr_seq* star_named_expressions_var;
30106 while (
30107 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30108 )
30109 {
30110 _res = star_named_expressions_var;
30111 if (_n == _children_capacity) {
30112 _children_capacity *= 2;
30113 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30114 if (!_new_children) {
30115 p->error_indicator = 1;
30116 PyErr_NoMemory();
30117 D(p->level--);
30118 return NULL;
30119 }
30120 _children = _new_children;
30121 }
30122 _children[_n++] = _res;
30123 _mark = p->mark;
30124 }
30125 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030126 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010030128 }
30129 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30130 if (!_seq) {
30131 PyMem_Free(_children);
30132 p->error_indicator = 1;
30133 PyErr_NoMemory();
30134 D(p->level--);
30135 return NULL;
30136 }
30137 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30138 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030139 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
30140 D(p->level--);
30141 return _seq;
30142}
30143
30144// _loop0_148: (star_targets '=')
30145static asdl_seq *
30146_loop0_148_rule(Parser *p)
30147{
30148 D(p->level++);
30149 if (p->error_indicator) {
30150 D(p->level--);
30151 return NULL;
30152 }
30153 void *_res = NULL;
30154 int _mark = p->mark;
30155 int _start_mark = p->mark;
30156 void **_children = PyMem_Malloc(sizeof(void *));
30157 if (!_children) {
30158 p->error_indicator = 1;
30159 PyErr_NoMemory();
30160 D(p->level--);
30161 return NULL;
30162 }
30163 Py_ssize_t _children_capacity = 1;
30164 Py_ssize_t _n = 0;
30165 { // (star_targets '=')
30166 if (p->error_indicator) {
30167 D(p->level--);
30168 return NULL;
30169 }
30170 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030171 void *_tmp_192_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030172 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030173 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030174 )
30175 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030176 _res = _tmp_192_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030177 if (_n == _children_capacity) {
30178 _children_capacity *= 2;
30179 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30180 if (!_new_children) {
30181 p->error_indicator = 1;
30182 PyErr_NoMemory();
30183 D(p->level--);
30184 return NULL;
30185 }
30186 _children = _new_children;
30187 }
30188 _children[_n++] = _res;
30189 _mark = p->mark;
30190 }
30191 p->mark = _mark;
30192 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
30193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30194 }
30195 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30196 if (!_seq) {
30197 PyMem_Free(_children);
30198 p->error_indicator = 1;
30199 PyErr_NoMemory();
30200 D(p->level--);
30201 return NULL;
30202 }
30203 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30204 PyMem_Free(_children);
30205 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
30206 D(p->level--);
30207 return _seq;
30208}
30209
30210// _loop0_149: (star_targets '=')
30211static asdl_seq *
30212_loop0_149_rule(Parser *p)
30213{
30214 D(p->level++);
30215 if (p->error_indicator) {
30216 D(p->level--);
30217 return NULL;
30218 }
30219 void *_res = NULL;
30220 int _mark = p->mark;
30221 int _start_mark = p->mark;
30222 void **_children = PyMem_Malloc(sizeof(void *));
30223 if (!_children) {
30224 p->error_indicator = 1;
30225 PyErr_NoMemory();
30226 D(p->level--);
30227 return NULL;
30228 }
30229 Py_ssize_t _children_capacity = 1;
30230 Py_ssize_t _n = 0;
30231 { // (star_targets '=')
30232 if (p->error_indicator) {
30233 D(p->level--);
30234 return NULL;
30235 }
30236 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030237 void *_tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030238 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030239 (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030240 )
30241 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030242 _res = _tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030243 if (_n == _children_capacity) {
30244 _children_capacity *= 2;
30245 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30246 if (!_new_children) {
30247 p->error_indicator = 1;
30248 PyErr_NoMemory();
30249 D(p->level--);
30250 return NULL;
30251 }
30252 _children = _new_children;
30253 }
30254 _children[_n++] = _res;
30255 _mark = p->mark;
30256 }
30257 p->mark = _mark;
30258 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30260 }
30261 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30262 if (!_seq) {
30263 PyMem_Free(_children);
30264 p->error_indicator = 1;
30265 PyErr_NoMemory();
30266 D(p->level--);
30267 return NULL;
30268 }
30269 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30270 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030271 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30272 D(p->level--);
30273 return _seq;
30274}
30275
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030276// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030277static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030278_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030279{
30280 D(p->level++);
30281 if (p->error_indicator) {
30282 D(p->level--);
30283 return NULL;
30284 }
30285 void * _res = NULL;
30286 int _mark = p->mark;
30287 { // yield_expr
30288 if (p->error_indicator) {
30289 D(p->level--);
30290 return NULL;
30291 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030292 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030293 expr_ty yield_expr_var;
30294 if (
30295 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30296 )
30297 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030298 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 -080030299 _res = yield_expr_var;
30300 goto done;
30301 }
30302 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030303 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30305 }
30306 { // star_expressions
30307 if (p->error_indicator) {
30308 D(p->level--);
30309 return NULL;
30310 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030311 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030312 expr_ty star_expressions_var;
30313 if (
30314 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30315 )
30316 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030317 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 -080030318 _res = star_expressions_var;
30319 goto done;
30320 }
30321 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030322 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30324 }
30325 _res = NULL;
30326 done:
30327 D(p->level--);
30328 return _res;
30329}
30330
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030331// _tmp_151: '[' | '(' | '{'
30332static void *
30333_tmp_151_rule(Parser *p)
30334{
30335 D(p->level++);
30336 if (p->error_indicator) {
30337 D(p->level--);
30338 return NULL;
30339 }
30340 void * _res = NULL;
30341 int _mark = p->mark;
30342 { // '['
30343 if (p->error_indicator) {
30344 D(p->level--);
30345 return NULL;
30346 }
30347 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30348 Token * _literal;
30349 if (
30350 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30351 )
30352 {
30353 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30354 _res = _literal;
30355 goto done;
30356 }
30357 p->mark = _mark;
30358 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30360 }
30361 { // '('
30362 if (p->error_indicator) {
30363 D(p->level--);
30364 return NULL;
30365 }
30366 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30367 Token * _literal;
30368 if (
30369 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30370 )
30371 {
30372 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30373 _res = _literal;
30374 goto done;
30375 }
30376 p->mark = _mark;
30377 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30379 }
30380 { // '{'
30381 if (p->error_indicator) {
30382 D(p->level--);
30383 return NULL;
30384 }
30385 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30386 Token * _literal;
30387 if (
30388 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30389 )
30390 {
30391 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30392 _res = _literal;
30393 goto done;
30394 }
30395 p->mark = _mark;
30396 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30398 }
30399 _res = NULL;
30400 done:
30401 D(p->level--);
30402 return _res;
30403}
30404
30405// _tmp_152: '[' | '{'
30406static void *
30407_tmp_152_rule(Parser *p)
30408{
30409 D(p->level++);
30410 if (p->error_indicator) {
30411 D(p->level--);
30412 return NULL;
30413 }
30414 void * _res = NULL;
30415 int _mark = p->mark;
30416 { // '['
30417 if (p->error_indicator) {
30418 D(p->level--);
30419 return NULL;
30420 }
30421 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30422 Token * _literal;
30423 if (
30424 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30425 )
30426 {
30427 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30428 _res = _literal;
30429 goto done;
30430 }
30431 p->mark = _mark;
30432 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30434 }
30435 { // '{'
30436 if (p->error_indicator) {
30437 D(p->level--);
30438 return NULL;
30439 }
30440 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30441 Token * _literal;
30442 if (
30443 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30444 )
30445 {
30446 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30447 _res = _literal;
30448 goto done;
30449 }
30450 p->mark = _mark;
30451 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30453 }
30454 _res = NULL;
30455 done:
30456 D(p->level--);
30457 return _res;
30458}
30459
30460// _tmp_153: '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030461static void *
30462_tmp_153_rule(Parser *p)
30463{
30464 D(p->level++);
30465 if (p->error_indicator) {
30466 D(p->level--);
30467 return NULL;
30468 }
30469 void * _res = NULL;
30470 int _mark = p->mark;
30471 { // '['
30472 if (p->error_indicator) {
30473 D(p->level--);
30474 return NULL;
30475 }
30476 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30477 Token * _literal;
30478 if (
30479 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30480 )
30481 {
30482 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30483 _res = _literal;
30484 goto done;
30485 }
30486 p->mark = _mark;
30487 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30489 }
30490 { // '{'
30491 if (p->error_indicator) {
30492 D(p->level--);
30493 return NULL;
30494 }
30495 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30496 Token * _literal;
30497 if (
30498 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30499 )
30500 {
30501 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30502 _res = _literal;
30503 goto done;
30504 }
30505 p->mark = _mark;
30506 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30508 }
30509 _res = NULL;
30510 done:
30511 D(p->level--);
30512 return _res;
30513}
30514
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030515// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030516static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030517_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030518{
30519 D(p->level++);
30520 if (p->error_indicator) {
30521 D(p->level--);
30522 return NULL;
30523 }
30524 void *_res = NULL;
30525 int _mark = p->mark;
30526 int _start_mark = p->mark;
30527 void **_children = PyMem_Malloc(sizeof(void *));
30528 if (!_children) {
30529 p->error_indicator = 1;
30530 PyErr_NoMemory();
30531 D(p->level--);
30532 return NULL;
30533 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030534 Py_ssize_t _children_capacity = 1;
30535 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030536 { // param_no_default
30537 if (p->error_indicator) {
30538 D(p->level--);
30539 return NULL;
30540 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030541 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 -080030542 arg_ty param_no_default_var;
30543 while (
30544 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30545 )
30546 {
30547 _res = param_no_default_var;
30548 if (_n == _children_capacity) {
30549 _children_capacity *= 2;
30550 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30551 if (!_new_children) {
30552 p->error_indicator = 1;
30553 PyErr_NoMemory();
30554 D(p->level--);
30555 return NULL;
30556 }
30557 _children = _new_children;
30558 }
30559 _children[_n++] = _res;
30560 _mark = p->mark;
30561 }
30562 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030563 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30565 }
30566 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30567 if (!_seq) {
30568 PyMem_Free(_children);
30569 p->error_indicator = 1;
30570 PyErr_NoMemory();
30571 D(p->level--);
30572 return NULL;
30573 }
30574 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30575 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030576 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030577 D(p->level--);
30578 return _seq;
30579}
30580
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030581// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030582static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030583_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030584{
30585 D(p->level++);
30586 if (p->error_indicator) {
30587 D(p->level--);
30588 return NULL;
30589 }
30590 void *_res = NULL;
30591 int _mark = p->mark;
30592 int _start_mark = p->mark;
30593 void **_children = PyMem_Malloc(sizeof(void *));
30594 if (!_children) {
30595 p->error_indicator = 1;
30596 PyErr_NoMemory();
30597 D(p->level--);
30598 return NULL;
30599 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030600 Py_ssize_t _children_capacity = 1;
30601 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030602 { // param_with_default
30603 if (p->error_indicator) {
30604 D(p->level--);
30605 return NULL;
30606 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030607 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 -080030608 NameDefaultPair* param_with_default_var;
30609 while (
30610 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30611 )
30612 {
30613 _res = param_with_default_var;
30614 if (_n == _children_capacity) {
30615 _children_capacity *= 2;
30616 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30617 if (!_new_children) {
30618 p->error_indicator = 1;
30619 PyErr_NoMemory();
30620 D(p->level--);
30621 return NULL;
30622 }
30623 _children = _new_children;
30624 }
30625 _children[_n++] = _res;
30626 _mark = p->mark;
30627 }
30628 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030629 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30631 }
30632 if (_n == 0 || p->error_indicator) {
30633 PyMem_Free(_children);
30634 D(p->level--);
30635 return NULL;
30636 }
30637 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30638 if (!_seq) {
30639 PyMem_Free(_children);
30640 p->error_indicator = 1;
30641 PyErr_NoMemory();
30642 D(p->level--);
30643 return NULL;
30644 }
30645 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30646 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030647 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030648 D(p->level--);
30649 return _seq;
30650}
30651
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030652// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030653static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030654_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030655{
30656 D(p->level++);
30657 if (p->error_indicator) {
30658 D(p->level--);
30659 return NULL;
30660 }
30661 void *_res = NULL;
30662 int _mark = p->mark;
30663 int _start_mark = p->mark;
30664 void **_children = PyMem_Malloc(sizeof(void *));
30665 if (!_children) {
30666 p->error_indicator = 1;
30667 PyErr_NoMemory();
30668 D(p->level--);
30669 return NULL;
30670 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030671 Py_ssize_t _children_capacity = 1;
30672 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030673 { // lambda_param_no_default
30674 if (p->error_indicator) {
30675 D(p->level--);
30676 return NULL;
30677 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030678 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 -080030679 arg_ty lambda_param_no_default_var;
30680 while (
30681 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30682 )
30683 {
30684 _res = lambda_param_no_default_var;
30685 if (_n == _children_capacity) {
30686 _children_capacity *= 2;
30687 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30688 if (!_new_children) {
30689 p->error_indicator = 1;
30690 PyErr_NoMemory();
30691 D(p->level--);
30692 return NULL;
30693 }
30694 _children = _new_children;
30695 }
30696 _children[_n++] = _res;
30697 _mark = p->mark;
30698 }
30699 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030700 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30702 }
30703 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30704 if (!_seq) {
30705 PyMem_Free(_children);
30706 p->error_indicator = 1;
30707 PyErr_NoMemory();
30708 D(p->level--);
30709 return NULL;
30710 }
30711 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30712 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030713 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030714 D(p->level--);
30715 return _seq;
30716}
30717
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030718// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030719static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030720_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030721{
30722 D(p->level++);
30723 if (p->error_indicator) {
30724 D(p->level--);
30725 return NULL;
30726 }
30727 void *_res = NULL;
30728 int _mark = p->mark;
30729 int _start_mark = p->mark;
30730 void **_children = PyMem_Malloc(sizeof(void *));
30731 if (!_children) {
30732 p->error_indicator = 1;
30733 PyErr_NoMemory();
30734 D(p->level--);
30735 return NULL;
30736 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030737 Py_ssize_t _children_capacity = 1;
30738 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030739 { // lambda_param_with_default
30740 if (p->error_indicator) {
30741 D(p->level--);
30742 return NULL;
30743 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030744 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 -080030745 NameDefaultPair* lambda_param_with_default_var;
30746 while (
30747 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30748 )
30749 {
30750 _res = lambda_param_with_default_var;
30751 if (_n == _children_capacity) {
30752 _children_capacity *= 2;
30753 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30754 if (!_new_children) {
30755 p->error_indicator = 1;
30756 PyErr_NoMemory();
30757 D(p->level--);
30758 return NULL;
30759 }
30760 _children = _new_children;
30761 }
30762 _children[_n++] = _res;
30763 _mark = p->mark;
30764 }
30765 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030766 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30768 }
30769 if (_n == 0 || p->error_indicator) {
30770 PyMem_Free(_children);
30771 D(p->level--);
30772 return NULL;
30773 }
30774 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30775 if (!_seq) {
30776 PyMem_Free(_children);
30777 p->error_indicator = 1;
30778 PyErr_NoMemory();
30779 D(p->level--);
30780 return NULL;
30781 }
30782 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30783 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030784 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030785 D(p->level--);
30786 return _seq;
30787}
30788
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030789// _tmp_158: ')' | ',' (')' | '**')
30790static void *
30791_tmp_158_rule(Parser *p)
30792{
30793 D(p->level++);
30794 if (p->error_indicator) {
30795 D(p->level--);
30796 return NULL;
30797 }
30798 void * _res = NULL;
30799 int _mark = p->mark;
30800 { // ')'
30801 if (p->error_indicator) {
30802 D(p->level--);
30803 return NULL;
30804 }
30805 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30806 Token * _literal;
30807 if (
30808 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30809 )
30810 {
30811 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30812 _res = _literal;
30813 goto done;
30814 }
30815 p->mark = _mark;
30816 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30818 }
30819 { // ',' (')' | '**')
30820 if (p->error_indicator) {
30821 D(p->level--);
30822 return NULL;
30823 }
30824 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30825 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030826 void *_tmp_194_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030827 if (
30828 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30829 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030830 (_tmp_194_var = _tmp_194_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030831 )
30832 {
30833 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030834 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030835 goto done;
30836 }
30837 p->mark = _mark;
30838 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
30840 }
30841 _res = NULL;
30842 done:
30843 D(p->level--);
30844 return _res;
30845}
30846
30847// _tmp_159: ':' | ',' (':' | '**')
30848static void *
30849_tmp_159_rule(Parser *p)
30850{
30851 D(p->level++);
30852 if (p->error_indicator) {
30853 D(p->level--);
30854 return NULL;
30855 }
30856 void * _res = NULL;
30857 int _mark = p->mark;
30858 { // ':'
30859 if (p->error_indicator) {
30860 D(p->level--);
30861 return NULL;
30862 }
30863 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30864 Token * _literal;
30865 if (
30866 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30867 )
30868 {
30869 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30870 _res = _literal;
30871 goto done;
30872 }
30873 p->mark = _mark;
30874 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30876 }
30877 { // ',' (':' | '**')
30878 if (p->error_indicator) {
30879 D(p->level--);
30880 return NULL;
30881 }
30882 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30883 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030884 void *_tmp_195_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030885 if (
30886 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30887 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030888 (_tmp_195_var = _tmp_195_rule(p)) // ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030889 )
30890 {
30891 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030892 _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030893 goto done;
30894 }
30895 p->mark = _mark;
30896 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
30898 }
30899 _res = NULL;
30900 done:
30901 D(p->level--);
30902 return _res;
30903}
30904
30905// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030906static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030907_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030908{
30909 D(p->level++);
30910 if (p->error_indicator) {
30911 D(p->level--);
30912 return NULL;
30913 }
30914 void * _res = NULL;
30915 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030916 { // ','
30917 if (p->error_indicator) {
30918 D(p->level--);
30919 return NULL;
30920 }
30921 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30922 Token * _literal;
30923 if (
30924 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30925 )
30926 {
30927 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30928 _res = _literal;
30929 goto done;
30930 }
30931 p->mark = _mark;
30932 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30934 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030935 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030936 if (p->error_indicator) {
30937 D(p->level--);
30938 return NULL;
30939 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030940 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030941 Token * _literal;
30942 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030943 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030944 )
30945 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030946 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030947 _res = _literal;
30948 goto done;
30949 }
30950 p->mark = _mark;
30951 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030953 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030954 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030955 if (p->error_indicator) {
30956 D(p->level--);
30957 return NULL;
30958 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030959 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030960 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030961 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030962 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030963 )
30964 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030965 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30966 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030967 goto done;
30968 }
30969 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030970 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30972 }
30973 _res = NULL;
30974 done:
30975 D(p->level--);
30976 return _res;
30977}
30978
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030979// _loop0_162: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030980static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030981_loop0_162_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030982{
30983 D(p->level++);
30984 if (p->error_indicator) {
30985 D(p->level--);
30986 return NULL;
30987 }
30988 void *_res = NULL;
30989 int _mark = p->mark;
30990 int _start_mark = p->mark;
30991 void **_children = PyMem_Malloc(sizeof(void *));
30992 if (!_children) {
30993 p->error_indicator = 1;
30994 PyErr_NoMemory();
30995 D(p->level--);
30996 return NULL;
30997 }
30998 Py_ssize_t _children_capacity = 1;
30999 Py_ssize_t _n = 0;
31000 { // ',' (expression ['as' star_target])
31001 if (p->error_indicator) {
31002 D(p->level--);
31003 return NULL;
31004 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031005 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031006 Token * _literal;
31007 void *elem;
31008 while (
31009 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31010 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031011 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031012 )
31013 {
31014 _res = elem;
31015 if (_res == NULL && PyErr_Occurred()) {
31016 p->error_indicator = 1;
31017 PyMem_Free(_children);
31018 D(p->level--);
31019 return NULL;
31020 }
31021 if (_n == _children_capacity) {
31022 _children_capacity *= 2;
31023 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31024 if (!_new_children) {
31025 p->error_indicator = 1;
31026 PyErr_NoMemory();
31027 D(p->level--);
31028 return NULL;
31029 }
31030 _children = _new_children;
31031 }
31032 _children[_n++] = _res;
31033 _mark = p->mark;
31034 }
31035 p->mark = _mark;
31036 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
31037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31038 }
31039 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31040 if (!_seq) {
31041 PyMem_Free(_children);
31042 p->error_indicator = 1;
31043 PyErr_NoMemory();
31044 D(p->level--);
31045 return NULL;
31046 }
31047 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31048 PyMem_Free(_children);
31049 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
31050 D(p->level--);
31051 return _seq;
31052}
31053
31054// _gather_161: (expression ['as' star_target]) _loop0_162
31055static asdl_seq *
31056_gather_161_rule(Parser *p)
31057{
31058 D(p->level++);
31059 if (p->error_indicator) {
31060 D(p->level--);
31061 return NULL;
31062 }
31063 asdl_seq * _res = NULL;
31064 int _mark = p->mark;
31065 { // (expression ['as' star_target]) _loop0_162
31066 if (p->error_indicator) {
31067 D(p->level--);
31068 return NULL;
31069 }
31070 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
31071 void *elem;
31072 asdl_seq * seq;
31073 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031074 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031075 &&
31076 (seq = _loop0_162_rule(p)) // _loop0_162
31077 )
31078 {
31079 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
31080 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31081 goto done;
31082 }
31083 p->mark = _mark;
31084 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
31085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
31086 }
31087 _res = NULL;
31088 done:
31089 D(p->level--);
31090 return _res;
31091}
31092
31093// _loop0_164: ',' (expressions ['as' star_target])
31094static asdl_seq *
31095_loop0_164_rule(Parser *p)
31096{
31097 D(p->level++);
31098 if (p->error_indicator) {
31099 D(p->level--);
31100 return NULL;
31101 }
31102 void *_res = NULL;
31103 int _mark = p->mark;
31104 int _start_mark = p->mark;
31105 void **_children = PyMem_Malloc(sizeof(void *));
31106 if (!_children) {
31107 p->error_indicator = 1;
31108 PyErr_NoMemory();
31109 D(p->level--);
31110 return NULL;
31111 }
31112 Py_ssize_t _children_capacity = 1;
31113 Py_ssize_t _n = 0;
31114 { // ',' (expressions ['as' star_target])
31115 if (p->error_indicator) {
31116 D(p->level--);
31117 return NULL;
31118 }
31119 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31120 Token * _literal;
31121 void *elem;
31122 while (
31123 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31124 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031125 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031126 )
31127 {
31128 _res = elem;
31129 if (_res == NULL && PyErr_Occurred()) {
31130 p->error_indicator = 1;
31131 PyMem_Free(_children);
31132 D(p->level--);
31133 return NULL;
31134 }
31135 if (_n == _children_capacity) {
31136 _children_capacity *= 2;
31137 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31138 if (!_new_children) {
31139 p->error_indicator = 1;
31140 PyErr_NoMemory();
31141 D(p->level--);
31142 return NULL;
31143 }
31144 _children = _new_children;
31145 }
31146 _children[_n++] = _res;
31147 _mark = p->mark;
31148 }
31149 p->mark = _mark;
31150 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031152 }
31153 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31154 if (!_seq) {
31155 PyMem_Free(_children);
31156 p->error_indicator = 1;
31157 PyErr_NoMemory();
31158 D(p->level--);
31159 return NULL;
31160 }
31161 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31162 PyMem_Free(_children);
31163 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31164 D(p->level--);
31165 return _seq;
31166}
31167
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031168// _gather_163: (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031169static asdl_seq *
31170_gather_163_rule(Parser *p)
31171{
31172 D(p->level++);
31173 if (p->error_indicator) {
31174 D(p->level--);
31175 return NULL;
31176 }
31177 asdl_seq * _res = NULL;
31178 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031179 { // (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031180 if (p->error_indicator) {
31181 D(p->level--);
31182 return NULL;
31183 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031184 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031185 void *elem;
31186 asdl_seq * seq;
31187 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031188 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031189 &&
31190 (seq = _loop0_164_rule(p)) // _loop0_164
31191 )
31192 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031193 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031194 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31195 goto done;
31196 }
31197 p->mark = _mark;
31198 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031200 }
31201 _res = NULL;
31202 done:
31203 D(p->level--);
31204 return _res;
31205}
31206
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031207// _loop0_166: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031208static asdl_seq *
31209_loop0_166_rule(Parser *p)
31210{
31211 D(p->level++);
31212 if (p->error_indicator) {
31213 D(p->level--);
31214 return NULL;
31215 }
31216 void *_res = NULL;
31217 int _mark = p->mark;
31218 int _start_mark = p->mark;
31219 void **_children = PyMem_Malloc(sizeof(void *));
31220 if (!_children) {
31221 p->error_indicator = 1;
31222 PyErr_NoMemory();
31223 D(p->level--);
31224 return NULL;
31225 }
31226 Py_ssize_t _children_capacity = 1;
31227 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031228 { // ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031229 if (p->error_indicator) {
31230 D(p->level--);
31231 return NULL;
31232 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031233 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031234 Token * _literal;
31235 void *elem;
31236 while (
31237 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31238 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031239 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031240 )
31241 {
31242 _res = elem;
31243 if (_res == NULL && PyErr_Occurred()) {
31244 p->error_indicator = 1;
31245 PyMem_Free(_children);
31246 D(p->level--);
31247 return NULL;
31248 }
31249 if (_n == _children_capacity) {
31250 _children_capacity *= 2;
31251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31252 if (!_new_children) {
31253 p->error_indicator = 1;
31254 PyErr_NoMemory();
31255 D(p->level--);
31256 return NULL;
31257 }
31258 _children = _new_children;
31259 }
31260 _children[_n++] = _res;
31261 _mark = p->mark;
31262 }
31263 p->mark = _mark;
31264 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031266 }
31267 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31268 if (!_seq) {
31269 PyMem_Free(_children);
31270 p->error_indicator = 1;
31271 PyErr_NoMemory();
31272 D(p->level--);
31273 return NULL;
31274 }
31275 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31276 PyMem_Free(_children);
31277 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31278 D(p->level--);
31279 return _seq;
31280}
31281
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031282// _gather_165: (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031283static asdl_seq *
31284_gather_165_rule(Parser *p)
31285{
31286 D(p->level++);
31287 if (p->error_indicator) {
31288 D(p->level--);
31289 return NULL;
31290 }
31291 asdl_seq * _res = NULL;
31292 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031293 { // (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031294 if (p->error_indicator) {
31295 D(p->level--);
31296 return NULL;
31297 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031298 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031299 void *elem;
31300 asdl_seq * seq;
31301 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031302 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031303 &&
31304 (seq = _loop0_166_rule(p)) // _loop0_166
31305 )
31306 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031307 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031308 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31309 goto done;
31310 }
31311 p->mark = _mark;
31312 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031314 }
31315 _res = NULL;
31316 done:
31317 D(p->level--);
31318 return _res;
31319}
31320
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031321// _loop0_168: ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031322static asdl_seq *
31323_loop0_168_rule(Parser *p)
31324{
31325 D(p->level++);
31326 if (p->error_indicator) {
31327 D(p->level--);
31328 return NULL;
31329 }
31330 void *_res = NULL;
31331 int _mark = p->mark;
31332 int _start_mark = p->mark;
31333 void **_children = PyMem_Malloc(sizeof(void *));
31334 if (!_children) {
31335 p->error_indicator = 1;
31336 PyErr_NoMemory();
31337 D(p->level--);
31338 return NULL;
31339 }
31340 Py_ssize_t _children_capacity = 1;
31341 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031342 { // ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031343 if (p->error_indicator) {
31344 D(p->level--);
31345 return NULL;
31346 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031347 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031348 Token * _literal;
31349 void *elem;
31350 while (
31351 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31352 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031353 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031354 )
31355 {
31356 _res = elem;
31357 if (_res == NULL && PyErr_Occurred()) {
31358 p->error_indicator = 1;
31359 PyMem_Free(_children);
31360 D(p->level--);
31361 return NULL;
31362 }
31363 if (_n == _children_capacity) {
31364 _children_capacity *= 2;
31365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31366 if (!_new_children) {
31367 p->error_indicator = 1;
31368 PyErr_NoMemory();
31369 D(p->level--);
31370 return NULL;
31371 }
31372 _children = _new_children;
31373 }
31374 _children[_n++] = _res;
31375 _mark = p->mark;
31376 }
31377 p->mark = _mark;
31378 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031380 }
31381 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31382 if (!_seq) {
31383 PyMem_Free(_children);
31384 p->error_indicator = 1;
31385 PyErr_NoMemory();
31386 D(p->level--);
31387 return NULL;
31388 }
31389 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31390 PyMem_Free(_children);
31391 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31392 D(p->level--);
31393 return _seq;
31394}
31395
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031396// _gather_167: (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031397static asdl_seq *
31398_gather_167_rule(Parser *p)
31399{
31400 D(p->level++);
31401 if (p->error_indicator) {
31402 D(p->level--);
31403 return NULL;
31404 }
31405 asdl_seq * _res = NULL;
31406 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031407 { // (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031408 if (p->error_indicator) {
31409 D(p->level--);
31410 return NULL;
31411 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031412 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031413 void *elem;
31414 asdl_seq * seq;
31415 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031416 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031417 &&
31418 (seq = _loop0_168_rule(p)) // _loop0_168
31419 )
31420 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031421 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031422 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31423 goto done;
31424 }
31425 p->mark = _mark;
31426 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031428 }
31429 _res = NULL;
31430 done:
31431 D(p->level--);
31432 return _res;
31433}
31434
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031435// _tmp_169: 'except' | 'finally'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031436static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031437_tmp_169_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031438{
31439 D(p->level++);
31440 if (p->error_indicator) {
31441 D(p->level--);
31442 return NULL;
31443 }
31444 void * _res = NULL;
31445 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031446 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031447 if (p->error_indicator) {
31448 D(p->level--);
31449 return NULL;
31450 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031451 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031452 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031453 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031454 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031455 )
31456 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031457 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031458 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031459 goto done;
31460 }
31461 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031462 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31464 }
31465 { // 'finally'
31466 if (p->error_indicator) {
31467 D(p->level--);
31468 return NULL;
31469 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031470 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031471 Token * _keyword;
31472 if (
31473 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31474 )
31475 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031476 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031477 _res = _keyword;
31478 goto done;
31479 }
31480 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031481 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031483 }
31484 _res = NULL;
31485 done:
31486 D(p->level--);
31487 return _res;
31488}
31489
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031490// _tmp_170: 'as' NAME
31491static void *
31492_tmp_170_rule(Parser *p)
31493{
31494 D(p->level++);
31495 if (p->error_indicator) {
31496 D(p->level--);
31497 return NULL;
31498 }
31499 void * _res = NULL;
31500 int _mark = p->mark;
31501 { // 'as' NAME
31502 if (p->error_indicator) {
31503 D(p->level--);
31504 return NULL;
31505 }
31506 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31507 Token * _keyword;
31508 expr_ty name_var;
31509 if (
31510 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31511 &&
31512 (name_var = _PyPegen_name_token(p)) // NAME
31513 )
31514 {
31515 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31516 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31517 goto done;
31518 }
31519 p->mark = _mark;
31520 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31522 }
31523 _res = NULL;
31524 done:
31525 D(p->level--);
31526 return _res;
31527}
31528
31529// _tmp_171: 'as' NAME
31530static void *
31531_tmp_171_rule(Parser *p)
31532{
31533 D(p->level++);
31534 if (p->error_indicator) {
31535 D(p->level--);
31536 return NULL;
31537 }
31538 void * _res = NULL;
31539 int _mark = p->mark;
31540 { // 'as' NAME
31541 if (p->error_indicator) {
31542 D(p->level--);
31543 return NULL;
31544 }
31545 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31546 Token * _keyword;
31547 expr_ty name_var;
31548 if (
31549 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31550 &&
31551 (name_var = _PyPegen_name_token(p)) // NAME
31552 )
31553 {
31554 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31555 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31556 goto done;
31557 }
31558 p->mark = _mark;
31559 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31561 }
31562 _res = NULL;
31563 done:
31564 D(p->level--);
31565 return _res;
31566}
31567
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031568// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031569static void *
31570_tmp_172_rule(Parser *p)
31571{
31572 D(p->level++);
31573 if (p->error_indicator) {
31574 D(p->level--);
31575 return NULL;
31576 }
31577 void * _res = NULL;
31578 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031579 { // 'as' NAME
31580 if (p->error_indicator) {
31581 D(p->level--);
31582 return NULL;
31583 }
31584 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31585 Token * _keyword;
31586 expr_ty name_var;
31587 if (
31588 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31589 &&
31590 (name_var = _PyPegen_name_token(p)) // NAME
31591 )
31592 {
31593 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31594 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31595 goto done;
31596 }
31597 p->mark = _mark;
31598 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31600 }
31601 _res = NULL;
31602 done:
31603 D(p->level--);
31604 return _res;
31605}
31606
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031607// _tmp_173: positional_patterns ','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031608static void *
31609_tmp_173_rule(Parser *p)
31610{
31611 D(p->level++);
31612 if (p->error_indicator) {
31613 D(p->level--);
31614 return NULL;
31615 }
31616 void * _res = NULL;
31617 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031618 { // positional_patterns ','
31619 if (p->error_indicator) {
31620 D(p->level--);
31621 return NULL;
31622 }
31623 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
31624 Token * _literal;
31625 asdl_pattern_seq* positional_patterns_var;
31626 if (
31627 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
31628 &&
31629 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31630 )
31631 {
31632 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
31633 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
31634 goto done;
31635 }
31636 p->mark = _mark;
31637 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
31639 }
31640 _res = NULL;
31641 done:
31642 D(p->level--);
31643 return _res;
31644}
31645
31646// _tmp_174: '->' expression
31647static void *
31648_tmp_174_rule(Parser *p)
31649{
31650 D(p->level++);
31651 if (p->error_indicator) {
31652 D(p->level--);
31653 return NULL;
31654 }
31655 void * _res = NULL;
31656 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031657 { // '->' expression
31658 if (p->error_indicator) {
31659 D(p->level--);
31660 return NULL;
31661 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031662 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031663 Token * _literal;
31664 expr_ty expression_var;
31665 if (
31666 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31667 &&
31668 (expression_var = expression_rule(p)) // expression
31669 )
31670 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031671 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031672 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31673 goto done;
31674 }
31675 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031676 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31678 }
31679 _res = NULL;
31680 done:
31681 D(p->level--);
31682 return _res;
31683}
31684
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031685// _tmp_175: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031686static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031687_tmp_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031688{
31689 D(p->level++);
31690 if (p->error_indicator) {
31691 D(p->level--);
31692 return NULL;
31693 }
31694 void * _res = NULL;
31695 int _mark = p->mark;
31696 { // '(' arguments? ')'
31697 if (p->error_indicator) {
31698 D(p->level--);
31699 return NULL;
31700 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031701 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031702 Token * _literal;
31703 Token * _literal_1;
31704 void *_opt_var;
31705 UNUSED(_opt_var); // Silence compiler warnings
31706 if (
31707 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31708 &&
31709 (_opt_var = arguments_rule(p), 1) // arguments?
31710 &&
31711 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31712 )
31713 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031714 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031715 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31716 goto done;
31717 }
31718 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031719 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31721 }
31722 _res = NULL;
31723 done:
31724 D(p->level--);
31725 return _res;
31726}
31727
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031728// _loop0_177: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031729static asdl_seq *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031730_loop0_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031731{
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;
31739 int _start_mark = p->mark;
31740 void **_children = PyMem_Malloc(sizeof(void *));
31741 if (!_children) {
31742 p->error_indicator = 1;
31743 PyErr_NoMemory();
31744 D(p->level--);
31745 return NULL;
31746 }
31747 Py_ssize_t _children_capacity = 1;
31748 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031749 { // ',' double_starred_kvpair
31750 if (p->error_indicator) {
31751 D(p->level--);
31752 return NULL;
31753 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031754 D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031755 Token * _literal;
31756 KeyValuePair* elem;
31757 while (
31758 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31759 &&
31760 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31761 )
31762 {
31763 _res = elem;
31764 if (_res == NULL && PyErr_Occurred()) {
31765 p->error_indicator = 1;
31766 PyMem_Free(_children);
31767 D(p->level--);
31768 return NULL;
31769 }
31770 if (_n == _children_capacity) {
31771 _children_capacity *= 2;
31772 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31773 if (!_new_children) {
31774 p->error_indicator = 1;
31775 PyErr_NoMemory();
31776 D(p->level--);
31777 return NULL;
31778 }
31779 _children = _new_children;
31780 }
31781 _children[_n++] = _res;
31782 _mark = p->mark;
31783 }
31784 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031785 D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31787 }
31788 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31789 if (!_seq) {
31790 PyMem_Free(_children);
31791 p->error_indicator = 1;
31792 PyErr_NoMemory();
31793 D(p->level--);
31794 return NULL;
31795 }
31796 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31797 PyMem_Free(_children);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031798 _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031799 D(p->level--);
31800 return _seq;
31801}
31802
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031803// _gather_176: double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031804static asdl_seq *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031805_gather_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031806{
31807 D(p->level++);
31808 if (p->error_indicator) {
31809 D(p->level--);
31810 return NULL;
31811 }
31812 asdl_seq * _res = NULL;
31813 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031814 { // double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031815 if (p->error_indicator) {
31816 D(p->level--);
31817 return NULL;
31818 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031819 D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031820 KeyValuePair* elem;
31821 asdl_seq * seq;
31822 if (
31823 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31824 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031825 (seq = _loop0_177_rule(p)) // _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031826 )
31827 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031828 D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031829 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31830 goto done;
31831 }
31832 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031833 D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ',
31834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031835 }
31836 _res = NULL;
31837 done:
31838 D(p->level--);
31839 return _res;
31840}
31841
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031842// _tmp_178: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031843static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031844_tmp_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031845{
31846 D(p->level++);
31847 if (p->error_indicator) {
31848 D(p->level--);
31849 return NULL;
31850 }
31851 void * _res = NULL;
31852 int _mark = p->mark;
31853 { // '}'
31854 if (p->error_indicator) {
31855 D(p->level--);
31856 return NULL;
31857 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031858 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031859 Token * _literal;
31860 if (
31861 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31862 )
31863 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031864 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031865 _res = _literal;
31866 goto done;
31867 }
31868 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031869 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31871 }
31872 { // ','
31873 if (p->error_indicator) {
31874 D(p->level--);
31875 return NULL;
31876 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031877 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031878 Token * _literal;
31879 if (
31880 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31881 )
31882 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031883 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031884 _res = _literal;
31885 goto done;
31886 }
31887 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031888 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31890 }
31891 _res = NULL;
31892 done:
31893 D(p->level--);
31894 return _res;
31895}
31896
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031897// _tmp_179: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031898static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031899_tmp_179_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031900{
31901 D(p->level++);
31902 if (p->error_indicator) {
31903 D(p->level--);
31904 return NULL;
31905 }
31906 void * _res = NULL;
31907 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031908 { // star_targets '='
31909 if (p->error_indicator) {
31910 D(p->level--);
31911 return NULL;
31912 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031913 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031914 Token * _literal;
31915 expr_ty z;
31916 if (
31917 (z = star_targets_rule(p)) // star_targets
31918 &&
31919 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31920 )
31921 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031922 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031923 _res = z;
31924 if (_res == NULL && PyErr_Occurred()) {
31925 p->error_indicator = 1;
31926 D(p->level--);
31927 return NULL;
31928 }
31929 goto done;
31930 }
31931 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031932 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31934 }
31935 _res = NULL;
31936 done:
31937 D(p->level--);
31938 return _res;
31939}
31940
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031941// _tmp_180: '.' | '...'
31942static void *
31943_tmp_180_rule(Parser *p)
31944{
31945 D(p->level++);
31946 if (p->error_indicator) {
31947 D(p->level--);
31948 return NULL;
31949 }
31950 void * _res = NULL;
31951 int _mark = p->mark;
31952 { // '.'
31953 if (p->error_indicator) {
31954 D(p->level--);
31955 return NULL;
31956 }
31957 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31958 Token * _literal;
31959 if (
31960 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31961 )
31962 {
31963 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31964 _res = _literal;
31965 goto done;
31966 }
31967 p->mark = _mark;
31968 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31970 }
31971 { // '...'
31972 if (p->error_indicator) {
31973 D(p->level--);
31974 return NULL;
31975 }
31976 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31977 Token * _literal;
31978 if (
31979 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31980 )
31981 {
31982 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31983 _res = _literal;
31984 goto done;
31985 }
31986 p->mark = _mark;
31987 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31989 }
31990 _res = NULL;
31991 done:
31992 D(p->level--);
31993 return _res;
31994}
31995
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031996// _tmp_181: '.' | '...'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031997static void *
31998_tmp_181_rule(Parser *p)
31999{
32000 D(p->level++);
32001 if (p->error_indicator) {
32002 D(p->level--);
32003 return NULL;
32004 }
32005 void * _res = NULL;
32006 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032007 { // '.'
32008 if (p->error_indicator) {
32009 D(p->level--);
32010 return NULL;
32011 }
32012 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32013 Token * _literal;
32014 if (
32015 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32016 )
32017 {
32018 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32019 _res = _literal;
32020 goto done;
32021 }
32022 p->mark = _mark;
32023 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32025 }
32026 { // '...'
32027 if (p->error_indicator) {
32028 D(p->level--);
32029 return NULL;
32030 }
32031 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32032 Token * _literal;
32033 if (
32034 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32035 )
32036 {
32037 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32038 _res = _literal;
32039 goto done;
32040 }
32041 p->mark = _mark;
32042 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32044 }
32045 _res = NULL;
32046 done:
32047 D(p->level--);
32048 return _res;
32049}
32050
32051// _tmp_182: '@' named_expression NEWLINE
32052static void *
32053_tmp_182_rule(Parser *p)
32054{
32055 D(p->level++);
32056 if (p->error_indicator) {
32057 D(p->level--);
32058 return NULL;
32059 }
32060 void * _res = NULL;
32061 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032062 { // '@' named_expression NEWLINE
32063 if (p->error_indicator) {
32064 D(p->level--);
32065 return NULL;
32066 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032067 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032068 Token * _literal;
32069 expr_ty f;
32070 Token * newline_var;
32071 if (
32072 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32073 &&
32074 (f = named_expression_rule(p)) // named_expression
32075 &&
32076 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32077 )
32078 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032079 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032080 _res = f;
32081 if (_res == NULL && PyErr_Occurred()) {
32082 p->error_indicator = 1;
32083 D(p->level--);
32084 return NULL;
32085 }
32086 goto done;
32087 }
32088 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032089 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32091 }
32092 _res = NULL;
32093 done:
32094 D(p->level--);
32095 return _res;
32096}
32097
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032098// _tmp_183: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032099static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032100_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032101{
32102 D(p->level++);
32103 if (p->error_indicator) {
32104 D(p->level--);
32105 return NULL;
32106 }
32107 void * _res = NULL;
32108 int _mark = p->mark;
32109 { // ',' star_expression
32110 if (p->error_indicator) {
32111 D(p->level--);
32112 return NULL;
32113 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032114 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032115 Token * _literal;
32116 expr_ty c;
32117 if (
32118 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32119 &&
32120 (c = star_expression_rule(p)) // star_expression
32121 )
32122 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032123 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032124 _res = c;
32125 if (_res == NULL && PyErr_Occurred()) {
32126 p->error_indicator = 1;
32127 D(p->level--);
32128 return NULL;
32129 }
32130 goto done;
32131 }
32132 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032133 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32135 }
32136 _res = NULL;
32137 done:
32138 D(p->level--);
32139 return _res;
32140}
32141
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032142// _tmp_184: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032143static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032144_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032145{
32146 D(p->level++);
32147 if (p->error_indicator) {
32148 D(p->level--);
32149 return NULL;
32150 }
32151 void * _res = NULL;
32152 int _mark = p->mark;
32153 { // ',' expression
32154 if (p->error_indicator) {
32155 D(p->level--);
32156 return NULL;
32157 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032158 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032159 Token * _literal;
32160 expr_ty c;
32161 if (
32162 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32163 &&
32164 (c = expression_rule(p)) // expression
32165 )
32166 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032167 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032168 _res = c;
32169 if (_res == NULL && PyErr_Occurred()) {
32170 p->error_indicator = 1;
32171 D(p->level--);
32172 return NULL;
32173 }
32174 goto done;
32175 }
32176 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032177 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32179 }
32180 _res = NULL;
32181 done:
32182 D(p->level--);
32183 return _res;
32184}
32185
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032186// _tmp_185: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032187static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032188_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032189{
32190 D(p->level++);
32191 if (p->error_indicator) {
32192 D(p->level--);
32193 return NULL;
32194 }
32195 void * _res = NULL;
32196 int _mark = p->mark;
32197 { // 'or' conjunction
32198 if (p->error_indicator) {
32199 D(p->level--);
32200 return NULL;
32201 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032202 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032203 Token * _keyword;
32204 expr_ty c;
32205 if (
32206 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32207 &&
32208 (c = conjunction_rule(p)) // conjunction
32209 )
32210 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032211 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032212 _res = c;
32213 if (_res == NULL && PyErr_Occurred()) {
32214 p->error_indicator = 1;
32215 D(p->level--);
32216 return NULL;
32217 }
32218 goto done;
32219 }
32220 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032221 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32223 }
32224 _res = NULL;
32225 done:
32226 D(p->level--);
32227 return _res;
32228}
32229
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032230// _tmp_186: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032231static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032232_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032233{
32234 D(p->level++);
32235 if (p->error_indicator) {
32236 D(p->level--);
32237 return NULL;
32238 }
32239 void * _res = NULL;
32240 int _mark = p->mark;
32241 { // 'and' inversion
32242 if (p->error_indicator) {
32243 D(p->level--);
32244 return NULL;
32245 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032246 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032247 Token * _keyword;
32248 expr_ty c;
32249 if (
32250 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32251 &&
32252 (c = inversion_rule(p)) // inversion
32253 )
32254 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032255 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032256 _res = c;
32257 if (_res == NULL && PyErr_Occurred()) {
32258 p->error_indicator = 1;
32259 D(p->level--);
32260 return NULL;
32261 }
32262 goto done;
32263 }
32264 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032265 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032267 }
32268 _res = NULL;
32269 done:
32270 D(p->level--);
32271 return _res;
32272}
32273
32274// _tmp_187: 'if' disjunction
32275static void *
32276_tmp_187_rule(Parser *p)
32277{
32278 D(p->level++);
32279 if (p->error_indicator) {
32280 D(p->level--);
32281 return NULL;
32282 }
32283 void * _res = NULL;
32284 int _mark = p->mark;
32285 { // 'if' disjunction
32286 if (p->error_indicator) {
32287 D(p->level--);
32288 return NULL;
32289 }
32290 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32291 Token * _keyword;
32292 expr_ty z;
32293 if (
32294 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32295 &&
32296 (z = disjunction_rule(p)) // disjunction
32297 )
32298 {
32299 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32300 _res = z;
32301 if (_res == NULL && PyErr_Occurred()) {
32302 p->error_indicator = 1;
32303 D(p->level--);
32304 return NULL;
32305 }
32306 goto done;
32307 }
32308 p->mark = _mark;
32309 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
32310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32311 }
32312 _res = NULL;
32313 done:
32314 D(p->level--);
32315 return _res;
32316}
32317
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032318// _tmp_188: 'if' disjunction
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032319static void *
32320_tmp_188_rule(Parser *p)
32321{
32322 D(p->level++);
32323 if (p->error_indicator) {
32324 D(p->level--);
32325 return NULL;
32326 }
32327 void * _res = NULL;
32328 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032329 { // 'if' disjunction
32330 if (p->error_indicator) {
32331 D(p->level--);
32332 return NULL;
32333 }
32334 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32335 Token * _keyword;
32336 expr_ty z;
32337 if (
32338 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32339 &&
32340 (z = disjunction_rule(p)) // disjunction
32341 )
32342 {
32343 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32344 _res = z;
32345 if (_res == NULL && PyErr_Occurred()) {
32346 p->error_indicator = 1;
32347 D(p->level--);
32348 return NULL;
32349 }
32350 goto done;
32351 }
32352 p->mark = _mark;
32353 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
32354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32355 }
32356 _res = NULL;
32357 done:
32358 D(p->level--);
32359 return _res;
32360}
32361
32362// _tmp_189: starred_expression | (assigment_expression | expression !':=') !'='
32363static void *
32364_tmp_189_rule(Parser *p)
32365{
32366 D(p->level++);
32367 if (p->error_indicator) {
32368 D(p->level--);
32369 return NULL;
32370 }
32371 void * _res = NULL;
32372 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032373 { // starred_expression
32374 if (p->error_indicator) {
32375 D(p->level--);
32376 return NULL;
32377 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032378 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032379 expr_ty starred_expression_var;
32380 if (
32381 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32382 )
32383 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032384 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032385 _res = starred_expression_var;
32386 goto done;
32387 }
32388 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032389 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32391 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032392 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032393 if (p->error_indicator) {
32394 D(p->level--);
32395 return NULL;
32396 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032397 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32398 void *_tmp_200_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032399 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032400 (_tmp_200_var = _tmp_200_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032401 &&
32402 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32403 )
32404 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032405 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32406 _res = _tmp_200_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032407 goto done;
32408 }
32409 p->mark = _mark;
32410 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032412 }
32413 _res = NULL;
32414 done:
32415 D(p->level--);
32416 return _res;
32417}
32418
32419// _tmp_190: ',' star_target
32420static void *
32421_tmp_190_rule(Parser *p)
32422{
32423 D(p->level++);
32424 if (p->error_indicator) {
32425 D(p->level--);
32426 return NULL;
32427 }
32428 void * _res = NULL;
32429 int _mark = p->mark;
32430 { // ',' star_target
32431 if (p->error_indicator) {
32432 D(p->level--);
32433 return NULL;
32434 }
32435 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32436 Token * _literal;
32437 expr_ty c;
32438 if (
32439 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32440 &&
32441 (c = star_target_rule(p)) // star_target
32442 )
32443 {
32444 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32445 _res = c;
32446 if (_res == NULL && PyErr_Occurred()) {
32447 p->error_indicator = 1;
32448 D(p->level--);
32449 return NULL;
32450 }
32451 goto done;
32452 }
32453 p->mark = _mark;
32454 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32456 }
32457 _res = NULL;
32458 done:
32459 D(p->level--);
32460 return _res;
32461}
32462
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032463// _tmp_191: ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032464static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032465_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032466{
32467 D(p->level++);
32468 if (p->error_indicator) {
32469 D(p->level--);
32470 return NULL;
32471 }
32472 void * _res = NULL;
32473 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032474 { // ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032475 if (p->error_indicator) {
32476 D(p->level--);
32477 return NULL;
32478 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032479 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032480 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032481 expr_ty c;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032482 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032483 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoa77aac42021-04-23 14:27:05 +010032484 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032485 (c = star_target_rule(p)) // star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032486 )
32487 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032488 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32489 _res = c;
32490 if (_res == NULL && PyErr_Occurred()) {
32491 p->error_indicator = 1;
32492 D(p->level--);
32493 return NULL;
32494 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032495 goto done;
32496 }
32497 p->mark = _mark;
32498 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032500 }
32501 _res = NULL;
32502 done:
32503 D(p->level--);
32504 return _res;
32505}
32506
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032507// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032508static void *
32509_tmp_192_rule(Parser *p)
32510{
32511 D(p->level++);
32512 if (p->error_indicator) {
32513 D(p->level--);
32514 return NULL;
32515 }
32516 void * _res = NULL;
32517 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032518 { // star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032519 if (p->error_indicator) {
32520 D(p->level--);
32521 return NULL;
32522 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032523 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032524 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032525 expr_ty star_targets_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032526 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032527 (star_targets_var = star_targets_rule(p)) // star_targets
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032528 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032529 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032530 )
32531 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032532 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32533 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032534 goto done;
32535 }
32536 p->mark = _mark;
32537 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032539 }
32540 _res = NULL;
32541 done:
32542 D(p->level--);
32543 return _res;
32544}
32545
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032546// _tmp_193: star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032547static void *
32548_tmp_193_rule(Parser *p)
32549{
32550 D(p->level++);
32551 if (p->error_indicator) {
32552 D(p->level--);
32553 return NULL;
32554 }
32555 void * _res = NULL;
32556 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032557 { // star_targets '='
32558 if (p->error_indicator) {
32559 D(p->level--);
32560 return NULL;
32561 }
32562 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32563 Token * _literal;
32564 expr_ty star_targets_var;
32565 if (
32566 (star_targets_var = star_targets_rule(p)) // star_targets
32567 &&
32568 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32569 )
32570 {
32571 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32572 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32573 goto done;
32574 }
32575 p->mark = _mark;
32576 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32578 }
32579 _res = NULL;
32580 done:
32581 D(p->level--);
32582 return _res;
32583}
32584
32585// _tmp_194: ')' | '**'
32586static void *
32587_tmp_194_rule(Parser *p)
32588{
32589 D(p->level++);
32590 if (p->error_indicator) {
32591 D(p->level--);
32592 return NULL;
32593 }
32594 void * _res = NULL;
32595 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032596 { // ')'
32597 if (p->error_indicator) {
32598 D(p->level--);
32599 return NULL;
32600 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032601 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032602 Token * _literal;
32603 if (
32604 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32605 )
32606 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032607 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032608 _res = _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032609 goto done;
32610 }
32611 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032612 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032614 }
32615 { // '**'
32616 if (p->error_indicator) {
32617 D(p->level--);
32618 return NULL;
32619 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032620 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032621 Token * _literal;
32622 if (
32623 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32624 )
32625 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032626 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032627 _res = _literal;
32628 goto done;
32629 }
32630 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032631 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032633 }
32634 _res = NULL;
32635 done:
32636 D(p->level--);
32637 return _res;
32638}
32639
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032640// _tmp_195: ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032641static void *
32642_tmp_195_rule(Parser *p)
32643{
32644 D(p->level++);
32645 if (p->error_indicator) {
32646 D(p->level--);
32647 return NULL;
32648 }
32649 void * _res = NULL;
32650 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032651 { // ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032652 if (p->error_indicator) {
32653 D(p->level--);
32654 return NULL;
32655 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032656 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32657 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032658 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032659 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032660 )
32661 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032662 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32663 _res = _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032664 goto done;
32665 }
32666 p->mark = _mark;
32667 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32669 }
32670 { // '**'
32671 if (p->error_indicator) {
32672 D(p->level--);
32673 return NULL;
32674 }
32675 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32676 Token * _literal;
32677 if (
32678 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32679 )
32680 {
32681 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32682 _res = _literal;
32683 goto done;
32684 }
32685 p->mark = _mark;
32686 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032688 }
32689 _res = NULL;
32690 done:
32691 D(p->level--);
32692 return _res;
32693}
32694
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032695// _tmp_196: expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032696static void *
32697_tmp_196_rule(Parser *p)
32698{
32699 D(p->level++);
32700 if (p->error_indicator) {
32701 D(p->level--);
32702 return NULL;
32703 }
32704 void * _res = NULL;
32705 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032706 { // expression ['as' star_target]
32707 if (p->error_indicator) {
32708 D(p->level--);
32709 return NULL;
32710 }
32711 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32712 void *_opt_var;
32713 UNUSED(_opt_var); // Silence compiler warnings
32714 expr_ty expression_var;
32715 if (
32716 (expression_var = expression_rule(p)) // expression
32717 &&
32718 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
32719 )
32720 {
32721 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32722 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32723 goto done;
32724 }
32725 p->mark = _mark;
32726 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32728 }
32729 _res = NULL;
32730 done:
32731 D(p->level--);
32732 return _res;
32733}
32734
32735// _tmp_197: expressions ['as' star_target]
32736static void *
32737_tmp_197_rule(Parser *p)
32738{
32739 D(p->level++);
32740 if (p->error_indicator) {
32741 D(p->level--);
32742 return NULL;
32743 }
32744 void * _res = NULL;
32745 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032746 { // expressions ['as' star_target]
32747 if (p->error_indicator) {
32748 D(p->level--);
32749 return NULL;
32750 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032751 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032752 void *_opt_var;
32753 UNUSED(_opt_var); // Silence compiler warnings
32754 expr_ty expressions_var;
32755 if (
32756 (expressions_var = expressions_rule(p)) // expressions
32757 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032758 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032759 )
32760 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032761 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032762 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32763 goto done;
32764 }
32765 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032766 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32768 }
32769 _res = NULL;
32770 done:
32771 D(p->level--);
32772 return _res;
32773}
32774
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032775// _tmp_198: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032776static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032777_tmp_198_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032778{
32779 D(p->level++);
32780 if (p->error_indicator) {
32781 D(p->level--);
32782 return NULL;
32783 }
32784 void * _res = NULL;
32785 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032786 { // expression ['as' star_target]
32787 if (p->error_indicator) {
32788 D(p->level--);
32789 return NULL;
32790 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032791 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032792 void *_opt_var;
32793 UNUSED(_opt_var); // Silence compiler warnings
32794 expr_ty expression_var;
32795 if (
32796 (expression_var = expression_rule(p)) // expression
32797 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032798 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032799 )
32800 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032801 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032802 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32803 goto done;
32804 }
32805 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032806 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32808 }
32809 _res = NULL;
32810 done:
32811 D(p->level--);
32812 return _res;
32813}
32814
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032815// _tmp_199: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032816static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032817_tmp_199_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032818{
32819 D(p->level++);
32820 if (p->error_indicator) {
32821 D(p->level--);
32822 return NULL;
32823 }
32824 void * _res = NULL;
32825 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032826 { // expressions ['as' star_target]
32827 if (p->error_indicator) {
32828 D(p->level--);
32829 return NULL;
32830 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032831 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032832 void *_opt_var;
32833 UNUSED(_opt_var); // Silence compiler warnings
32834 expr_ty expressions_var;
32835 if (
32836 (expressions_var = expressions_rule(p)) // expressions
32837 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032838 (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032839 )
32840 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032841 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032842 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32843 goto done;
32844 }
32845 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032846 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032848 }
32849 _res = NULL;
32850 done:
32851 D(p->level--);
32852 return _res;
32853}
32854
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032855// _tmp_200: assigment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032856static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032857_tmp_200_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032858{
32859 D(p->level++);
32860 if (p->error_indicator) {
32861 D(p->level--);
32862 return NULL;
32863 }
32864 void * _res = NULL;
32865 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032866 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032867 if (p->error_indicator) {
32868 D(p->level--);
32869 return NULL;
32870 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032871 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032872 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032873 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032874 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032875 )
32876 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032877 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032878 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032879 goto done;
32880 }
32881 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032882 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32884 }
32885 { // expression !':='
32886 if (p->error_indicator) {
32887 D(p->level--);
32888 return NULL;
32889 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032890 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032891 expr_ty expression_var;
32892 if (
32893 (expression_var = expression_rule(p)) // expression
32894 &&
32895 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32896 )
32897 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032898 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032899 _res = expression_var;
32900 goto done;
32901 }
32902 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032903 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032905 }
32906 _res = NULL;
32907 done:
32908 D(p->level--);
32909 return _res;
32910}
32911
32912// _tmp_201: 'as' star_target
32913static void *
32914_tmp_201_rule(Parser *p)
32915{
32916 D(p->level++);
32917 if (p->error_indicator) {
32918 D(p->level--);
32919 return NULL;
32920 }
32921 void * _res = NULL;
32922 int _mark = p->mark;
32923 { // 'as' star_target
32924 if (p->error_indicator) {
32925 D(p->level--);
32926 return NULL;
32927 }
32928 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32929 Token * _keyword;
32930 expr_ty star_target_var;
32931 if (
32932 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32933 &&
32934 (star_target_var = star_target_rule(p)) // star_target
32935 )
32936 {
32937 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32938 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32939 goto done;
32940 }
32941 p->mark = _mark;
32942 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32944 }
32945 _res = NULL;
32946 done:
32947 D(p->level--);
32948 return _res;
32949}
32950
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032951// _tmp_202: 'as' star_target
32952static void *
32953_tmp_202_rule(Parser *p)
32954{
32955 D(p->level++);
32956 if (p->error_indicator) {
32957 D(p->level--);
32958 return NULL;
32959 }
32960 void * _res = NULL;
32961 int _mark = p->mark;
32962 { // 'as' star_target
32963 if (p->error_indicator) {
32964 D(p->level--);
32965 return NULL;
32966 }
32967 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32968 Token * _keyword;
32969 expr_ty star_target_var;
32970 if (
32971 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32972 &&
32973 (star_target_var = star_target_rule(p)) // star_target
32974 )
32975 {
32976 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32977 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32978 goto done;
32979 }
32980 p->mark = _mark;
32981 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32983 }
32984 _res = NULL;
32985 done:
32986 D(p->level--);
32987 return _res;
32988}
32989
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032990// _tmp_203: 'as' star_target
32991static void *
32992_tmp_203_rule(Parser *p)
32993{
32994 D(p->level++);
32995 if (p->error_indicator) {
32996 D(p->level--);
32997 return NULL;
32998 }
32999 void * _res = NULL;
33000 int _mark = p->mark;
33001 { // 'as' star_target
33002 if (p->error_indicator) {
33003 D(p->level--);
33004 return NULL;
33005 }
33006 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33007 Token * _keyword;
33008 expr_ty star_target_var;
33009 if (
33010 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33011 &&
33012 (star_target_var = star_target_rule(p)) // star_target
33013 )
33014 {
33015 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33016 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33017 goto done;
33018 }
33019 p->mark = _mark;
33020 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33022 }
33023 _res = NULL;
33024 done:
33025 D(p->level--);
33026 return _res;
33027}
33028
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033029// _tmp_204: 'as' star_target
33030static void *
33031_tmp_204_rule(Parser *p)
33032{
33033 D(p->level++);
33034 if (p->error_indicator) {
33035 D(p->level--);
33036 return NULL;
33037 }
33038 void * _res = NULL;
33039 int _mark = p->mark;
33040 { // 'as' star_target
33041 if (p->error_indicator) {
33042 D(p->level--);
33043 return NULL;
33044 }
33045 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33046 Token * _keyword;
33047 expr_ty star_target_var;
33048 if (
33049 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33050 &&
33051 (star_target_var = star_target_rule(p)) // star_target
33052 )
33053 {
33054 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33055 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33056 goto done;
33057 }
33058 p->mark = _mark;
33059 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33061 }
33062 _res = NULL;
33063 done:
33064 D(p->level--);
33065 return _res;
33066}
33067
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033068void *
33069_PyPegen_parse(Parser *p)
33070{
33071 // Initialize keywords
33072 p->keywords = reserved_keywords;
33073 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033074 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033075
33076 // Run parser
33077 void *result = NULL;
33078 if (p->start_rule == Py_file_input) {
33079 result = file_rule(p);
33080 } else if (p->start_rule == Py_single_input) {
33081 result = interactive_rule(p);
33082 } else if (p->start_rule == Py_eval_input) {
33083 result = eval_rule(p);
33084 } else if (p->start_rule == Py_func_type_input) {
33085 result = func_type_rule(p);
33086 } else if (p->start_rule == Py_fstring_input) {
33087 result = fstring_rule(p);
33088 }
33089
33090 return result;
33091}
33092
33093// The end