blob: 2f7a71a5418e6478b811725bba1ec19b1a8a259d [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
122#define signed_number_type 1048
123#define capture_pattern_type 1049
124#define wildcard_pattern_type 1050
125#define value_pattern_type 1051
126#define attr_type 1052 // Left-recursive
127#define name_or_attr_type 1053 // Left-recursive
128#define group_pattern_type 1054
129#define sequence_pattern_type 1055
130#define open_sequence_pattern_type 1056
131#define maybe_sequence_pattern_type 1057
132#define maybe_star_pattern_type 1058
133#define star_pattern_type 1059
134#define mapping_pattern_type 1060
135#define items_pattern_type 1061
136#define key_value_pattern_type 1062
137#define double_star_pattern_type 1063
138#define class_pattern_type 1064
139#define positional_patterns_type 1065
140#define keyword_patterns_type 1066
141#define keyword_pattern_type 1067
142#define return_stmt_type 1068
143#define raise_stmt_type 1069
144#define function_def_type 1070
145#define function_def_raw_type 1071
146#define func_type_comment_type 1072
147#define params_type 1073
148#define parameters_type 1074
149#define slash_no_default_type 1075
150#define slash_with_default_type 1076
151#define star_etc_type 1077
152#define kwds_type 1078
153#define param_no_default_type 1079
154#define param_with_default_type 1080
155#define param_maybe_default_type 1081
156#define param_type 1082
157#define annotation_type 1083
158#define default_type 1084
159#define decorators_type 1085
160#define class_def_type 1086
161#define class_def_raw_type 1087
162#define block_type 1088
163#define star_expressions_type 1089
164#define star_expression_type 1090
165#define star_named_expressions_type 1091
166#define star_named_expression_type 1092
167#define named_expression_type 1093
Pablo Galindod9151cb2021-04-13 02:32:33 +0100168#define direct_named_expression_type 1094
169#define annotated_rhs_type 1095
170#define expressions_type 1096
171#define expression_type 1097
172#define lambdef_type 1098
173#define lambda_params_type 1099
174#define lambda_parameters_type 1100
175#define lambda_slash_no_default_type 1101
176#define lambda_slash_with_default_type 1102
177#define lambda_star_etc_type 1103
178#define lambda_kwds_type 1104
179#define lambda_param_no_default_type 1105
180#define lambda_param_with_default_type 1106
181#define lambda_param_maybe_default_type 1107
182#define lambda_param_type 1108
183#define disjunction_type 1109
184#define conjunction_type 1110
185#define inversion_type 1111
186#define comparison_type 1112
187#define compare_op_bitwise_or_pair_type 1113
188#define eq_bitwise_or_type 1114
189#define noteq_bitwise_or_type 1115
190#define lte_bitwise_or_type 1116
191#define lt_bitwise_or_type 1117
192#define gte_bitwise_or_type 1118
193#define gt_bitwise_or_type 1119
194#define notin_bitwise_or_type 1120
195#define in_bitwise_or_type 1121
196#define isnot_bitwise_or_type 1122
197#define is_bitwise_or_type 1123
198#define bitwise_or_type 1124 // Left-recursive
199#define bitwise_xor_type 1125 // Left-recursive
200#define bitwise_and_type 1126 // Left-recursive
201#define shift_expr_type 1127 // Left-recursive
202#define sum_type 1128 // Left-recursive
203#define term_type 1129 // Left-recursive
204#define factor_type 1130
205#define power_type 1131
206#define await_primary_type 1132
207#define primary_type 1133 // Left-recursive
208#define slices_type 1134
209#define slice_type 1135
210#define atom_type 1136
211#define strings_type 1137
212#define list_type 1138
213#define listcomp_type 1139
214#define tuple_type 1140
215#define group_type 1141
216#define genexp_type 1142
217#define set_type 1143
218#define setcomp_type 1144
219#define dict_type 1145
220#define dictcomp_type 1146
221#define double_starred_kvpairs_type 1147
222#define double_starred_kvpair_type 1148
223#define kvpair_type 1149
224#define for_if_clauses_type 1150
225#define for_if_clause_type 1151
226#define yield_expr_type 1152
227#define arguments_type 1153
228#define args_type 1154
229#define kwargs_type 1155
230#define starred_expression_type 1156
231#define kwarg_or_starred_type 1157
232#define kwarg_or_double_starred_type 1158
233#define star_targets_type 1159
234#define star_targets_list_seq_type 1160
235#define star_targets_tuple_seq_type 1161
236#define star_target_type 1162
237#define target_with_star_atom_type 1163
238#define star_atom_type 1164
239#define single_target_type 1165
240#define single_subscript_attribute_target_type 1166
241#define del_targets_type 1167
242#define del_target_type 1168
243#define del_t_atom_type 1169
244#define targets_type 1170
245#define target_type 1171
246#define t_primary_type 1172 // Left-recursive
247#define t_lookahead_type 1173
248#define t_atom_type 1174
249#define invalid_arguments_type 1175
250#define invalid_kwarg_type 1176
Pablo Galindob2802482021-04-15 21:38:45 +0100251#define invalid_expression_type 1177
252#define invalid_named_expression_type 1178
253#define invalid_assignment_type 1179
254#define invalid_ann_assign_target_type 1180
255#define invalid_del_stmt_type 1181
256#define invalid_block_type 1182
257#define invalid_primary_type 1183 // Left-recursive
258#define invalid_comprehension_type 1184
259#define invalid_dict_comprehension_type 1185
260#define invalid_parameters_type 1186
261#define invalid_parameters_helper_type 1187
262#define invalid_lambda_parameters_type 1188
263#define invalid_lambda_parameters_helper_type 1189
264#define invalid_star_etc_type 1190
265#define invalid_lambda_star_etc_type 1191
266#define invalid_double_type_comments_type 1192
267#define invalid_with_item_type 1193
268#define invalid_for_target_type 1194
269#define invalid_group_type 1195
270#define invalid_import_from_targets_type 1196
271#define invalid_with_stmt_type 1197
272#define invalid_except_block_type 1198
273#define invalid_match_stmt_type 1199
274#define invalid_case_block_type 1200
275#define invalid_if_stmt_type 1201
276#define invalid_elif_stmt_type 1202
277#define invalid_while_stmt_type 1203
278#define invalid_double_starred_kvpairs_type 1204
279#define invalid_kvpair_type 1205
280#define _loop0_1_type 1206
281#define _loop0_2_type 1207
282#define _loop0_4_type 1208
283#define _gather_3_type 1209
284#define _loop0_6_type 1210
285#define _gather_5_type 1211
286#define _loop0_8_type 1212
287#define _gather_7_type 1213
288#define _loop0_10_type 1214
289#define _gather_9_type 1215
290#define _loop1_11_type 1216
291#define _loop0_13_type 1217
292#define _gather_12_type 1218
293#define _tmp_14_type 1219
294#define _tmp_15_type 1220
295#define _tmp_16_type 1221
296#define _tmp_17_type 1222
297#define _tmp_18_type 1223
298#define _tmp_19_type 1224
299#define _tmp_20_type 1225
300#define _tmp_21_type 1226
301#define _loop1_22_type 1227
302#define _tmp_23_type 1228
303#define _tmp_24_type 1229
304#define _loop0_26_type 1230
305#define _gather_25_type 1231
306#define _loop0_28_type 1232
307#define _gather_27_type 1233
308#define _tmp_29_type 1234
309#define _tmp_30_type 1235
310#define _loop0_31_type 1236
311#define _loop1_32_type 1237
312#define _loop0_34_type 1238
313#define _gather_33_type 1239
314#define _tmp_35_type 1240
315#define _loop0_37_type 1241
316#define _gather_36_type 1242
317#define _tmp_38_type 1243
318#define _loop0_40_type 1244
319#define _gather_39_type 1245
320#define _loop0_42_type 1246
321#define _gather_41_type 1247
322#define _loop0_44_type 1248
323#define _gather_43_type 1249
324#define _loop0_46_type 1250
325#define _gather_45_type 1251
326#define _tmp_47_type 1252
327#define _loop1_48_type 1253
328#define _tmp_49_type 1254
329#define _loop1_50_type 1255
330#define _loop0_52_type 1256
331#define _gather_51_type 1257
332#define _tmp_53_type 1258
333#define _tmp_54_type 1259
334#define _tmp_55_type 1260
335#define _loop0_57_type 1261
336#define _gather_56_type 1262
337#define _tmp_58_type 1263
338#define _loop0_60_type 1264
339#define _gather_59_type 1265
340#define _tmp_61_type 1266
341#define _loop0_63_type 1267
342#define _gather_62_type 1268
343#define _loop0_65_type 1269
344#define _gather_64_type 1270
345#define _tmp_66_type 1271
346#define _tmp_67_type 1272
347#define _tmp_68_type 1273
348#define _tmp_69_type 1274
349#define _loop0_70_type 1275
350#define _loop0_71_type 1276
351#define _loop0_72_type 1277
352#define _loop1_73_type 1278
353#define _loop0_74_type 1279
354#define _loop1_75_type 1280
355#define _loop1_76_type 1281
356#define _loop1_77_type 1282
357#define _loop0_78_type 1283
358#define _loop1_79_type 1284
359#define _loop0_80_type 1285
360#define _loop1_81_type 1286
361#define _loop0_82_type 1287
362#define _loop1_83_type 1288
363#define _loop1_84_type 1289
364#define _tmp_85_type 1290
365#define _loop1_86_type 1291
366#define _loop0_88_type 1292
367#define _gather_87_type 1293
368#define _loop1_89_type 1294
369#define _loop0_90_type 1295
370#define _loop0_91_type 1296
371#define _loop0_92_type 1297
372#define _loop1_93_type 1298
373#define _loop0_94_type 1299
374#define _loop1_95_type 1300
375#define _loop1_96_type 1301
376#define _loop1_97_type 1302
377#define _loop0_98_type 1303
378#define _loop1_99_type 1304
379#define _loop0_100_type 1305
380#define _loop1_101_type 1306
381#define _loop0_102_type 1307
382#define _loop1_103_type 1308
383#define _loop1_104_type 1309
384#define _loop1_105_type 1310
385#define _loop1_106_type 1311
386#define _tmp_107_type 1312
387#define _loop0_109_type 1313
388#define _gather_108_type 1314
389#define _tmp_110_type 1315
390#define _tmp_111_type 1316
391#define _tmp_112_type 1317
392#define _tmp_113_type 1318
393#define _loop1_114_type 1319
394#define _tmp_115_type 1320
395#define _tmp_116_type 1321
396#define _loop0_118_type 1322
397#define _gather_117_type 1323
398#define _loop1_119_type 1324
399#define _loop0_120_type 1325
400#define _loop0_121_type 1326
401#define _loop0_123_type 1327
402#define _gather_122_type 1328
403#define _tmp_124_type 1329
404#define _loop0_126_type 1330
405#define _gather_125_type 1331
406#define _loop0_128_type 1332
407#define _gather_127_type 1333
408#define _loop0_130_type 1334
409#define _gather_129_type 1335
410#define _loop0_132_type 1336
411#define _gather_131_type 1337
412#define _loop0_133_type 1338
413#define _loop0_135_type 1339
414#define _gather_134_type 1340
415#define _loop1_136_type 1341
416#define _tmp_137_type 1342
417#define _loop0_139_type 1343
418#define _gather_138_type 1344
419#define _loop0_141_type 1345
420#define _gather_140_type 1346
421#define _tmp_142_type 1347
422#define _tmp_143_type 1348
423#define _tmp_144_type 1349
424#define _tmp_145_type 1350
425#define _tmp_146_type 1351
426#define _loop0_147_type 1352
427#define _loop0_148_type 1353
428#define _loop0_149_type 1354
429#define _tmp_150_type 1355
430#define _tmp_151_type 1356
431#define _tmp_152_type 1357
432#define _loop0_153_type 1358
433#define _loop1_154_type 1359
434#define _loop0_155_type 1360
435#define _loop1_156_type 1361
436#define _tmp_157_type 1362
437#define _tmp_158_type 1363
438#define _tmp_159_type 1364
439#define _loop0_161_type 1365
440#define _gather_160_type 1366
441#define _loop0_163_type 1367
442#define _gather_162_type 1368
443#define _tmp_164_type 1369
444#define _tmp_165_type 1370
445#define _loop0_167_type 1371
446#define _gather_166_type 1372
447#define _tmp_168_type 1373
448#define _tmp_169_type 1374
449#define _tmp_170_type 1375
450#define _tmp_171_type 1376
451#define _tmp_172_type 1377
452#define _tmp_173_type 1378
453#define _tmp_174_type 1379
454#define _tmp_175_type 1380
455#define _tmp_176_type 1381
456#define _tmp_177_type 1382
457#define _tmp_178_type 1383
458#define _tmp_179_type 1384
459#define _tmp_180_type 1385
460#define _tmp_181_type 1386
461#define _tmp_182_type 1387
462#define _tmp_183_type 1388
463#define _tmp_184_type 1389
464#define _tmp_185_type 1390
465#define _tmp_186_type 1391
466#define _tmp_187_type 1392
467#define _tmp_188_type 1393
468#define _tmp_189_type 1394
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100469
470static mod_ty file_rule(Parser *p);
471static mod_ty interactive_rule(Parser *p);
472static mod_ty eval_rule(Parser *p);
473static mod_ty func_type_rule(Parser *p);
474static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100475static asdl_expr_seq* type_expressions_rule(Parser *p);
476static asdl_stmt_seq* statements_rule(Parser *p);
477static asdl_stmt_seq* statement_rule(Parser *p);
478static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000479static asdl_stmt_seq* simple_stmts_rule(Parser *p);
480static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100481static stmt_ty compound_stmt_rule(Parser *p);
482static stmt_ty assignment_rule(Parser *p);
483static AugOperator* augassign_rule(Parser *p);
484static stmt_ty global_stmt_rule(Parser *p);
485static stmt_ty nonlocal_stmt_rule(Parser *p);
486static stmt_ty yield_stmt_rule(Parser *p);
487static stmt_ty assert_stmt_rule(Parser *p);
488static stmt_ty del_stmt_rule(Parser *p);
489static stmt_ty import_stmt_rule(Parser *p);
490static stmt_ty import_name_rule(Parser *p);
491static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100492static asdl_alias_seq* import_from_targets_rule(Parser *p);
493static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100494static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100495static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100496static alias_ty dotted_as_name_rule(Parser *p);
497static expr_ty dotted_name_rule(Parser *p);
498static stmt_ty if_stmt_rule(Parser *p);
499static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100500static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100501static stmt_ty while_stmt_rule(Parser *p);
502static stmt_ty for_stmt_rule(Parser *p);
503static stmt_ty with_stmt_rule(Parser *p);
504static withitem_ty with_item_rule(Parser *p);
505static stmt_ty try_stmt_rule(Parser *p);
506static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100507static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800508static stmt_ty match_stmt_rule(Parser *p);
509static expr_ty subject_expr_rule(Parser *p);
510static match_case_ty case_block_rule(Parser *p);
511static expr_ty guard_rule(Parser *p);
512static expr_ty patterns_rule(Parser *p);
513static expr_ty pattern_rule(Parser *p);
514static expr_ty as_pattern_rule(Parser *p);
515static expr_ty or_pattern_rule(Parser *p);
516static expr_ty closed_pattern_rule(Parser *p);
517static expr_ty literal_pattern_rule(Parser *p);
518static expr_ty signed_number_rule(Parser *p);
519static expr_ty capture_pattern_rule(Parser *p);
520static expr_ty wildcard_pattern_rule(Parser *p);
521static expr_ty value_pattern_rule(Parser *p);
522static expr_ty attr_rule(Parser *p);
523static expr_ty name_or_attr_rule(Parser *p);
524static expr_ty group_pattern_rule(Parser *p);
525static expr_ty sequence_pattern_rule(Parser *p);
526static asdl_seq* open_sequence_pattern_rule(Parser *p);
527static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
528static expr_ty maybe_star_pattern_rule(Parser *p);
529static expr_ty star_pattern_rule(Parser *p);
530static expr_ty mapping_pattern_rule(Parser *p);
531static asdl_seq* items_pattern_rule(Parser *p);
532static KeyValuePair* key_value_pattern_rule(Parser *p);
533static KeyValuePair* double_star_pattern_rule(Parser *p);
534static expr_ty class_pattern_rule(Parser *p);
535static asdl_expr_seq* positional_patterns_rule(Parser *p);
536static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
537static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100538static stmt_ty return_stmt_rule(Parser *p);
539static stmt_ty raise_stmt_rule(Parser *p);
540static stmt_ty function_def_rule(Parser *p);
541static stmt_ty function_def_raw_rule(Parser *p);
542static Token* func_type_comment_rule(Parser *p);
543static arguments_ty params_rule(Parser *p);
544static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100545static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100546static SlashWithDefault* slash_with_default_rule(Parser *p);
547static StarEtc* star_etc_rule(Parser *p);
548static arg_ty kwds_rule(Parser *p);
549static arg_ty param_no_default_rule(Parser *p);
550static NameDefaultPair* param_with_default_rule(Parser *p);
551static NameDefaultPair* param_maybe_default_rule(Parser *p);
552static arg_ty param_rule(Parser *p);
553static expr_ty annotation_rule(Parser *p);
554static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100555static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100556static stmt_ty class_def_rule(Parser *p);
557static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100558static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100559static expr_ty star_expressions_rule(Parser *p);
560static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100561static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100562static expr_ty star_named_expression_rule(Parser *p);
563static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100564static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100565static expr_ty annotated_rhs_rule(Parser *p);
566static expr_ty expressions_rule(Parser *p);
567static expr_ty expression_rule(Parser *p);
568static expr_ty lambdef_rule(Parser *p);
569static arguments_ty lambda_params_rule(Parser *p);
570static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100571static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100572static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
573static StarEtc* lambda_star_etc_rule(Parser *p);
574static arg_ty lambda_kwds_rule(Parser *p);
575static arg_ty lambda_param_no_default_rule(Parser *p);
576static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
577static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
578static arg_ty lambda_param_rule(Parser *p);
579static expr_ty disjunction_rule(Parser *p);
580static expr_ty conjunction_rule(Parser *p);
581static expr_ty inversion_rule(Parser *p);
582static expr_ty comparison_rule(Parser *p);
583static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
584static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
585static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
586static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
587static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
588static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
589static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
590static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
591static CmpopExprPair* in_bitwise_or_rule(Parser *p);
592static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
593static CmpopExprPair* is_bitwise_or_rule(Parser *p);
594static expr_ty bitwise_or_rule(Parser *p);
595static expr_ty bitwise_xor_rule(Parser *p);
596static expr_ty bitwise_and_rule(Parser *p);
597static expr_ty shift_expr_rule(Parser *p);
598static expr_ty sum_rule(Parser *p);
599static expr_ty term_rule(Parser *p);
600static expr_ty factor_rule(Parser *p);
601static expr_ty power_rule(Parser *p);
602static expr_ty await_primary_rule(Parser *p);
603static expr_ty primary_rule(Parser *p);
604static expr_ty slices_rule(Parser *p);
605static expr_ty slice_rule(Parser *p);
606static expr_ty atom_rule(Parser *p);
607static expr_ty strings_rule(Parser *p);
608static expr_ty list_rule(Parser *p);
609static expr_ty listcomp_rule(Parser *p);
610static expr_ty tuple_rule(Parser *p);
611static expr_ty group_rule(Parser *p);
612static expr_ty genexp_rule(Parser *p);
613static expr_ty set_rule(Parser *p);
614static expr_ty setcomp_rule(Parser *p);
615static expr_ty dict_rule(Parser *p);
616static expr_ty dictcomp_rule(Parser *p);
617static asdl_seq* double_starred_kvpairs_rule(Parser *p);
618static KeyValuePair* double_starred_kvpair_rule(Parser *p);
619static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100620static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100621static comprehension_ty for_if_clause_rule(Parser *p);
622static expr_ty yield_expr_rule(Parser *p);
623static expr_ty arguments_rule(Parser *p);
624static expr_ty args_rule(Parser *p);
625static asdl_seq* kwargs_rule(Parser *p);
626static expr_ty starred_expression_rule(Parser *p);
627static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
628static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
629static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200630static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
631static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100632static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200633static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100634static expr_ty star_atom_rule(Parser *p);
635static expr_ty single_target_rule(Parser *p);
636static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100637static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100638static expr_ty del_target_rule(Parser *p);
639static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100640static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100641static expr_ty target_rule(Parser *p);
642static expr_ty t_primary_rule(Parser *p);
643static void *t_lookahead_rule(Parser *p);
644static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200645static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100646static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100647static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100648static void *invalid_named_expression_rule(Parser *p);
649static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300650static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300651static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100652static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200653static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static void *invalid_comprehension_rule(Parser *p);
655static void *invalid_dict_comprehension_rule(Parser *p);
656static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200657static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100658static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200659static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100660static void *invalid_star_etc_rule(Parser *p);
661static void *invalid_lambda_star_etc_rule(Parser *p);
662static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300663static void *invalid_with_item_rule(Parser *p);
664static void *invalid_for_target_rule(Parser *p);
665static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100666static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000667static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000668static void *invalid_except_block_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000669static void *invalid_match_stmt_rule(Parser *p);
670static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100671static void *invalid_if_stmt_rule(Parser *p);
672static void *invalid_elif_stmt_rule(Parser *p);
673static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100674static void *invalid_double_starred_kvpairs_rule(Parser *p);
675static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static asdl_seq *_loop0_1_rule(Parser *p);
677static asdl_seq *_loop0_2_rule(Parser *p);
678static asdl_seq *_loop0_4_rule(Parser *p);
679static asdl_seq *_gather_3_rule(Parser *p);
680static asdl_seq *_loop0_6_rule(Parser *p);
681static asdl_seq *_gather_5_rule(Parser *p);
682static asdl_seq *_loop0_8_rule(Parser *p);
683static asdl_seq *_gather_7_rule(Parser *p);
684static asdl_seq *_loop0_10_rule(Parser *p);
685static asdl_seq *_gather_9_rule(Parser *p);
686static asdl_seq *_loop1_11_rule(Parser *p);
687static asdl_seq *_loop0_13_rule(Parser *p);
688static asdl_seq *_gather_12_rule(Parser *p);
689static void *_tmp_14_rule(Parser *p);
690static void *_tmp_15_rule(Parser *p);
691static void *_tmp_16_rule(Parser *p);
692static void *_tmp_17_rule(Parser *p);
693static void *_tmp_18_rule(Parser *p);
694static void *_tmp_19_rule(Parser *p);
695static void *_tmp_20_rule(Parser *p);
696static void *_tmp_21_rule(Parser *p);
697static asdl_seq *_loop1_22_rule(Parser *p);
698static void *_tmp_23_rule(Parser *p);
699static void *_tmp_24_rule(Parser *p);
700static asdl_seq *_loop0_26_rule(Parser *p);
701static asdl_seq *_gather_25_rule(Parser *p);
702static asdl_seq *_loop0_28_rule(Parser *p);
703static asdl_seq *_gather_27_rule(Parser *p);
704static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300705static void *_tmp_30_rule(Parser *p);
706static asdl_seq *_loop0_31_rule(Parser *p);
707static asdl_seq *_loop1_32_rule(Parser *p);
708static asdl_seq *_loop0_34_rule(Parser *p);
709static asdl_seq *_gather_33_rule(Parser *p);
710static void *_tmp_35_rule(Parser *p);
711static asdl_seq *_loop0_37_rule(Parser *p);
712static asdl_seq *_gather_36_rule(Parser *p);
713static void *_tmp_38_rule(Parser *p);
714static asdl_seq *_loop0_40_rule(Parser *p);
715static asdl_seq *_gather_39_rule(Parser *p);
716static asdl_seq *_loop0_42_rule(Parser *p);
717static asdl_seq *_gather_41_rule(Parser *p);
718static asdl_seq *_loop0_44_rule(Parser *p);
719static asdl_seq *_gather_43_rule(Parser *p);
720static asdl_seq *_loop0_46_rule(Parser *p);
721static asdl_seq *_gather_45_rule(Parser *p);
722static void *_tmp_47_rule(Parser *p);
723static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100724static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800725static asdl_seq *_loop1_50_rule(Parser *p);
726static asdl_seq *_loop0_52_rule(Parser *p);
727static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300728static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800729static void *_tmp_54_rule(Parser *p);
730static void *_tmp_55_rule(Parser *p);
731static asdl_seq *_loop0_57_rule(Parser *p);
732static asdl_seq *_gather_56_rule(Parser *p);
733static void *_tmp_58_rule(Parser *p);
734static asdl_seq *_loop0_60_rule(Parser *p);
735static asdl_seq *_gather_59_rule(Parser *p);
736static void *_tmp_61_rule(Parser *p);
737static asdl_seq *_loop0_63_rule(Parser *p);
738static asdl_seq *_gather_62_rule(Parser *p);
739static asdl_seq *_loop0_65_rule(Parser *p);
740static asdl_seq *_gather_64_rule(Parser *p);
741static void *_tmp_66_rule(Parser *p);
742static void *_tmp_67_rule(Parser *p);
743static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300744static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800745static asdl_seq *_loop0_70_rule(Parser *p);
746static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000747static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000748static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300749static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800750static asdl_seq *_loop1_75_rule(Parser *p);
751static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000752static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300753static asdl_seq *_loop0_78_rule(Parser *p);
754static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800755static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100756static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000757static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300758static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800759static asdl_seq *_loop1_84_rule(Parser *p);
760static void *_tmp_85_rule(Parser *p);
761static asdl_seq *_loop1_86_rule(Parser *p);
762static asdl_seq *_loop0_88_rule(Parser *p);
763static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800765static asdl_seq *_loop0_90_rule(Parser *p);
766static asdl_seq *_loop0_91_rule(Parser *p);
767static asdl_seq *_loop0_92_rule(Parser *p);
768static asdl_seq *_loop1_93_rule(Parser *p);
769static asdl_seq *_loop0_94_rule(Parser *p);
770static asdl_seq *_loop1_95_rule(Parser *p);
771static asdl_seq *_loop1_96_rule(Parser *p);
772static asdl_seq *_loop1_97_rule(Parser *p);
773static asdl_seq *_loop0_98_rule(Parser *p);
774static asdl_seq *_loop1_99_rule(Parser *p);
775static asdl_seq *_loop0_100_rule(Parser *p);
776static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000777static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000778static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800779static asdl_seq *_loop1_104_rule(Parser *p);
780static asdl_seq *_loop1_105_rule(Parser *p);
781static asdl_seq *_loop1_106_rule(Parser *p);
782static void *_tmp_107_rule(Parser *p);
783static asdl_seq *_loop0_109_rule(Parser *p);
784static asdl_seq *_gather_108_rule(Parser *p);
785static void *_tmp_110_rule(Parser *p);
786static void *_tmp_111_rule(Parser *p);
787static void *_tmp_112_rule(Parser *p);
788static void *_tmp_113_rule(Parser *p);
789static asdl_seq *_loop1_114_rule(Parser *p);
790static void *_tmp_115_rule(Parser *p);
791static void *_tmp_116_rule(Parser *p);
792static asdl_seq *_loop0_118_rule(Parser *p);
793static asdl_seq *_gather_117_rule(Parser *p);
794static asdl_seq *_loop1_119_rule(Parser *p);
795static asdl_seq *_loop0_120_rule(Parser *p);
796static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200797static asdl_seq *_loop0_123_rule(Parser *p);
798static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800799static void *_tmp_124_rule(Parser *p);
800static asdl_seq *_loop0_126_rule(Parser *p);
801static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300802static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800803static asdl_seq *_gather_127_rule(Parser *p);
804static asdl_seq *_loop0_130_rule(Parser *p);
805static asdl_seq *_gather_129_rule(Parser *p);
806static asdl_seq *_loop0_132_rule(Parser *p);
807static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000808static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000809static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800810static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000811static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100812static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800813static asdl_seq *_loop0_139_rule(Parser *p);
814static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000815static asdl_seq *_loop0_141_rule(Parser *p);
816static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800817static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100818static void *_tmp_143_rule(Parser *p);
819static void *_tmp_144_rule(Parser *p);
820static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100821static void *_tmp_146_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100822static asdl_seq *_loop0_147_rule(Parser *p);
823static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100824static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100825static void *_tmp_150_rule(Parser *p);
826static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100827static void *_tmp_152_rule(Parser *p);
828static asdl_seq *_loop0_153_rule(Parser *p);
829static asdl_seq *_loop1_154_rule(Parser *p);
830static asdl_seq *_loop0_155_rule(Parser *p);
831static asdl_seq *_loop1_156_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100832static void *_tmp_157_rule(Parser *p);
833static void *_tmp_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100834static void *_tmp_159_rule(Parser *p);
835static asdl_seq *_loop0_161_rule(Parser *p);
836static asdl_seq *_gather_160_rule(Parser *p);
837static asdl_seq *_loop0_163_rule(Parser *p);
838static asdl_seq *_gather_162_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000839static void *_tmp_164_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100840static void *_tmp_165_rule(Parser *p);
841static asdl_seq *_loop0_167_rule(Parser *p);
842static asdl_seq *_gather_166_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800843static void *_tmp_168_rule(Parser *p);
844static void *_tmp_169_rule(Parser *p);
845static void *_tmp_170_rule(Parser *p);
846static void *_tmp_171_rule(Parser *p);
847static void *_tmp_172_rule(Parser *p);
848static void *_tmp_173_rule(Parser *p);
849static void *_tmp_174_rule(Parser *p);
850static void *_tmp_175_rule(Parser *p);
851static void *_tmp_176_rule(Parser *p);
852static void *_tmp_177_rule(Parser *p);
853static void *_tmp_178_rule(Parser *p);
854static void *_tmp_179_rule(Parser *p);
855static void *_tmp_180_rule(Parser *p);
856static void *_tmp_181_rule(Parser *p);
857static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100858static void *_tmp_183_rule(Parser *p);
859static void *_tmp_184_rule(Parser *p);
860static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100861static void *_tmp_186_rule(Parser *p);
862static void *_tmp_187_rule(Parser *p);
863static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100864static void *_tmp_189_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000865
866
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100867// file: statements? $
868static mod_ty
869file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000870{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100871 D(p->level++);
872 if (p->error_indicator) {
873 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000874 return NULL;
875 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100876 mod_ty _res = NULL;
877 int _mark = p->mark;
878 { // statements? $
879 if (p->error_indicator) {
880 D(p->level--);
881 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100883 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
884 void *a;
885 Token * endmarker_var;
886 if (
887 (a = statements_rule(p), 1) // statements?
888 &&
889 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
890 )
891 {
892 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
893 _res = _PyPegen_make_module ( p , a );
894 if (_res == NULL && PyErr_Occurred()) {
895 p->error_indicator = 1;
896 D(p->level--);
897 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000898 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100899 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000900 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100901 p->mark = _mark;
902 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000904 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100905 _res = NULL;
906 done:
907 D(p->level--);
908 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000909}
910
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100911// interactive: statement_newline
912static mod_ty
913interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000914{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100915 D(p->level++);
916 if (p->error_indicator) {
917 D(p->level--);
918 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000919 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100920 mod_ty _res = NULL;
921 int _mark = p->mark;
922 { // statement_newline
923 if (p->error_indicator) {
924 D(p->level--);
925 return NULL;
926 }
927 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100928 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100929 if (
930 (a = statement_newline_rule(p)) // statement_newline
931 )
932 {
933 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200934 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100935 if (_res == NULL && PyErr_Occurred()) {
936 p->error_indicator = 1;
937 D(p->level--);
938 return NULL;
939 }
940 goto done;
941 }
942 p->mark = _mark;
943 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
945 }
946 _res = NULL;
947 done:
948 D(p->level--);
949 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000950}
951
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100952// eval: expressions NEWLINE* $
953static mod_ty
954eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000955{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100956 D(p->level++);
957 if (p->error_indicator) {
958 D(p->level--);
959 return NULL;
960 }
961 mod_ty _res = NULL;
962 int _mark = p->mark;
963 { // expressions NEWLINE* $
964 if (p->error_indicator) {
965 D(p->level--);
966 return NULL;
967 }
968 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
969 asdl_seq * _loop0_1_var;
970 expr_ty a;
971 Token * endmarker_var;
972 if (
973 (a = expressions_rule(p)) // expressions
974 &&
975 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
976 &&
977 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
978 )
979 {
980 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200981 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100982 if (_res == NULL && PyErr_Occurred()) {
983 p->error_indicator = 1;
984 D(p->level--);
985 return NULL;
986 }
987 goto done;
988 }
989 p->mark = _mark;
990 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
992 }
993 _res = NULL;
994 done:
995 D(p->level--);
996 return _res;
997}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000998
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100999// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1000static mod_ty
1001func_type_rule(Parser *p)
1002{
1003 D(p->level++);
1004 if (p->error_indicator) {
1005 D(p->level--);
1006 return NULL;
1007 }
1008 mod_ty _res = NULL;
1009 int _mark = p->mark;
1010 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1011 if (p->error_indicator) {
1012 D(p->level--);
1013 return NULL;
1014 }
1015 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1016 Token * _literal;
1017 Token * _literal_1;
1018 Token * _literal_2;
1019 asdl_seq * _loop0_2_var;
1020 void *a;
1021 expr_ty b;
1022 Token * endmarker_var;
1023 if (
1024 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1025 &&
1026 (a = type_expressions_rule(p), 1) // type_expressions?
1027 &&
1028 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1029 &&
1030 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1031 &&
1032 (b = expression_rule(p)) // expression
1033 &&
1034 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1035 &&
1036 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1037 )
1038 {
1039 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 +02001040 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001041 if (_res == NULL && PyErr_Occurred()) {
1042 p->error_indicator = 1;
1043 D(p->level--);
1044 return NULL;
1045 }
1046 goto done;
1047 }
1048 p->mark = _mark;
1049 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1051 }
1052 _res = NULL;
1053 done:
1054 D(p->level--);
1055 return _res;
1056}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001057
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001058// fstring: star_expressions
1059static expr_ty
1060fstring_rule(Parser *p)
1061{
1062 D(p->level++);
1063 if (p->error_indicator) {
1064 D(p->level--);
1065 return NULL;
1066 }
1067 expr_ty _res = NULL;
1068 int _mark = p->mark;
1069 { // star_expressions
1070 if (p->error_indicator) {
1071 D(p->level--);
1072 return NULL;
1073 }
1074 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1075 expr_ty star_expressions_var;
1076 if (
1077 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1078 )
1079 {
1080 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1081 _res = star_expressions_var;
1082 goto done;
1083 }
1084 p->mark = _mark;
1085 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1087 }
1088 _res = NULL;
1089 done:
1090 D(p->level--);
1091 return _res;
1092}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001093
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001094// type_expressions:
1095// | ','.expression+ ',' '*' expression ',' '**' expression
1096// | ','.expression+ ',' '*' expression
1097// | ','.expression+ ',' '**' expression
1098// | '*' expression ',' '**' expression
1099// | '*' expression
1100// | '**' expression
1101// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001102static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001103type_expressions_rule(Parser *p)
1104{
1105 D(p->level++);
1106 if (p->error_indicator) {
1107 D(p->level--);
1108 return NULL;
1109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001110 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001111 int _mark = p->mark;
1112 { // ','.expression+ ',' '*' expression ',' '**' expression
1113 if (p->error_indicator) {
1114 D(p->level--);
1115 return NULL;
1116 }
1117 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1118 Token * _literal;
1119 Token * _literal_1;
1120 Token * _literal_2;
1121 Token * _literal_3;
1122 asdl_seq * a;
1123 expr_ty b;
1124 expr_ty c;
1125 if (
1126 (a = _gather_3_rule(p)) // ','.expression+
1127 &&
1128 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1129 &&
1130 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1131 &&
1132 (b = expression_rule(p)) // expression
1133 &&
1134 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1135 &&
1136 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1137 &&
1138 (c = expression_rule(p)) // expression
1139 )
1140 {
1141 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 +03001142 _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 +01001143 if (_res == NULL && PyErr_Occurred()) {
1144 p->error_indicator = 1;
1145 D(p->level--);
1146 return NULL;
1147 }
1148 goto done;
1149 }
1150 p->mark = _mark;
1151 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1153 }
1154 { // ','.expression+ ',' '*' expression
1155 if (p->error_indicator) {
1156 D(p->level--);
1157 return NULL;
1158 }
1159 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1160 Token * _literal;
1161 Token * _literal_1;
1162 asdl_seq * a;
1163 expr_ty b;
1164 if (
1165 (a = _gather_5_rule(p)) // ','.expression+
1166 &&
1167 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1168 &&
1169 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1170 &&
1171 (b = expression_rule(p)) // expression
1172 )
1173 {
1174 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 +01001175 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001176 if (_res == NULL && PyErr_Occurred()) {
1177 p->error_indicator = 1;
1178 D(p->level--);
1179 return NULL;
1180 }
1181 goto done;
1182 }
1183 p->mark = _mark;
1184 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1186 }
1187 { // ','.expression+ ',' '**' expression
1188 if (p->error_indicator) {
1189 D(p->level--);
1190 return NULL;
1191 }
1192 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1193 Token * _literal;
1194 Token * _literal_1;
1195 asdl_seq * a;
1196 expr_ty b;
1197 if (
1198 (a = _gather_7_rule(p)) // ','.expression+
1199 &&
1200 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1201 &&
1202 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1203 &&
1204 (b = expression_rule(p)) // expression
1205 )
1206 {
1207 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 +01001208 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001209 if (_res == NULL && PyErr_Occurred()) {
1210 p->error_indicator = 1;
1211 D(p->level--);
1212 return NULL;
1213 }
1214 goto done;
1215 }
1216 p->mark = _mark;
1217 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1219 }
1220 { // '*' expression ',' '**' expression
1221 if (p->error_indicator) {
1222 D(p->level--);
1223 return NULL;
1224 }
1225 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1226 Token * _literal;
1227 Token * _literal_1;
1228 Token * _literal_2;
1229 expr_ty a;
1230 expr_ty b;
1231 if (
1232 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1233 &&
1234 (a = expression_rule(p)) // expression
1235 &&
1236 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1237 &&
1238 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1239 &&
1240 (b = expression_rule(p)) // expression
1241 )
1242 {
1243 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 +03001244 _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 +01001245 if (_res == NULL && PyErr_Occurred()) {
1246 p->error_indicator = 1;
1247 D(p->level--);
1248 return NULL;
1249 }
1250 goto done;
1251 }
1252 p->mark = _mark;
1253 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1255 }
1256 { // '*' expression
1257 if (p->error_indicator) {
1258 D(p->level--);
1259 return NULL;
1260 }
1261 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1262 Token * _literal;
1263 expr_ty a;
1264 if (
1265 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1266 &&
1267 (a = expression_rule(p)) // expression
1268 )
1269 {
1270 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001271 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001272 if (_res == NULL && PyErr_Occurred()) {
1273 p->error_indicator = 1;
1274 D(p->level--);
1275 return NULL;
1276 }
1277 goto done;
1278 }
1279 p->mark = _mark;
1280 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1282 }
1283 { // '**' expression
1284 if (p->error_indicator) {
1285 D(p->level--);
1286 return NULL;
1287 }
1288 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1289 Token * _literal;
1290 expr_ty a;
1291 if (
1292 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1293 &&
1294 (a = expression_rule(p)) // expression
1295 )
1296 {
1297 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001298 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 if (_res == NULL && PyErr_Occurred()) {
1300 p->error_indicator = 1;
1301 D(p->level--);
1302 return NULL;
1303 }
1304 goto done;
1305 }
1306 p->mark = _mark;
1307 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1309 }
1310 { // ','.expression+
1311 if (p->error_indicator) {
1312 D(p->level--);
1313 return NULL;
1314 }
1315 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001316 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001317 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001318 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001319 )
1320 {
1321 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001322 _res = a;
1323 if (_res == NULL && PyErr_Occurred()) {
1324 p->error_indicator = 1;
1325 D(p->level--);
1326 return NULL;
1327 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001328 goto done;
1329 }
1330 p->mark = _mark;
1331 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1333 }
1334 _res = NULL;
1335 done:
1336 D(p->level--);
1337 return _res;
1338}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001339
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001340// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001341static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001342statements_rule(Parser *p)
1343{
1344 D(p->level++);
1345 if (p->error_indicator) {
1346 D(p->level--);
1347 return NULL;
1348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001349 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001350 int _mark = p->mark;
1351 { // statement+
1352 if (p->error_indicator) {
1353 D(p->level--);
1354 return NULL;
1355 }
1356 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1357 asdl_seq * a;
1358 if (
1359 (a = _loop1_11_rule(p)) // statement+
1360 )
1361 {
1362 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001363 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001364 if (_res == NULL && PyErr_Occurred()) {
1365 p->error_indicator = 1;
1366 D(p->level--);
1367 return NULL;
1368 }
1369 goto done;
1370 }
1371 p->mark = _mark;
1372 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1374 }
1375 _res = NULL;
1376 done:
1377 D(p->level--);
1378 return _res;
1379}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001380
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001381// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383statement_rule(Parser *p)
1384{
1385 D(p->level++);
1386 if (p->error_indicator) {
1387 D(p->level--);
1388 return NULL;
1389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001390 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001391 int _mark = p->mark;
1392 { // compound_stmt
1393 if (p->error_indicator) {
1394 D(p->level--);
1395 return NULL;
1396 }
1397 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1398 stmt_ty a;
1399 if (
1400 (a = compound_stmt_rule(p)) // compound_stmt
1401 )
1402 {
1403 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001404 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001405 if (_res == NULL && PyErr_Occurred()) {
1406 p->error_indicator = 1;
1407 D(p->level--);
1408 return NULL;
1409 }
1410 goto done;
1411 }
1412 p->mark = _mark;
1413 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1415 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001416 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001417 if (p->error_indicator) {
1418 D(p->level--);
1419 return NULL;
1420 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001421 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001422 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001423 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001424 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001425 )
1426 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001427 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001428 _res = a;
1429 if (_res == NULL && PyErr_Occurred()) {
1430 p->error_indicator = 1;
1431 D(p->level--);
1432 return NULL;
1433 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001434 goto done;
1435 }
1436 p->mark = _mark;
1437 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001439 }
1440 _res = NULL;
1441 done:
1442 D(p->level--);
1443 return _res;
1444}
1445
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001446// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001447static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001448statement_newline_rule(Parser *p)
1449{
1450 D(p->level++);
1451 if (p->error_indicator) {
1452 D(p->level--);
1453 return NULL;
1454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001455 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001456 int _mark = p->mark;
1457 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1458 p->error_indicator = 1;
1459 D(p->level--);
1460 return NULL;
1461 }
1462 int _start_lineno = p->tokens[_mark]->lineno;
1463 UNUSED(_start_lineno); // Only used by EXTRA macro
1464 int _start_col_offset = p->tokens[_mark]->col_offset;
1465 UNUSED(_start_col_offset); // Only used by EXTRA macro
1466 { // compound_stmt NEWLINE
1467 if (p->error_indicator) {
1468 D(p->level--);
1469 return NULL;
1470 }
1471 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1472 stmt_ty a;
1473 Token * newline_var;
1474 if (
1475 (a = compound_stmt_rule(p)) // compound_stmt
1476 &&
1477 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1478 )
1479 {
1480 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 +01001481 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001482 if (_res == NULL && PyErr_Occurred()) {
1483 p->error_indicator = 1;
1484 D(p->level--);
1485 return NULL;
1486 }
1487 goto done;
1488 }
1489 p->mark = _mark;
1490 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1492 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001493 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001494 if (p->error_indicator) {
1495 D(p->level--);
1496 return NULL;
1497 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1499 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001500 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001501 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001502 )
1503 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001504 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1505 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001506 goto done;
1507 }
1508 p->mark = _mark;
1509 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001511 }
1512 { // NEWLINE
1513 if (p->error_indicator) {
1514 D(p->level--);
1515 return NULL;
1516 }
1517 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1518 Token * newline_var;
1519 if (
1520 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1521 )
1522 {
1523 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1524 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1525 if (_token == NULL) {
1526 D(p->level--);
1527 return NULL;
1528 }
1529 int _end_lineno = _token->end_lineno;
1530 UNUSED(_end_lineno); // Only used by EXTRA macro
1531 int _end_col_offset = _token->end_col_offset;
1532 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001533 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001534 if (_res == NULL && PyErr_Occurred()) {
1535 p->error_indicator = 1;
1536 D(p->level--);
1537 return NULL;
1538 }
1539 goto done;
1540 }
1541 p->mark = _mark;
1542 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1544 }
1545 { // $
1546 if (p->error_indicator) {
1547 D(p->level--);
1548 return NULL;
1549 }
1550 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1551 Token * endmarker_var;
1552 if (
1553 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1554 )
1555 {
1556 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1557 _res = _PyPegen_interactive_exit ( p );
1558 if (_res == NULL && PyErr_Occurred()) {
1559 p->error_indicator = 1;
1560 D(p->level--);
1561 return NULL;
1562 }
1563 goto done;
1564 }
1565 p->mark = _mark;
1566 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1568 }
1569 _res = NULL;
1570 done:
1571 D(p->level--);
1572 return _res;
1573}
1574
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001575// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001576static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001577simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001578{
1579 D(p->level++);
1580 if (p->error_indicator) {
1581 D(p->level--);
1582 return NULL;
1583 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001584 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001585 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001586 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001587 if (p->error_indicator) {
1588 D(p->level--);
1589 return NULL;
1590 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001591 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 +01001592 stmt_ty a;
1593 Token * newline_var;
1594 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001595 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001596 &&
1597 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1598 &&
1599 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1600 )
1601 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001602 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 +01001603 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 if (_res == NULL && PyErr_Occurred()) {
1605 p->error_indicator = 1;
1606 D(p->level--);
1607 return NULL;
1608 }
1609 goto done;
1610 }
1611 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001612 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001614 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001615 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001616 if (p->error_indicator) {
1617 D(p->level--);
1618 return NULL;
1619 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001620 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 +01001621 void *_opt_var;
1622 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001623 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001624 Token * newline_var;
1625 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001626 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001627 &&
1628 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1629 &&
1630 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1631 )
1632 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001633 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 +01001634 _res = a;
1635 if (_res == NULL && PyErr_Occurred()) {
1636 p->error_indicator = 1;
1637 D(p->level--);
1638 return NULL;
1639 }
1640 goto done;
1641 }
1642 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001643 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001645 }
1646 _res = NULL;
1647 done:
1648 D(p->level--);
1649 return _res;
1650}
1651
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001652// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001653// | assignment
1654// | star_expressions
1655// | &'return' return_stmt
1656// | &('import' | 'from') import_stmt
1657// | &'raise' raise_stmt
1658// | 'pass'
1659// | &'del' del_stmt
1660// | &'yield' yield_stmt
1661// | &'assert' assert_stmt
1662// | 'break'
1663// | 'continue'
1664// | &'global' global_stmt
1665// | &'nonlocal' nonlocal_stmt
1666static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001667simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668{
1669 D(p->level++);
1670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
1674 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001675 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 D(p->level--);
1677 return _res;
1678 }
1679 int _mark = p->mark;
1680 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1681 p->error_indicator = 1;
1682 D(p->level--);
1683 return NULL;
1684 }
1685 int _start_lineno = p->tokens[_mark]->lineno;
1686 UNUSED(_start_lineno); // Only used by EXTRA macro
1687 int _start_col_offset = p->tokens[_mark]->col_offset;
1688 UNUSED(_start_col_offset); // Only used by EXTRA macro
1689 { // assignment
1690 if (p->error_indicator) {
1691 D(p->level--);
1692 return NULL;
1693 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001694 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001695 stmt_ty assignment_var;
1696 if (
1697 (assignment_var = assignment_rule(p)) // assignment
1698 )
1699 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001700 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001701 _res = assignment_var;
1702 goto done;
1703 }
1704 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001705 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1707 }
1708 { // star_expressions
1709 if (p->error_indicator) {
1710 D(p->level--);
1711 return NULL;
1712 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001713 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001714 expr_ty e;
1715 if (
1716 (e = star_expressions_rule(p)) // star_expressions
1717 )
1718 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001719 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 +01001720 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1721 if (_token == NULL) {
1722 D(p->level--);
1723 return NULL;
1724 }
1725 int _end_lineno = _token->end_lineno;
1726 UNUSED(_end_lineno); // Only used by EXTRA macro
1727 int _end_col_offset = _token->end_col_offset;
1728 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001729 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001730 if (_res == NULL && PyErr_Occurred()) {
1731 p->error_indicator = 1;
1732 D(p->level--);
1733 return NULL;
1734 }
1735 goto done;
1736 }
1737 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001738 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1740 }
1741 { // &'return' return_stmt
1742 if (p->error_indicator) {
1743 D(p->level--);
1744 return NULL;
1745 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001746 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 +01001747 stmt_ty return_stmt_var;
1748 if (
1749 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1750 &&
1751 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1752 )
1753 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 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 +01001755 _res = return_stmt_var;
1756 goto done;
1757 }
1758 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001759 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1761 }
1762 { // &('import' | 'from') import_stmt
1763 if (p->error_indicator) {
1764 D(p->level--);
1765 return NULL;
1766 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 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 +01001768 stmt_ty import_stmt_var;
1769 if (
1770 _PyPegen_lookahead(1, _tmp_14_rule, p)
1771 &&
1772 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1773 )
1774 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001775 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 +01001776 _res = import_stmt_var;
1777 goto done;
1778 }
1779 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001780 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1782 }
1783 { // &'raise' raise_stmt
1784 if (p->error_indicator) {
1785 D(p->level--);
1786 return NULL;
1787 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001788 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 +01001789 stmt_ty raise_stmt_var;
1790 if (
1791 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1792 &&
1793 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1794 )
1795 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001796 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 +01001797 _res = raise_stmt_var;
1798 goto done;
1799 }
1800 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001801 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1803 }
1804 { // 'pass'
1805 if (p->error_indicator) {
1806 D(p->level--);
1807 return NULL;
1808 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001809 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001810 Token * _keyword;
1811 if (
1812 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1813 )
1814 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001815 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1817 if (_token == NULL) {
1818 D(p->level--);
1819 return NULL;
1820 }
1821 int _end_lineno = _token->end_lineno;
1822 UNUSED(_end_lineno); // Only used by EXTRA macro
1823 int _end_col_offset = _token->end_col_offset;
1824 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001825 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001826 if (_res == NULL && PyErr_Occurred()) {
1827 p->error_indicator = 1;
1828 D(p->level--);
1829 return NULL;
1830 }
1831 goto done;
1832 }
1833 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1836 }
1837 { // &'del' del_stmt
1838 if (p->error_indicator) {
1839 D(p->level--);
1840 return NULL;
1841 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 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 +01001843 stmt_ty del_stmt_var;
1844 if (
1845 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1846 &&
1847 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1848 )
1849 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 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 +01001851 _res = del_stmt_var;
1852 goto done;
1853 }
1854 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1857 }
1858 { // &'yield' yield_stmt
1859 if (p->error_indicator) {
1860 D(p->level--);
1861 return NULL;
1862 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 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 +01001864 stmt_ty yield_stmt_var;
1865 if (
1866 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1867 &&
1868 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1869 )
1870 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001871 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 +01001872 _res = yield_stmt_var;
1873 goto done;
1874 }
1875 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001876 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1878 }
1879 { // &'assert' assert_stmt
1880 if (p->error_indicator) {
1881 D(p->level--);
1882 return NULL;
1883 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001884 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 +01001885 stmt_ty assert_stmt_var;
1886 if (
1887 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1888 &&
1889 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1890 )
1891 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001892 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 +01001893 _res = assert_stmt_var;
1894 goto done;
1895 }
1896 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001897 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1899 }
1900 { // 'break'
1901 if (p->error_indicator) {
1902 D(p->level--);
1903 return NULL;
1904 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001905 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001906 Token * _keyword;
1907 if (
1908 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1909 )
1910 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001911 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1913 if (_token == NULL) {
1914 D(p->level--);
1915 return NULL;
1916 }
1917 int _end_lineno = _token->end_lineno;
1918 UNUSED(_end_lineno); // Only used by EXTRA macro
1919 int _end_col_offset = _token->end_col_offset;
1920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001921 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001922 if (_res == NULL && PyErr_Occurred()) {
1923 p->error_indicator = 1;
1924 D(p->level--);
1925 return NULL;
1926 }
1927 goto done;
1928 }
1929 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001930 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1932 }
1933 { // 'continue'
1934 if (p->error_indicator) {
1935 D(p->level--);
1936 return NULL;
1937 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001938 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001939 Token * _keyword;
1940 if (
1941 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1942 )
1943 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001944 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1946 if (_token == NULL) {
1947 D(p->level--);
1948 return NULL;
1949 }
1950 int _end_lineno = _token->end_lineno;
1951 UNUSED(_end_lineno); // Only used by EXTRA macro
1952 int _end_col_offset = _token->end_col_offset;
1953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001954 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001955 if (_res == NULL && PyErr_Occurred()) {
1956 p->error_indicator = 1;
1957 D(p->level--);
1958 return NULL;
1959 }
1960 goto done;
1961 }
1962 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001963 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1965 }
1966 { // &'global' global_stmt
1967 if (p->error_indicator) {
1968 D(p->level--);
1969 return NULL;
1970 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001971 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 +01001972 stmt_ty global_stmt_var;
1973 if (
1974 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1975 &&
1976 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1977 )
1978 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001979 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 +01001980 _res = global_stmt_var;
1981 goto done;
1982 }
1983 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001984 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1986 }
1987 { // &'nonlocal' nonlocal_stmt
1988 if (p->error_indicator) {
1989 D(p->level--);
1990 return NULL;
1991 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 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 +01001993 stmt_ty nonlocal_stmt_var;
1994 if (
1995 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1996 &&
1997 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1998 )
1999 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002000 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 +01002001 _res = nonlocal_stmt_var;
2002 goto done;
2003 }
2004 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002005 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2007 }
2008 _res = NULL;
2009 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002010 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002011 D(p->level--);
2012 return _res;
2013}
2014
2015// compound_stmt:
2016// | &('def' | '@' | ASYNC) function_def
2017// | &'if' if_stmt
2018// | &('class' | '@') class_def
2019// | &('with' | ASYNC) with_stmt
2020// | &('for' | ASYNC) for_stmt
2021// | &'try' try_stmt
2022// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002023// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002024static stmt_ty
2025compound_stmt_rule(Parser *p)
2026{
2027 D(p->level++);
2028 if (p->error_indicator) {
2029 D(p->level--);
2030 return NULL;
2031 }
2032 stmt_ty _res = NULL;
2033 int _mark = p->mark;
2034 { // &('def' | '@' | ASYNC) function_def
2035 if (p->error_indicator) {
2036 D(p->level--);
2037 return NULL;
2038 }
2039 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2040 stmt_ty function_def_var;
2041 if (
2042 _PyPegen_lookahead(1, _tmp_15_rule, p)
2043 &&
2044 (function_def_var = function_def_rule(p)) // function_def
2045 )
2046 {
2047 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2048 _res = function_def_var;
2049 goto done;
2050 }
2051 p->mark = _mark;
2052 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2054 }
2055 { // &'if' if_stmt
2056 if (p->error_indicator) {
2057 D(p->level--);
2058 return NULL;
2059 }
2060 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2061 stmt_ty if_stmt_var;
2062 if (
2063 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2064 &&
2065 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2066 )
2067 {
2068 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2069 _res = if_stmt_var;
2070 goto done;
2071 }
2072 p->mark = _mark;
2073 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2075 }
2076 { // &('class' | '@') class_def
2077 if (p->error_indicator) {
2078 D(p->level--);
2079 return NULL;
2080 }
2081 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2082 stmt_ty class_def_var;
2083 if (
2084 _PyPegen_lookahead(1, _tmp_16_rule, p)
2085 &&
2086 (class_def_var = class_def_rule(p)) // class_def
2087 )
2088 {
2089 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2090 _res = class_def_var;
2091 goto done;
2092 }
2093 p->mark = _mark;
2094 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2096 }
2097 { // &('with' | ASYNC) with_stmt
2098 if (p->error_indicator) {
2099 D(p->level--);
2100 return NULL;
2101 }
2102 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2103 stmt_ty with_stmt_var;
2104 if (
2105 _PyPegen_lookahead(1, _tmp_17_rule, p)
2106 &&
2107 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2108 )
2109 {
2110 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2111 _res = with_stmt_var;
2112 goto done;
2113 }
2114 p->mark = _mark;
2115 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2117 }
2118 { // &('for' | ASYNC) for_stmt
2119 if (p->error_indicator) {
2120 D(p->level--);
2121 return NULL;
2122 }
2123 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2124 stmt_ty for_stmt_var;
2125 if (
2126 _PyPegen_lookahead(1, _tmp_18_rule, p)
2127 &&
2128 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2129 )
2130 {
2131 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2132 _res = for_stmt_var;
2133 goto done;
2134 }
2135 p->mark = _mark;
2136 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2138 }
2139 { // &'try' try_stmt
2140 if (p->error_indicator) {
2141 D(p->level--);
2142 return NULL;
2143 }
2144 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2145 stmt_ty try_stmt_var;
2146 if (
2147 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2148 &&
2149 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2150 )
2151 {
2152 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2153 _res = try_stmt_var;
2154 goto done;
2155 }
2156 p->mark = _mark;
2157 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2159 }
2160 { // &'while' while_stmt
2161 if (p->error_indicator) {
2162 D(p->level--);
2163 return NULL;
2164 }
2165 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2166 stmt_ty while_stmt_var;
2167 if (
2168 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2169 &&
2170 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2171 )
2172 {
2173 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2174 _res = while_stmt_var;
2175 goto done;
2176 }
2177 p->mark = _mark;
2178 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2180 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002181 { // match_stmt
2182 if (p->error_indicator) {
2183 D(p->level--);
2184 return NULL;
2185 }
2186 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2187 stmt_ty match_stmt_var;
2188 if (
2189 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2190 )
2191 {
2192 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2193 _res = match_stmt_var;
2194 goto done;
2195 }
2196 p->mark = _mark;
2197 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2199 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002200 _res = NULL;
2201 done:
2202 D(p->level--);
2203 return _res;
2204}
2205
2206// assignment:
2207// | NAME ':' expression ['=' annotated_rhs]
2208// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2209// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002210// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002211// | invalid_assignment
2212static stmt_ty
2213assignment_rule(Parser *p)
2214{
2215 D(p->level++);
2216 if (p->error_indicator) {
2217 D(p->level--);
2218 return NULL;
2219 }
2220 stmt_ty _res = NULL;
2221 int _mark = p->mark;
2222 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2223 p->error_indicator = 1;
2224 D(p->level--);
2225 return NULL;
2226 }
2227 int _start_lineno = p->tokens[_mark]->lineno;
2228 UNUSED(_start_lineno); // Only used by EXTRA macro
2229 int _start_col_offset = p->tokens[_mark]->col_offset;
2230 UNUSED(_start_col_offset); // Only used by EXTRA macro
2231 { // NAME ':' expression ['=' annotated_rhs]
2232 if (p->error_indicator) {
2233 D(p->level--);
2234 return NULL;
2235 }
2236 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2237 Token * _literal;
2238 expr_ty a;
2239 expr_ty b;
2240 void *c;
2241 if (
2242 (a = _PyPegen_name_token(p)) // NAME
2243 &&
2244 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2245 &&
2246 (b = expression_rule(p)) // expression
2247 &&
2248 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2249 )
2250 {
2251 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2252 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2253 if (_token == NULL) {
2254 D(p->level--);
2255 return NULL;
2256 }
2257 int _end_lineno = _token->end_lineno;
2258 UNUSED(_end_lineno); // Only used by EXTRA macro
2259 int _end_col_offset = _token->end_col_offset;
2260 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002261 _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 +01002262 if (_res == NULL && PyErr_Occurred()) {
2263 p->error_indicator = 1;
2264 D(p->level--);
2265 return NULL;
2266 }
2267 goto done;
2268 }
2269 p->mark = _mark;
2270 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2272 }
2273 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2274 if (p->error_indicator) {
2275 D(p->level--);
2276 return NULL;
2277 }
2278 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2279 Token * _literal;
2280 void *a;
2281 expr_ty b;
2282 void *c;
2283 if (
2284 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2285 &&
2286 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2287 &&
2288 (b = expression_rule(p)) // expression
2289 &&
2290 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2291 )
2292 {
2293 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2294 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2295 if (_token == NULL) {
2296 D(p->level--);
2297 return NULL;
2298 }
2299 int _end_lineno = _token->end_lineno;
2300 UNUSED(_end_lineno); // Only used by EXTRA macro
2301 int _end_col_offset = _token->end_col_offset;
2302 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002303 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002304 if (_res == NULL && PyErr_Occurred()) {
2305 p->error_indicator = 1;
2306 D(p->level--);
2307 return NULL;
2308 }
2309 goto done;
2310 }
2311 p->mark = _mark;
2312 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2314 }
2315 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2316 if (p->error_indicator) {
2317 D(p->level--);
2318 return NULL;
2319 }
2320 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 +01002321 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002322 void *b;
2323 void *tc;
2324 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002325 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002326 &&
2327 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2328 &&
2329 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2330 &&
2331 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2332 )
2333 {
2334 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2335 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2336 if (_token == NULL) {
2337 D(p->level--);
2338 return NULL;
2339 }
2340 int _end_lineno = _token->end_lineno;
2341 UNUSED(_end_lineno); // Only used by EXTRA macro
2342 int _end_col_offset = _token->end_col_offset;
2343 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002344 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002345 if (_res == NULL && PyErr_Occurred()) {
2346 p->error_indicator = 1;
2347 D(p->level--);
2348 return NULL;
2349 }
2350 goto done;
2351 }
2352 p->mark = _mark;
2353 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2355 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002356 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002357 if (p->error_indicator) {
2358 D(p->level--);
2359 return NULL;
2360 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002361 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2362 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002363 expr_ty a;
2364 AugOperator* b;
2365 void *c;
2366 if (
2367 (a = single_target_rule(p)) // single_target
2368 &&
2369 (b = augassign_rule(p)) // augassign
2370 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002371 (_cut_var = 1)
2372 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002373 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2374 )
2375 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002376 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 +01002377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2378 if (_token == NULL) {
2379 D(p->level--);
2380 return NULL;
2381 }
2382 int _end_lineno = _token->end_lineno;
2383 UNUSED(_end_lineno); // Only used by EXTRA macro
2384 int _end_col_offset = _token->end_col_offset;
2385 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002386 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002387 if (_res == NULL && PyErr_Occurred()) {
2388 p->error_indicator = 1;
2389 D(p->level--);
2390 return NULL;
2391 }
2392 goto done;
2393 }
2394 p->mark = _mark;
2395 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2397 if (_cut_var) {
2398 D(p->level--);
2399 return NULL;
2400 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002401 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002402 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002403 if (p->error_indicator) {
2404 D(p->level--);
2405 return NULL;
2406 }
2407 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2408 void *invalid_assignment_var;
2409 if (
2410 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2411 )
2412 {
2413 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2414 _res = invalid_assignment_var;
2415 goto done;
2416 }
2417 p->mark = _mark;
2418 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2420 }
2421 _res = NULL;
2422 done:
2423 D(p->level--);
2424 return _res;
2425}
2426
2427// augassign:
2428// | '+='
2429// | '-='
2430// | '*='
2431// | '@='
2432// | '/='
2433// | '%='
2434// | '&='
2435// | '|='
2436// | '^='
2437// | '<<='
2438// | '>>='
2439// | '**='
2440// | '//='
2441static AugOperator*
2442augassign_rule(Parser *p)
2443{
2444 D(p->level++);
2445 if (p->error_indicator) {
2446 D(p->level--);
2447 return NULL;
2448 }
2449 AugOperator* _res = NULL;
2450 int _mark = p->mark;
2451 { // '+='
2452 if (p->error_indicator) {
2453 D(p->level--);
2454 return NULL;
2455 }
2456 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2457 Token * _literal;
2458 if (
2459 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2460 )
2461 {
2462 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2463 _res = _PyPegen_augoperator ( p , Add );
2464 if (_res == NULL && PyErr_Occurred()) {
2465 p->error_indicator = 1;
2466 D(p->level--);
2467 return NULL;
2468 }
2469 goto done;
2470 }
2471 p->mark = _mark;
2472 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2474 }
2475 { // '-='
2476 if (p->error_indicator) {
2477 D(p->level--);
2478 return NULL;
2479 }
2480 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2481 Token * _literal;
2482 if (
2483 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2484 )
2485 {
2486 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2487 _res = _PyPegen_augoperator ( p , Sub );
2488 if (_res == NULL && PyErr_Occurred()) {
2489 p->error_indicator = 1;
2490 D(p->level--);
2491 return NULL;
2492 }
2493 goto done;
2494 }
2495 p->mark = _mark;
2496 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2498 }
2499 { // '*='
2500 if (p->error_indicator) {
2501 D(p->level--);
2502 return NULL;
2503 }
2504 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2505 Token * _literal;
2506 if (
2507 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2508 )
2509 {
2510 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2511 _res = _PyPegen_augoperator ( p , Mult );
2512 if (_res == NULL && PyErr_Occurred()) {
2513 p->error_indicator = 1;
2514 D(p->level--);
2515 return NULL;
2516 }
2517 goto done;
2518 }
2519 p->mark = _mark;
2520 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2522 }
2523 { // '@='
2524 if (p->error_indicator) {
2525 D(p->level--);
2526 return NULL;
2527 }
2528 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2529 Token * _literal;
2530 if (
2531 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2532 )
2533 {
2534 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002535 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002536 if (_res == NULL && PyErr_Occurred()) {
2537 p->error_indicator = 1;
2538 D(p->level--);
2539 return NULL;
2540 }
2541 goto done;
2542 }
2543 p->mark = _mark;
2544 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2546 }
2547 { // '/='
2548 if (p->error_indicator) {
2549 D(p->level--);
2550 return NULL;
2551 }
2552 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2553 Token * _literal;
2554 if (
2555 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2556 )
2557 {
2558 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2559 _res = _PyPegen_augoperator ( p , Div );
2560 if (_res == NULL && PyErr_Occurred()) {
2561 p->error_indicator = 1;
2562 D(p->level--);
2563 return NULL;
2564 }
2565 goto done;
2566 }
2567 p->mark = _mark;
2568 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2570 }
2571 { // '%='
2572 if (p->error_indicator) {
2573 D(p->level--);
2574 return NULL;
2575 }
2576 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2577 Token * _literal;
2578 if (
2579 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2580 )
2581 {
2582 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2583 _res = _PyPegen_augoperator ( p , Mod );
2584 if (_res == NULL && PyErr_Occurred()) {
2585 p->error_indicator = 1;
2586 D(p->level--);
2587 return NULL;
2588 }
2589 goto done;
2590 }
2591 p->mark = _mark;
2592 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2594 }
2595 { // '&='
2596 if (p->error_indicator) {
2597 D(p->level--);
2598 return NULL;
2599 }
2600 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2601 Token * _literal;
2602 if (
2603 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2604 )
2605 {
2606 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2607 _res = _PyPegen_augoperator ( p , BitAnd );
2608 if (_res == NULL && PyErr_Occurred()) {
2609 p->error_indicator = 1;
2610 D(p->level--);
2611 return NULL;
2612 }
2613 goto done;
2614 }
2615 p->mark = _mark;
2616 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2618 }
2619 { // '|='
2620 if (p->error_indicator) {
2621 D(p->level--);
2622 return NULL;
2623 }
2624 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2625 Token * _literal;
2626 if (
2627 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2628 )
2629 {
2630 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2631 _res = _PyPegen_augoperator ( p , BitOr );
2632 if (_res == NULL && PyErr_Occurred()) {
2633 p->error_indicator = 1;
2634 D(p->level--);
2635 return NULL;
2636 }
2637 goto done;
2638 }
2639 p->mark = _mark;
2640 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2642 }
2643 { // '^='
2644 if (p->error_indicator) {
2645 D(p->level--);
2646 return NULL;
2647 }
2648 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2649 Token * _literal;
2650 if (
2651 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2652 )
2653 {
2654 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2655 _res = _PyPegen_augoperator ( p , BitXor );
2656 if (_res == NULL && PyErr_Occurred()) {
2657 p->error_indicator = 1;
2658 D(p->level--);
2659 return NULL;
2660 }
2661 goto done;
2662 }
2663 p->mark = _mark;
2664 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2666 }
2667 { // '<<='
2668 if (p->error_indicator) {
2669 D(p->level--);
2670 return NULL;
2671 }
2672 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2673 Token * _literal;
2674 if (
2675 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2676 )
2677 {
2678 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2679 _res = _PyPegen_augoperator ( p , LShift );
2680 if (_res == NULL && PyErr_Occurred()) {
2681 p->error_indicator = 1;
2682 D(p->level--);
2683 return NULL;
2684 }
2685 goto done;
2686 }
2687 p->mark = _mark;
2688 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2690 }
2691 { // '>>='
2692 if (p->error_indicator) {
2693 D(p->level--);
2694 return NULL;
2695 }
2696 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2697 Token * _literal;
2698 if (
2699 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2700 )
2701 {
2702 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2703 _res = _PyPegen_augoperator ( p , RShift );
2704 if (_res == NULL && PyErr_Occurred()) {
2705 p->error_indicator = 1;
2706 D(p->level--);
2707 return NULL;
2708 }
2709 goto done;
2710 }
2711 p->mark = _mark;
2712 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2714 }
2715 { // '**='
2716 if (p->error_indicator) {
2717 D(p->level--);
2718 return NULL;
2719 }
2720 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2721 Token * _literal;
2722 if (
2723 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2724 )
2725 {
2726 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2727 _res = _PyPegen_augoperator ( p , Pow );
2728 if (_res == NULL && PyErr_Occurred()) {
2729 p->error_indicator = 1;
2730 D(p->level--);
2731 return NULL;
2732 }
2733 goto done;
2734 }
2735 p->mark = _mark;
2736 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2738 }
2739 { // '//='
2740 if (p->error_indicator) {
2741 D(p->level--);
2742 return NULL;
2743 }
2744 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2745 Token * _literal;
2746 if (
2747 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2748 )
2749 {
2750 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2751 _res = _PyPegen_augoperator ( p , FloorDiv );
2752 if (_res == NULL && PyErr_Occurred()) {
2753 p->error_indicator = 1;
2754 D(p->level--);
2755 return NULL;
2756 }
2757 goto done;
2758 }
2759 p->mark = _mark;
2760 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2762 }
2763 _res = NULL;
2764 done:
2765 D(p->level--);
2766 return _res;
2767}
2768
2769// global_stmt: 'global' ','.NAME+
2770static stmt_ty
2771global_stmt_rule(Parser *p)
2772{
2773 D(p->level++);
2774 if (p->error_indicator) {
2775 D(p->level--);
2776 return NULL;
2777 }
2778 stmt_ty _res = NULL;
2779 int _mark = p->mark;
2780 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 int _start_lineno = p->tokens[_mark]->lineno;
2786 UNUSED(_start_lineno); // Only used by EXTRA macro
2787 int _start_col_offset = p->tokens[_mark]->col_offset;
2788 UNUSED(_start_col_offset); // Only used by EXTRA macro
2789 { // 'global' ','.NAME+
2790 if (p->error_indicator) {
2791 D(p->level--);
2792 return NULL;
2793 }
2794 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2795 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002796 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002797 if (
2798 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2799 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002800 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002801 )
2802 {
2803 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2805 if (_token == NULL) {
2806 D(p->level--);
2807 return NULL;
2808 }
2809 int _end_lineno = _token->end_lineno;
2810 UNUSED(_end_lineno); // Only used by EXTRA macro
2811 int _end_col_offset = _token->end_col_offset;
2812 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002813 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002814 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 global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2824 }
2825 _res = NULL;
2826 done:
2827 D(p->level--);
2828 return _res;
2829}
2830
2831// nonlocal_stmt: 'nonlocal' ','.NAME+
2832static stmt_ty
2833nonlocal_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 { // 'nonlocal' ','.NAME+
2852 if (p->error_indicator) {
2853 D(p->level--);
2854 return NULL;
2855 }
2856 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.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, 509)) // token='nonlocal'
2861 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002862 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 )
2864 {
2865 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.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_Nonlocal ( 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 nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2886 }
2887 _res = NULL;
2888 done:
2889 D(p->level--);
2890 return _res;
2891}
2892
2893// yield_stmt: yield_expr
2894static stmt_ty
2895yield_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 { // yield_expr
2914 if (p->error_indicator) {
2915 D(p->level--);
2916 return NULL;
2917 }
2918 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2919 expr_ty y;
2920 if (
2921 (y = yield_expr_rule(p)) // yield_expr
2922 )
2923 {
2924 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2926 if (_token == NULL) {
2927 D(p->level--);
2928 return NULL;
2929 }
2930 int _end_lineno = _token->end_lineno;
2931 UNUSED(_end_lineno); // Only used by EXTRA macro
2932 int _end_col_offset = _token->end_col_offset;
2933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002934 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002935 if (_res == NULL && PyErr_Occurred()) {
2936 p->error_indicator = 1;
2937 D(p->level--);
2938 return NULL;
2939 }
2940 goto done;
2941 }
2942 p->mark = _mark;
2943 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2945 }
2946 _res = NULL;
2947 done:
2948 D(p->level--);
2949 return _res;
2950}
2951
2952// assert_stmt: 'assert' expression [',' expression]
2953static stmt_ty
2954assert_stmt_rule(Parser *p)
2955{
2956 D(p->level++);
2957 if (p->error_indicator) {
2958 D(p->level--);
2959 return NULL;
2960 }
2961 stmt_ty _res = NULL;
2962 int _mark = p->mark;
2963 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2964 p->error_indicator = 1;
2965 D(p->level--);
2966 return NULL;
2967 }
2968 int _start_lineno = p->tokens[_mark]->lineno;
2969 UNUSED(_start_lineno); // Only used by EXTRA macro
2970 int _start_col_offset = p->tokens[_mark]->col_offset;
2971 UNUSED(_start_col_offset); // Only used by EXTRA macro
2972 { // 'assert' expression [',' expression]
2973 if (p->error_indicator) {
2974 D(p->level--);
2975 return NULL;
2976 }
2977 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2978 Token * _keyword;
2979 expr_ty a;
2980 void *b;
2981 if (
2982 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2983 &&
2984 (a = expression_rule(p)) // expression
2985 &&
2986 (b = _tmp_29_rule(p), 1) // [',' expression]
2987 )
2988 {
2989 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2991 if (_token == NULL) {
2992 D(p->level--);
2993 return NULL;
2994 }
2995 int _end_lineno = _token->end_lineno;
2996 UNUSED(_end_lineno); // Only used by EXTRA macro
2997 int _end_col_offset = _token->end_col_offset;
2998 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002999 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003000 if (_res == NULL && PyErr_Occurred()) {
3001 p->error_indicator = 1;
3002 D(p->level--);
3003 return NULL;
3004 }
3005 goto done;
3006 }
3007 p->mark = _mark;
3008 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3010 }
3011 _res = NULL;
3012 done:
3013 D(p->level--);
3014 return _res;
3015}
3016
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003017// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003018static stmt_ty
3019del_stmt_rule(Parser *p)
3020{
3021 D(p->level++);
3022 if (p->error_indicator) {
3023 D(p->level--);
3024 return NULL;
3025 }
3026 stmt_ty _res = NULL;
3027 int _mark = p->mark;
3028 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3029 p->error_indicator = 1;
3030 D(p->level--);
3031 return NULL;
3032 }
3033 int _start_lineno = p->tokens[_mark]->lineno;
3034 UNUSED(_start_lineno); // Only used by EXTRA macro
3035 int _start_col_offset = p->tokens[_mark]->col_offset;
3036 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003037 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003038 if (p->error_indicator) {
3039 D(p->level--);
3040 return NULL;
3041 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003042 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 +01003043 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003044 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003045 if (
3046 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3047 &&
3048 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003049 &&
3050 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003051 )
3052 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003053 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 +01003054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3055 if (_token == NULL) {
3056 D(p->level--);
3057 return NULL;
3058 }
3059 int _end_lineno = _token->end_lineno;
3060 UNUSED(_end_lineno); // Only used by EXTRA macro
3061 int _end_col_offset = _token->end_col_offset;
3062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003063 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003064 if (_res == NULL && PyErr_Occurred()) {
3065 p->error_indicator = 1;
3066 D(p->level--);
3067 return NULL;
3068 }
3069 goto done;
3070 }
3071 p->mark = _mark;
3072 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3074 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003075 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003076 if (p->error_indicator) {
3077 D(p->level--);
3078 return NULL;
3079 }
3080 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3081 void *invalid_del_stmt_var;
3082 if (
3083 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3084 )
3085 {
3086 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3087 _res = invalid_del_stmt_var;
3088 goto done;
3089 }
3090 p->mark = _mark;
3091 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003093 }
3094 _res = NULL;
3095 done:
3096 D(p->level--);
3097 return _res;
3098}
3099
3100// import_stmt: import_name | import_from
3101static stmt_ty
3102import_stmt_rule(Parser *p)
3103{
3104 D(p->level++);
3105 if (p->error_indicator) {
3106 D(p->level--);
3107 return NULL;
3108 }
3109 stmt_ty _res = NULL;
3110 int _mark = p->mark;
3111 { // import_name
3112 if (p->error_indicator) {
3113 D(p->level--);
3114 return NULL;
3115 }
3116 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3117 stmt_ty import_name_var;
3118 if (
3119 (import_name_var = import_name_rule(p)) // import_name
3120 )
3121 {
3122 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3123 _res = import_name_var;
3124 goto done;
3125 }
3126 p->mark = _mark;
3127 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3129 }
3130 { // import_from
3131 if (p->error_indicator) {
3132 D(p->level--);
3133 return NULL;
3134 }
3135 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3136 stmt_ty import_from_var;
3137 if (
3138 (import_from_var = import_from_rule(p)) // import_from
3139 )
3140 {
3141 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3142 _res = import_from_var;
3143 goto done;
3144 }
3145 p->mark = _mark;
3146 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3148 }
3149 _res = NULL;
3150 done:
3151 D(p->level--);
3152 return _res;
3153}
3154
3155// import_name: 'import' dotted_as_names
3156static stmt_ty
3157import_name_rule(Parser *p)
3158{
3159 D(p->level++);
3160 if (p->error_indicator) {
3161 D(p->level--);
3162 return NULL;
3163 }
3164 stmt_ty _res = NULL;
3165 int _mark = p->mark;
3166 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3167 p->error_indicator = 1;
3168 D(p->level--);
3169 return NULL;
3170 }
3171 int _start_lineno = p->tokens[_mark]->lineno;
3172 UNUSED(_start_lineno); // Only used by EXTRA macro
3173 int _start_col_offset = p->tokens[_mark]->col_offset;
3174 UNUSED(_start_col_offset); // Only used by EXTRA macro
3175 { // 'import' dotted_as_names
3176 if (p->error_indicator) {
3177 D(p->level--);
3178 return NULL;
3179 }
3180 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3181 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003182 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003183 if (
3184 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3185 &&
3186 (a = dotted_as_names_rule(p)) // dotted_as_names
3187 )
3188 {
3189 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3190 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3191 if (_token == NULL) {
3192 D(p->level--);
3193 return NULL;
3194 }
3195 int _end_lineno = _token->end_lineno;
3196 UNUSED(_end_lineno); // Only used by EXTRA macro
3197 int _end_col_offset = _token->end_col_offset;
3198 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003199 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003200 if (_res == NULL && PyErr_Occurred()) {
3201 p->error_indicator = 1;
3202 D(p->level--);
3203 return NULL;
3204 }
3205 goto done;
3206 }
3207 p->mark = _mark;
3208 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3210 }
3211 _res = NULL;
3212 done:
3213 D(p->level--);
3214 return _res;
3215}
3216
3217// import_from:
3218// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3219// | 'from' (('.' | '...'))+ 'import' import_from_targets
3220static stmt_ty
3221import_from_rule(Parser *p)
3222{
3223 D(p->level++);
3224 if (p->error_indicator) {
3225 D(p->level--);
3226 return NULL;
3227 }
3228 stmt_ty _res = NULL;
3229 int _mark = p->mark;
3230 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3231 p->error_indicator = 1;
3232 D(p->level--);
3233 return NULL;
3234 }
3235 int _start_lineno = p->tokens[_mark]->lineno;
3236 UNUSED(_start_lineno); // Only used by EXTRA macro
3237 int _start_col_offset = p->tokens[_mark]->col_offset;
3238 UNUSED(_start_col_offset); // Only used by EXTRA macro
3239 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3240 if (p->error_indicator) {
3241 D(p->level--);
3242 return NULL;
3243 }
3244 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3245 Token * _keyword;
3246 Token * _keyword_1;
3247 asdl_seq * a;
3248 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003249 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003250 if (
3251 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3252 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003253 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003254 &&
3255 (b = dotted_name_rule(p)) // dotted_name
3256 &&
3257 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3258 &&
3259 (c = import_from_targets_rule(p)) // import_from_targets
3260 )
3261 {
3262 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3263 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3264 if (_token == NULL) {
3265 D(p->level--);
3266 return NULL;
3267 }
3268 int _end_lineno = _token->end_lineno;
3269 UNUSED(_end_lineno); // Only used by EXTRA macro
3270 int _end_col_offset = _token->end_col_offset;
3271 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003272 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003273 if (_res == NULL && PyErr_Occurred()) {
3274 p->error_indicator = 1;
3275 D(p->level--);
3276 return NULL;
3277 }
3278 goto done;
3279 }
3280 p->mark = _mark;
3281 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3283 }
3284 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3285 if (p->error_indicator) {
3286 D(p->level--);
3287 return NULL;
3288 }
3289 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3290 Token * _keyword;
3291 Token * _keyword_1;
3292 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003293 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003294 if (
3295 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3296 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003297 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003298 &&
3299 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3300 &&
3301 (b = import_from_targets_rule(p)) // import_from_targets
3302 )
3303 {
3304 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3305 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3306 if (_token == NULL) {
3307 D(p->level--);
3308 return NULL;
3309 }
3310 int _end_lineno = _token->end_lineno;
3311 UNUSED(_end_lineno); // Only used by EXTRA macro
3312 int _end_col_offset = _token->end_col_offset;
3313 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003314 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003315 if (_res == NULL && PyErr_Occurred()) {
3316 p->error_indicator = 1;
3317 D(p->level--);
3318 return NULL;
3319 }
3320 goto done;
3321 }
3322 p->mark = _mark;
3323 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3325 }
3326 _res = NULL;
3327 done:
3328 D(p->level--);
3329 return _res;
3330}
3331
3332// import_from_targets:
3333// | '(' import_from_as_names ','? ')'
3334// | import_from_as_names !','
3335// | '*'
3336// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003337static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003338import_from_targets_rule(Parser *p)
3339{
3340 D(p->level++);
3341 if (p->error_indicator) {
3342 D(p->level--);
3343 return NULL;
3344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003345 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003346 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003347 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3348 p->error_indicator = 1;
3349 D(p->level--);
3350 return NULL;
3351 }
3352 int _start_lineno = p->tokens[_mark]->lineno;
3353 UNUSED(_start_lineno); // Only used by EXTRA macro
3354 int _start_col_offset = p->tokens[_mark]->col_offset;
3355 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003356 { // '(' import_from_as_names ','? ')'
3357 if (p->error_indicator) {
3358 D(p->level--);
3359 return NULL;
3360 }
3361 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3362 Token * _literal;
3363 Token * _literal_1;
3364 void *_opt_var;
3365 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003366 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003367 if (
3368 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3369 &&
3370 (a = import_from_as_names_rule(p)) // import_from_as_names
3371 &&
3372 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3373 &&
3374 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3375 )
3376 {
3377 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3378 _res = a;
3379 if (_res == NULL && PyErr_Occurred()) {
3380 p->error_indicator = 1;
3381 D(p->level--);
3382 return NULL;
3383 }
3384 goto done;
3385 }
3386 p->mark = _mark;
3387 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3389 }
3390 { // import_from_as_names !','
3391 if (p->error_indicator) {
3392 D(p->level--);
3393 return NULL;
3394 }
3395 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 +01003396 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003397 if (
3398 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3399 &&
3400 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3401 )
3402 {
3403 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3404 _res = import_from_as_names_var;
3405 goto done;
3406 }
3407 p->mark = _mark;
3408 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3410 }
3411 { // '*'
3412 if (p->error_indicator) {
3413 D(p->level--);
3414 return NULL;
3415 }
3416 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3417 Token * _literal;
3418 if (
3419 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3420 )
3421 {
3422 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3424 if (_token == NULL) {
3425 D(p->level--);
3426 return NULL;
3427 }
3428 int _end_lineno = _token->end_lineno;
3429 UNUSED(_end_lineno); // Only used by EXTRA macro
3430 int _end_col_offset = _token->end_col_offset;
3431 UNUSED(_end_col_offset); // Only used by EXTRA macro
3432 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003433 if (_res == NULL && PyErr_Occurred()) {
3434 p->error_indicator = 1;
3435 D(p->level--);
3436 return NULL;
3437 }
3438 goto done;
3439 }
3440 p->mark = _mark;
3441 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3443 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003444 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003445 if (p->error_indicator) {
3446 D(p->level--);
3447 return NULL;
3448 }
3449 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3450 void *invalid_import_from_targets_var;
3451 if (
3452 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3453 )
3454 {
3455 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3456 _res = invalid_import_from_targets_var;
3457 goto done;
3458 }
3459 p->mark = _mark;
3460 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3462 }
3463 _res = NULL;
3464 done:
3465 D(p->level--);
3466 return _res;
3467}
3468
3469// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003470static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003471import_from_as_names_rule(Parser *p)
3472{
3473 D(p->level++);
3474 if (p->error_indicator) {
3475 D(p->level--);
3476 return NULL;
3477 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003478 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003479 int _mark = p->mark;
3480 { // ','.import_from_as_name+
3481 if (p->error_indicator) {
3482 D(p->level--);
3483 return NULL;
3484 }
3485 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 +01003486 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003487 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003488 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003489 )
3490 {
3491 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3492 _res = a;
3493 if (_res == NULL && PyErr_Occurred()) {
3494 p->error_indicator = 1;
3495 D(p->level--);
3496 return NULL;
3497 }
3498 goto done;
3499 }
3500 p->mark = _mark;
3501 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3503 }
3504 _res = NULL;
3505 done:
3506 D(p->level--);
3507 return _res;
3508}
3509
3510// import_from_as_name: NAME ['as' NAME]
3511static alias_ty
3512import_from_as_name_rule(Parser *p)
3513{
3514 D(p->level++);
3515 if (p->error_indicator) {
3516 D(p->level--);
3517 return NULL;
3518 }
3519 alias_ty _res = NULL;
3520 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003521 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3522 p->error_indicator = 1;
3523 D(p->level--);
3524 return NULL;
3525 }
3526 int _start_lineno = p->tokens[_mark]->lineno;
3527 UNUSED(_start_lineno); // Only used by EXTRA macro
3528 int _start_col_offset = p->tokens[_mark]->col_offset;
3529 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003530 { // NAME ['as' NAME]
3531 if (p->error_indicator) {
3532 D(p->level--);
3533 return NULL;
3534 }
3535 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3536 expr_ty a;
3537 void *b;
3538 if (
3539 (a = _PyPegen_name_token(p)) // NAME
3540 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003541 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003542 )
3543 {
3544 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 -04003545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3546 if (_token == NULL) {
3547 D(p->level--);
3548 return NULL;
3549 }
3550 int _end_lineno = _token->end_lineno;
3551 UNUSED(_end_lineno); // Only used by EXTRA macro
3552 int _end_col_offset = _token->end_col_offset;
3553 UNUSED(_end_col_offset); // Only used by EXTRA macro
3554 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003555 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_name[%d-%d]: %s failed!\n", p->level, ' ',
3564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3565 }
3566 _res = NULL;
3567 done:
3568 D(p->level--);
3569 return _res;
3570}
3571
3572// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003573static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003574dotted_as_names_rule(Parser *p)
3575{
3576 D(p->level++);
3577 if (p->error_indicator) {
3578 D(p->level--);
3579 return NULL;
3580 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003581 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 int _mark = p->mark;
3583 { // ','.dotted_as_name+
3584 if (p->error_indicator) {
3585 D(p->level--);
3586 return NULL;
3587 }
3588 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 +01003589 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003590 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003591 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003592 )
3593 {
3594 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3595 _res = a;
3596 if (_res == NULL && PyErr_Occurred()) {
3597 p->error_indicator = 1;
3598 D(p->level--);
3599 return NULL;
3600 }
3601 goto done;
3602 }
3603 p->mark = _mark;
3604 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3606 }
3607 _res = NULL;
3608 done:
3609 D(p->level--);
3610 return _res;
3611}
3612
3613// dotted_as_name: dotted_name ['as' NAME]
3614static alias_ty
3615dotted_as_name_rule(Parser *p)
3616{
3617 D(p->level++);
3618 if (p->error_indicator) {
3619 D(p->level--);
3620 return NULL;
3621 }
3622 alias_ty _res = NULL;
3623 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003624 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3625 p->error_indicator = 1;
3626 D(p->level--);
3627 return NULL;
3628 }
3629 int _start_lineno = p->tokens[_mark]->lineno;
3630 UNUSED(_start_lineno); // Only used by EXTRA macro
3631 int _start_col_offset = p->tokens[_mark]->col_offset;
3632 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003633 { // dotted_name ['as' NAME]
3634 if (p->error_indicator) {
3635 D(p->level--);
3636 return NULL;
3637 }
3638 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3639 expr_ty a;
3640 void *b;
3641 if (
3642 (a = dotted_name_rule(p)) // dotted_name
3643 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003644 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003645 )
3646 {
3647 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 -04003648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3649 if (_token == NULL) {
3650 D(p->level--);
3651 return NULL;
3652 }
3653 int _end_lineno = _token->end_lineno;
3654 UNUSED(_end_lineno); // Only used by EXTRA macro
3655 int _end_col_offset = _token->end_col_offset;
3656 UNUSED(_end_col_offset); // Only used by EXTRA macro
3657 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003658 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_name[%d-%d]: %s failed!\n", p->level, ' ',
3667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3668 }
3669 _res = NULL;
3670 done:
3671 D(p->level--);
3672 return _res;
3673}
3674
3675// Left-recursive
3676// dotted_name: dotted_name '.' NAME | NAME
3677static expr_ty dotted_name_raw(Parser *);
3678static expr_ty
3679dotted_name_rule(Parser *p)
3680{
3681 D(p->level++);
3682 expr_ty _res = NULL;
3683 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3684 D(p->level--);
3685 return _res;
3686 }
3687 int _mark = p->mark;
3688 int _resmark = p->mark;
3689 while (1) {
3690 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3691 if (tmpvar_0) {
3692 D(p->level--);
3693 return _res;
3694 }
3695 p->mark = _mark;
3696 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003697 if (p->error_indicator)
3698 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003699 if (_raw == NULL || p->mark <= _resmark)
3700 break;
3701 _resmark = p->mark;
3702 _res = _raw;
3703 }
3704 p->mark = _resmark;
3705 D(p->level--);
3706 return _res;
3707}
3708static expr_ty
3709dotted_name_raw(Parser *p)
3710{
3711 D(p->level++);
3712 if (p->error_indicator) {
3713 D(p->level--);
3714 return NULL;
3715 }
3716 expr_ty _res = NULL;
3717 int _mark = p->mark;
3718 { // dotted_name '.' NAME
3719 if (p->error_indicator) {
3720 D(p->level--);
3721 return NULL;
3722 }
3723 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3724 Token * _literal;
3725 expr_ty a;
3726 expr_ty b;
3727 if (
3728 (a = dotted_name_rule(p)) // dotted_name
3729 &&
3730 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3731 &&
3732 (b = _PyPegen_name_token(p)) // NAME
3733 )
3734 {
3735 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3736 _res = _PyPegen_join_names_with_dot ( p , a , b );
3737 if (_res == NULL && PyErr_Occurred()) {
3738 p->error_indicator = 1;
3739 D(p->level--);
3740 return NULL;
3741 }
3742 goto done;
3743 }
3744 p->mark = _mark;
3745 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3747 }
3748 { // NAME
3749 if (p->error_indicator) {
3750 D(p->level--);
3751 return NULL;
3752 }
3753 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3754 expr_ty name_var;
3755 if (
3756 (name_var = _PyPegen_name_token(p)) // NAME
3757 )
3758 {
3759 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3760 _res = name_var;
3761 goto done;
3762 }
3763 p->mark = _mark;
3764 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3766 }
3767 _res = NULL;
3768 done:
3769 D(p->level--);
3770 return _res;
3771}
3772
3773// if_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003774// | 'if' named_expression ':' block elif_stmt
3775// | 'if' named_expression ':' block else_block?
3776// | invalid_if_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003777static stmt_ty
3778if_stmt_rule(Parser *p)
3779{
3780 D(p->level++);
3781 if (p->error_indicator) {
3782 D(p->level--);
3783 return NULL;
3784 }
3785 stmt_ty _res = NULL;
3786 int _mark = p->mark;
3787 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3788 p->error_indicator = 1;
3789 D(p->level--);
3790 return NULL;
3791 }
3792 int _start_lineno = p->tokens[_mark]->lineno;
3793 UNUSED(_start_lineno); // Only used by EXTRA macro
3794 int _start_col_offset = p->tokens[_mark]->col_offset;
3795 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003796 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003797 if (p->error_indicator) {
3798 D(p->level--);
3799 return NULL;
3800 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003801 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 +01003802 Token * _keyword;
3803 Token * _literal;
3804 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003805 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003806 stmt_ty c;
3807 if (
3808 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3809 &&
3810 (a = named_expression_rule(p)) // named_expression
3811 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003812 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003813 &&
3814 (b = block_rule(p)) // block
3815 &&
3816 (c = elif_stmt_rule(p)) // elif_stmt
3817 )
3818 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003819 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 +01003820 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3821 if (_token == NULL) {
3822 D(p->level--);
3823 return NULL;
3824 }
3825 int _end_lineno = _token->end_lineno;
3826 UNUSED(_end_lineno); // Only used by EXTRA macro
3827 int _end_col_offset = _token->end_col_offset;
3828 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003829 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003830 if (_res == NULL && PyErr_Occurred()) {
3831 p->error_indicator = 1;
3832 D(p->level--);
3833 return NULL;
3834 }
3835 goto done;
3836 }
3837 p->mark = _mark;
3838 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003840 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003841 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003842 if (p->error_indicator) {
3843 D(p->level--);
3844 return NULL;
3845 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003846 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 +01003847 Token * _keyword;
3848 Token * _literal;
3849 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003850 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003851 void *c;
3852 if (
3853 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3854 &&
3855 (a = named_expression_rule(p)) // named_expression
3856 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003857 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003858 &&
3859 (b = block_rule(p)) // block
3860 &&
3861 (c = else_block_rule(p), 1) // else_block?
3862 )
3863 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003864 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 +01003865 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3866 if (_token == NULL) {
3867 D(p->level--);
3868 return NULL;
3869 }
3870 int _end_lineno = _token->end_lineno;
3871 UNUSED(_end_lineno); // Only used by EXTRA macro
3872 int _end_col_offset = _token->end_col_offset;
3873 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003874 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003875 if (_res == NULL && PyErr_Occurred()) {
3876 p->error_indicator = 1;
3877 D(p->level--);
3878 return NULL;
3879 }
3880 goto done;
3881 }
3882 p->mark = _mark;
3883 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3885 }
3886 if (p->call_invalid_rules) { // invalid_if_stmt
3887 if (p->error_indicator) {
3888 D(p->level--);
3889 return NULL;
3890 }
3891 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3892 void *invalid_if_stmt_var;
3893 if (
3894 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3895 )
3896 {
3897 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3898 _res = invalid_if_stmt_var;
3899 goto done;
3900 }
3901 p->mark = _mark;
3902 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003904 }
3905 _res = NULL;
3906 done:
3907 D(p->level--);
3908 return _res;
3909}
3910
3911// elif_stmt:
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003912// | 'elif' named_expression ':' block elif_stmt
3913// | 'elif' named_expression ':' block else_block?
3914// | invalid_elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915static stmt_ty
3916elif_stmt_rule(Parser *p)
3917{
3918 D(p->level++);
3919 if (p->error_indicator) {
3920 D(p->level--);
3921 return NULL;
3922 }
3923 stmt_ty _res = NULL;
3924 int _mark = p->mark;
3925 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3926 p->error_indicator = 1;
3927 D(p->level--);
3928 return NULL;
3929 }
3930 int _start_lineno = p->tokens[_mark]->lineno;
3931 UNUSED(_start_lineno); // Only used by EXTRA macro
3932 int _start_col_offset = p->tokens[_mark]->col_offset;
3933 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003934 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003935 if (p->error_indicator) {
3936 D(p->level--);
3937 return NULL;
3938 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003939 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 +01003940 Token * _keyword;
3941 Token * _literal;
3942 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003943 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003944 stmt_ty c;
3945 if (
3946 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3947 &&
3948 (a = named_expression_rule(p)) // named_expression
3949 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003950 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003951 &&
3952 (b = block_rule(p)) // block
3953 &&
3954 (c = elif_stmt_rule(p)) // elif_stmt
3955 )
3956 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003957 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 +01003958 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3959 if (_token == NULL) {
3960 D(p->level--);
3961 return NULL;
3962 }
3963 int _end_lineno = _token->end_lineno;
3964 UNUSED(_end_lineno); // Only used by EXTRA macro
3965 int _end_col_offset = _token->end_col_offset;
3966 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003967 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003968 if (_res == NULL && PyErr_Occurred()) {
3969 p->error_indicator = 1;
3970 D(p->level--);
3971 return NULL;
3972 }
3973 goto done;
3974 }
3975 p->mark = _mark;
3976 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003978 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003979 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003980 if (p->error_indicator) {
3981 D(p->level--);
3982 return NULL;
3983 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003984 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 +01003985 Token * _keyword;
3986 Token * _literal;
3987 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003988 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003989 void *c;
3990 if (
3991 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3992 &&
3993 (a = named_expression_rule(p)) // named_expression
3994 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003995 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003996 &&
3997 (b = block_rule(p)) // block
3998 &&
3999 (c = else_block_rule(p), 1) // else_block?
4000 )
4001 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004002 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 +01004003 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4004 if (_token == NULL) {
4005 D(p->level--);
4006 return NULL;
4007 }
4008 int _end_lineno = _token->end_lineno;
4009 UNUSED(_end_lineno); // Only used by EXTRA macro
4010 int _end_col_offset = _token->end_col_offset;
4011 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004012 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004013 if (_res == NULL && PyErr_Occurred()) {
4014 p->error_indicator = 1;
4015 D(p->level--);
4016 return NULL;
4017 }
4018 goto done;
4019 }
4020 p->mark = _mark;
4021 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4023 }
4024 if (p->call_invalid_rules) { // invalid_elif_stmt
4025 if (p->error_indicator) {
4026 D(p->level--);
4027 return NULL;
4028 }
4029 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4030 void *invalid_elif_stmt_var;
4031 if (
4032 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4033 )
4034 {
4035 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4036 _res = invalid_elif_stmt_var;
4037 goto done;
4038 }
4039 p->mark = _mark;
4040 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004042 }
4043 _res = NULL;
4044 done:
4045 D(p->level--);
4046 return _res;
4047}
4048
Pablo Galindo58fb1562021-02-02 19:54:22 +00004049// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004050static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051else_block_rule(Parser *p)
4052{
4053 D(p->level++);
4054 if (p->error_indicator) {
4055 D(p->level--);
4056 return NULL;
4057 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004058 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004059 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00004060 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004061 if (p->error_indicator) {
4062 D(p->level--);
4063 return NULL;
4064 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004065 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004066 Token * _keyword;
4067 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004068 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004069 if (
4070 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4071 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004072 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004073 &&
4074 (b = block_rule(p)) // block
4075 )
4076 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004077 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 +01004078 _res = b;
4079 if (_res == NULL && PyErr_Occurred()) {
4080 p->error_indicator = 1;
4081 D(p->level--);
4082 return NULL;
4083 }
4084 goto done;
4085 }
4086 p->mark = _mark;
4087 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004089 }
4090 _res = NULL;
4091 done:
4092 D(p->level--);
4093 return _res;
4094}
4095
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004096// while_stmt: 'while' named_expression ':' block else_block? | invalid_while_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097static stmt_ty
4098while_stmt_rule(Parser *p)
4099{
4100 D(p->level++);
4101 if (p->error_indicator) {
4102 D(p->level--);
4103 return NULL;
4104 }
4105 stmt_ty _res = NULL;
4106 int _mark = p->mark;
4107 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4108 p->error_indicator = 1;
4109 D(p->level--);
4110 return NULL;
4111 }
4112 int _start_lineno = p->tokens[_mark]->lineno;
4113 UNUSED(_start_lineno); // Only used by EXTRA macro
4114 int _start_col_offset = p->tokens[_mark]->col_offset;
4115 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004116 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004117 if (p->error_indicator) {
4118 D(p->level--);
4119 return NULL;
4120 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004121 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 +01004122 Token * _keyword;
4123 Token * _literal;
4124 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004125 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004126 void *c;
4127 if (
4128 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4129 &&
4130 (a = named_expression_rule(p)) // named_expression
4131 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004132 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004133 &&
4134 (b = block_rule(p)) // block
4135 &&
4136 (c = else_block_rule(p), 1) // else_block?
4137 )
4138 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004139 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 +01004140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4141 if (_token == NULL) {
4142 D(p->level--);
4143 return NULL;
4144 }
4145 int _end_lineno = _token->end_lineno;
4146 UNUSED(_end_lineno); // Only used by EXTRA macro
4147 int _end_col_offset = _token->end_col_offset;
4148 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004149 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 if (_res == NULL && PyErr_Occurred()) {
4151 p->error_indicator = 1;
4152 D(p->level--);
4153 return NULL;
4154 }
4155 goto done;
4156 }
4157 p->mark = _mark;
4158 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4160 }
4161 if (p->call_invalid_rules) { // invalid_while_stmt
4162 if (p->error_indicator) {
4163 D(p->level--);
4164 return NULL;
4165 }
4166 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4167 void *invalid_while_stmt_var;
4168 if (
4169 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4170 )
4171 {
4172 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4173 _res = invalid_while_stmt_var;
4174 goto done;
4175 }
4176 p->mark = _mark;
4177 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004179 }
4180 _res = NULL;
4181 done:
4182 D(p->level--);
4183 return _res;
4184}
4185
4186// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004187// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4188// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004189// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004190static stmt_ty
4191for_stmt_rule(Parser *p)
4192{
4193 D(p->level++);
4194 if (p->error_indicator) {
4195 D(p->level--);
4196 return NULL;
4197 }
4198 stmt_ty _res = NULL;
4199 int _mark = p->mark;
4200 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4201 p->error_indicator = 1;
4202 D(p->level--);
4203 return NULL;
4204 }
4205 int _start_lineno = p->tokens[_mark]->lineno;
4206 UNUSED(_start_lineno); // Only used by EXTRA macro
4207 int _start_col_offset = p->tokens[_mark]->col_offset;
4208 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004209 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004210 if (p->error_indicator) {
4211 D(p->level--);
4212 return NULL;
4213 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004214 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 +03004215 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004216 Token * _keyword;
4217 Token * _keyword_1;
4218 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004219 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004220 void *el;
4221 expr_ty ex;
4222 expr_ty t;
4223 void *tc;
4224 if (
4225 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4226 &&
4227 (t = star_targets_rule(p)) // star_targets
4228 &&
4229 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4230 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004231 (_cut_var = 1)
4232 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004233 (ex = star_expressions_rule(p)) // star_expressions
4234 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004235 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004236 &&
4237 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4238 &&
4239 (b = block_rule(p)) // block
4240 &&
4241 (el = else_block_rule(p), 1) // else_block?
4242 )
4243 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004244 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 +01004245 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4246 if (_token == NULL) {
4247 D(p->level--);
4248 return NULL;
4249 }
4250 int _end_lineno = _token->end_lineno;
4251 UNUSED(_end_lineno); // Only used by EXTRA macro
4252 int _end_col_offset = _token->end_col_offset;
4253 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004254 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004255 if (_res == NULL && PyErr_Occurred()) {
4256 p->error_indicator = 1;
4257 D(p->level--);
4258 return NULL;
4259 }
4260 goto done;
4261 }
4262 p->mark = _mark;
4263 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004264 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 +03004265 if (_cut_var) {
4266 D(p->level--);
4267 return NULL;
4268 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004269 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004270 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004271 if (p->error_indicator) {
4272 D(p->level--);
4273 return NULL;
4274 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004275 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 +03004276 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004277 Token * _keyword;
4278 Token * _keyword_1;
4279 Token * _literal;
4280 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004281 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004282 void *el;
4283 expr_ty ex;
4284 expr_ty t;
4285 void *tc;
4286 if (
4287 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4288 &&
4289 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4290 &&
4291 (t = star_targets_rule(p)) // star_targets
4292 &&
4293 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4294 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004295 (_cut_var = 1)
4296 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004297 (ex = star_expressions_rule(p)) // star_expressions
4298 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004299 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004300 &&
4301 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4302 &&
4303 (b = block_rule(p)) // block
4304 &&
4305 (el = else_block_rule(p), 1) // else_block?
4306 )
4307 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004308 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 +01004309 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4310 if (_token == NULL) {
4311 D(p->level--);
4312 return NULL;
4313 }
4314 int _end_lineno = _token->end_lineno;
4315 UNUSED(_end_lineno); // Only used by EXTRA macro
4316 int _end_col_offset = _token->end_col_offset;
4317 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004318 _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 +01004319 if (_res == NULL && PyErr_Occurred()) {
4320 p->error_indicator = 1;
4321 D(p->level--);
4322 return NULL;
4323 }
4324 goto done;
4325 }
4326 p->mark = _mark;
4327 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004328 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 +03004329 if (_cut_var) {
4330 D(p->level--);
4331 return NULL;
4332 }
4333 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004334 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004335 if (p->error_indicator) {
4336 D(p->level--);
4337 return NULL;
4338 }
4339 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4340 void *invalid_for_target_var;
4341 if (
4342 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4343 )
4344 {
4345 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4346 _res = invalid_for_target_var;
4347 goto done;
4348 }
4349 p->mark = _mark;
4350 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004352 }
4353 _res = NULL;
4354 done:
4355 D(p->level--);
4356 return _res;
4357}
4358
4359// with_stmt:
4360// | 'with' '(' ','.with_item+ ','? ')' ':' block
4361// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4362// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4363// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004364// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004365static stmt_ty
4366with_stmt_rule(Parser *p)
4367{
4368 D(p->level++);
4369 if (p->error_indicator) {
4370 D(p->level--);
4371 return NULL;
4372 }
4373 stmt_ty _res = NULL;
4374 int _mark = p->mark;
4375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4376 p->error_indicator = 1;
4377 D(p->level--);
4378 return NULL;
4379 }
4380 int _start_lineno = p->tokens[_mark]->lineno;
4381 UNUSED(_start_lineno); // Only used by EXTRA macro
4382 int _start_col_offset = p->tokens[_mark]->col_offset;
4383 UNUSED(_start_col_offset); // Only used by EXTRA macro
4384 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4385 if (p->error_indicator) {
4386 D(p->level--);
4387 return NULL;
4388 }
4389 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4390 Token * _keyword;
4391 Token * _literal;
4392 Token * _literal_1;
4393 Token * _literal_2;
4394 void *_opt_var;
4395 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004396 asdl_withitem_seq* a;
4397 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004398 if (
4399 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4400 &&
4401 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4402 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004403 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004404 &&
4405 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4406 &&
4407 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4408 &&
4409 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4410 &&
4411 (b = block_rule(p)) // block
4412 )
4413 {
4414 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4415 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4416 if (_token == NULL) {
4417 D(p->level--);
4418 return NULL;
4419 }
4420 int _end_lineno = _token->end_lineno;
4421 UNUSED(_end_lineno); // Only used by EXTRA macro
4422 int _end_col_offset = _token->end_col_offset;
4423 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004424 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004425 if (_res == NULL && PyErr_Occurred()) {
4426 p->error_indicator = 1;
4427 D(p->level--);
4428 return NULL;
4429 }
4430 goto done;
4431 }
4432 p->mark = _mark;
4433 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4435 }
4436 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4437 if (p->error_indicator) {
4438 D(p->level--);
4439 return NULL;
4440 }
4441 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4442 Token * _keyword;
4443 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004444 asdl_withitem_seq* a;
4445 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004446 void *tc;
4447 if (
4448 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4449 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004450 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004451 &&
4452 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4453 &&
4454 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4455 &&
4456 (b = block_rule(p)) // block
4457 )
4458 {
4459 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4460 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4461 if (_token == NULL) {
4462 D(p->level--);
4463 return NULL;
4464 }
4465 int _end_lineno = _token->end_lineno;
4466 UNUSED(_end_lineno); // Only used by EXTRA macro
4467 int _end_col_offset = _token->end_col_offset;
4468 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004469 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004470 if (_res == NULL && PyErr_Occurred()) {
4471 p->error_indicator = 1;
4472 D(p->level--);
4473 return NULL;
4474 }
4475 goto done;
4476 }
4477 p->mark = _mark;
4478 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4480 }
4481 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4482 if (p->error_indicator) {
4483 D(p->level--);
4484 return NULL;
4485 }
4486 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4487 Token * _keyword;
4488 Token * _literal;
4489 Token * _literal_1;
4490 Token * _literal_2;
4491 void *_opt_var;
4492 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004493 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004494 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004495 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004496 if (
4497 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4498 &&
4499 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4500 &&
4501 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4502 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004503 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004504 &&
4505 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4506 &&
4507 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4508 &&
4509 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4510 &&
4511 (b = block_rule(p)) // block
4512 )
4513 {
4514 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4516 if (_token == NULL) {
4517 D(p->level--);
4518 return NULL;
4519 }
4520 int _end_lineno = _token->end_lineno;
4521 UNUSED(_end_lineno); // Only used by EXTRA macro
4522 int _end_col_offset = _token->end_col_offset;
4523 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004524 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004525 if (_res == NULL && PyErr_Occurred()) {
4526 p->error_indicator = 1;
4527 D(p->level--);
4528 return NULL;
4529 }
4530 goto done;
4531 }
4532 p->mark = _mark;
4533 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4535 }
4536 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4537 if (p->error_indicator) {
4538 D(p->level--);
4539 return NULL;
4540 }
4541 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4542 Token * _keyword;
4543 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004544 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004545 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004546 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 void *tc;
4548 if (
4549 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4550 &&
4551 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4552 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004553 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004554 &&
4555 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4556 &&
4557 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4558 &&
4559 (b = block_rule(p)) // block
4560 )
4561 {
4562 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4564 if (_token == NULL) {
4565 D(p->level--);
4566 return NULL;
4567 }
4568 int _end_lineno = _token->end_lineno;
4569 UNUSED(_end_lineno); // Only used by EXTRA macro
4570 int _end_col_offset = _token->end_col_offset;
4571 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004572 _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 +01004573 if (_res == NULL && PyErr_Occurred()) {
4574 p->error_indicator = 1;
4575 D(p->level--);
4576 return NULL;
4577 }
4578 goto done;
4579 }
4580 p->mark = _mark;
4581 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4583 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004584 if (p->call_invalid_rules) { // invalid_with_stmt
4585 if (p->error_indicator) {
4586 D(p->level--);
4587 return NULL;
4588 }
4589 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4590 void *invalid_with_stmt_var;
4591 if (
4592 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4593 )
4594 {
4595 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4596 _res = invalid_with_stmt_var;
4597 goto done;
4598 }
4599 p->mark = _mark;
4600 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4602 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004603 _res = NULL;
4604 done:
4605 D(p->level--);
4606 return _res;
4607}
4608
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004609// with_item:
4610// | expression 'as' star_target &(',' | ')' | ':')
4611// | invalid_with_item
4612// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004613static withitem_ty
4614with_item_rule(Parser *p)
4615{
4616 D(p->level++);
4617 if (p->error_indicator) {
4618 D(p->level--);
4619 return NULL;
4620 }
4621 withitem_ty _res = NULL;
4622 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004623 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004624 if (p->error_indicator) {
4625 D(p->level--);
4626 return NULL;
4627 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004628 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 +03004629 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004630 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004631 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 if (
4633 (e = expression_rule(p)) // expression
4634 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004635 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4636 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004637 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004638 &&
4639 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004640 )
4641 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004642 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 +02004643 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004644 if (_res == NULL && PyErr_Occurred()) {
4645 p->error_indicator = 1;
4646 D(p->level--);
4647 return NULL;
4648 }
4649 goto done;
4650 }
4651 p->mark = _mark;
4652 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004654 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004655 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004656 if (p->error_indicator) {
4657 D(p->level--);
4658 return NULL;
4659 }
4660 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4661 void *invalid_with_item_var;
4662 if (
4663 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4664 )
4665 {
4666 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4667 _res = invalid_with_item_var;
4668 goto done;
4669 }
4670 p->mark = _mark;
4671 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4673 }
4674 { // expression
4675 if (p->error_indicator) {
4676 D(p->level--);
4677 return NULL;
4678 }
4679 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4680 expr_ty e;
4681 if (
4682 (e = expression_rule(p)) // expression
4683 )
4684 {
4685 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004686 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004687 if (_res == NULL && PyErr_Occurred()) {
4688 p->error_indicator = 1;
4689 D(p->level--);
4690 return NULL;
4691 }
4692 goto done;
4693 }
4694 p->mark = _mark;
4695 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004697 }
4698 _res = NULL;
4699 done:
4700 D(p->level--);
4701 return _res;
4702}
4703
4704// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004705// | 'try' &&':' block finally_block
4706// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004707static stmt_ty
4708try_stmt_rule(Parser *p)
4709{
4710 D(p->level++);
4711 if (p->error_indicator) {
4712 D(p->level--);
4713 return NULL;
4714 }
4715 stmt_ty _res = NULL;
4716 int _mark = p->mark;
4717 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4718 p->error_indicator = 1;
4719 D(p->level--);
4720 return NULL;
4721 }
4722 int _start_lineno = p->tokens[_mark]->lineno;
4723 UNUSED(_start_lineno); // Only used by EXTRA macro
4724 int _start_col_offset = p->tokens[_mark]->col_offset;
4725 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004726 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004727 if (p->error_indicator) {
4728 D(p->level--);
4729 return NULL;
4730 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004731 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 +01004732 Token * _keyword;
4733 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004734 asdl_stmt_seq* b;
4735 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004736 if (
4737 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4738 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004739 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004740 &&
4741 (b = block_rule(p)) // block
4742 &&
4743 (f = finally_block_rule(p)) // finally_block
4744 )
4745 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004746 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 +01004747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4748 if (_token == NULL) {
4749 D(p->level--);
4750 return NULL;
4751 }
4752 int _end_lineno = _token->end_lineno;
4753 UNUSED(_end_lineno); // Only used by EXTRA macro
4754 int _end_col_offset = _token->end_col_offset;
4755 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004756 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 if (_res == NULL && PyErr_Occurred()) {
4758 p->error_indicator = 1;
4759 D(p->level--);
4760 return NULL;
4761 }
4762 goto done;
4763 }
4764 p->mark = _mark;
4765 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004767 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004768 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004769 if (p->error_indicator) {
4770 D(p->level--);
4771 return NULL;
4772 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004773 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 +01004774 Token * _keyword;
4775 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004776 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004777 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004778 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004779 void *f;
4780 if (
4781 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4782 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004783 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004784 &&
4785 (b = block_rule(p)) // block
4786 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004787 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004788 &&
4789 (el = else_block_rule(p), 1) // else_block?
4790 &&
4791 (f = finally_block_rule(p), 1) // finally_block?
4792 )
4793 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004794 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 +01004795 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4796 if (_token == NULL) {
4797 D(p->level--);
4798 return NULL;
4799 }
4800 int _end_lineno = _token->end_lineno;
4801 UNUSED(_end_lineno); // Only used by EXTRA macro
4802 int _end_col_offset = _token->end_col_offset;
4803 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004804 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004805 if (_res == NULL && PyErr_Occurred()) {
4806 p->error_indicator = 1;
4807 D(p->level--);
4808 return NULL;
4809 }
4810 goto done;
4811 }
4812 p->mark = _mark;
4813 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004815 }
4816 _res = NULL;
4817 done:
4818 D(p->level--);
4819 return _res;
4820}
4821
Pablo Galindo206cbda2021-02-07 18:42:21 +00004822// except_block:
4823// | 'except' expression ['as' NAME] ':' block
4824// | 'except' ':' block
4825// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004826static excepthandler_ty
4827except_block_rule(Parser *p)
4828{
4829 D(p->level++);
4830 if (p->error_indicator) {
4831 D(p->level--);
4832 return NULL;
4833 }
4834 excepthandler_ty _res = NULL;
4835 int _mark = p->mark;
4836 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4837 p->error_indicator = 1;
4838 D(p->level--);
4839 return NULL;
4840 }
4841 int _start_lineno = p->tokens[_mark]->lineno;
4842 UNUSED(_start_lineno); // Only used by EXTRA macro
4843 int _start_col_offset = p->tokens[_mark]->col_offset;
4844 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004845 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004846 if (p->error_indicator) {
4847 D(p->level--);
4848 return NULL;
4849 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004850 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 +01004851 Token * _keyword;
4852 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004853 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004854 expr_ty e;
4855 void *t;
4856 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004857 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004858 &&
4859 (e = expression_rule(p)) // expression
4860 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004861 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004862 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004863 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004864 &&
4865 (b = block_rule(p)) // block
4866 )
4867 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004868 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 +01004869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4870 if (_token == NULL) {
4871 D(p->level--);
4872 return NULL;
4873 }
4874 int _end_lineno = _token->end_lineno;
4875 UNUSED(_end_lineno); // Only used by EXTRA macro
4876 int _end_col_offset = _token->end_col_offset;
4877 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004878 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004879 if (_res == NULL && PyErr_Occurred()) {
4880 p->error_indicator = 1;
4881 D(p->level--);
4882 return NULL;
4883 }
4884 goto done;
4885 }
4886 p->mark = _mark;
4887 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004889 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004890 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004891 if (p->error_indicator) {
4892 D(p->level--);
4893 return NULL;
4894 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004895 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004896 Token * _keyword;
4897 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004898 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004899 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004900 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004901 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004902 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004903 &&
4904 (b = block_rule(p)) // block
4905 )
4906 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004907 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 +01004908 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4909 if (_token == NULL) {
4910 D(p->level--);
4911 return NULL;
4912 }
4913 int _end_lineno = _token->end_lineno;
4914 UNUSED(_end_lineno); // Only used by EXTRA macro
4915 int _end_col_offset = _token->end_col_offset;
4916 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004917 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004918 if (_res == NULL && PyErr_Occurred()) {
4919 p->error_indicator = 1;
4920 D(p->level--);
4921 return NULL;
4922 }
4923 goto done;
4924 }
4925 p->mark = _mark;
4926 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4928 }
4929 if (p->call_invalid_rules) { // invalid_except_block
4930 if (p->error_indicator) {
4931 D(p->level--);
4932 return NULL;
4933 }
4934 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4935 void *invalid_except_block_var;
4936 if (
4937 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4938 )
4939 {
4940 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4941 _res = invalid_except_block_var;
4942 goto done;
4943 }
4944 p->mark = _mark;
4945 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004947 }
4948 _res = NULL;
4949 done:
4950 D(p->level--);
4951 return _res;
4952}
4953
4954// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004955static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004956finally_block_rule(Parser *p)
4957{
4958 D(p->level++);
4959 if (p->error_indicator) {
4960 D(p->level--);
4961 return NULL;
4962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004963 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004964 int _mark = p->mark;
4965 { // 'finally' ':' block
4966 if (p->error_indicator) {
4967 D(p->level--);
4968 return NULL;
4969 }
4970 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4971 Token * _keyword;
4972 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004973 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004974 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004975 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004976 &&
4977 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4978 &&
4979 (a = block_rule(p)) // block
4980 )
4981 {
4982 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4983 _res = a;
4984 if (_res == NULL && PyErr_Occurred()) {
4985 p->error_indicator = 1;
4986 D(p->level--);
4987 return NULL;
4988 }
4989 goto done;
4990 }
4991 p->mark = _mark;
4992 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4994 }
4995 _res = NULL;
4996 done:
4997 D(p->level--);
4998 return _res;
4999}
5000
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005001// match_stmt:
5002// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5003// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005004static stmt_ty
5005match_stmt_rule(Parser *p)
5006{
5007 D(p->level++);
5008 if (p->error_indicator) {
5009 D(p->level--);
5010 return NULL;
5011 }
5012 stmt_ty _res = NULL;
5013 int _mark = p->mark;
5014 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5015 p->error_indicator = 1;
5016 D(p->level--);
5017 return NULL;
5018 }
5019 int _start_lineno = p->tokens[_mark]->lineno;
5020 UNUSED(_start_lineno); // Only used by EXTRA macro
5021 int _start_col_offset = p->tokens[_mark]->col_offset;
5022 UNUSED(_start_col_offset); // Only used by EXTRA macro
5023 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5024 if (p->error_indicator) {
5025 D(p->level--);
5026 return NULL;
5027 }
5028 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5029 expr_ty _keyword;
5030 Token * _literal;
5031 asdl_match_case_seq* cases;
5032 Token * dedent_var;
5033 Token * indent_var;
5034 Token * newline_var;
5035 expr_ty subject;
5036 if (
5037 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5038 &&
5039 (subject = subject_expr_rule(p)) // subject_expr
5040 &&
5041 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5042 &&
5043 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5044 &&
5045 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5046 &&
5047 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5048 &&
5049 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5050 )
5051 {
5052 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5054 if (_token == NULL) {
5055 D(p->level--);
5056 return NULL;
5057 }
5058 int _end_lineno = _token->end_lineno;
5059 UNUSED(_end_lineno); // Only used by EXTRA macro
5060 int _end_col_offset = _token->end_col_offset;
5061 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005062 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005063 if (_res == NULL && PyErr_Occurred()) {
5064 p->error_indicator = 1;
5065 D(p->level--);
5066 return NULL;
5067 }
5068 goto done;
5069 }
5070 p->mark = _mark;
5071 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5073 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005074 if (p->call_invalid_rules) { // invalid_match_stmt
5075 if (p->error_indicator) {
5076 D(p->level--);
5077 return NULL;
5078 }
5079 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5080 void *invalid_match_stmt_var;
5081 if (
5082 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5083 )
5084 {
5085 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5086 _res = invalid_match_stmt_var;
5087 goto done;
5088 }
5089 p->mark = _mark;
5090 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5092 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005093 _res = NULL;
5094 done:
5095 D(p->level--);
5096 return _res;
5097}
5098
5099// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5100static expr_ty
5101subject_expr_rule(Parser *p)
5102{
5103 D(p->level++);
5104 if (p->error_indicator) {
5105 D(p->level--);
5106 return NULL;
5107 }
5108 expr_ty _res = NULL;
5109 int _mark = p->mark;
5110 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5111 p->error_indicator = 1;
5112 D(p->level--);
5113 return NULL;
5114 }
5115 int _start_lineno = p->tokens[_mark]->lineno;
5116 UNUSED(_start_lineno); // Only used by EXTRA macro
5117 int _start_col_offset = p->tokens[_mark]->col_offset;
5118 UNUSED(_start_col_offset); // Only used by EXTRA macro
5119 { // star_named_expression ',' star_named_expressions?
5120 if (p->error_indicator) {
5121 D(p->level--);
5122 return NULL;
5123 }
5124 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5125 Token * _literal;
5126 expr_ty value;
5127 void *values;
5128 if (
5129 (value = star_named_expression_rule(p)) // star_named_expression
5130 &&
5131 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5132 &&
5133 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5134 )
5135 {
5136 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5138 if (_token == NULL) {
5139 D(p->level--);
5140 return NULL;
5141 }
5142 int _end_lineno = _token->end_lineno;
5143 UNUSED(_end_lineno); // Only used by EXTRA macro
5144 int _end_col_offset = _token->end_col_offset;
5145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005146 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005147 if (_res == NULL && PyErr_Occurred()) {
5148 p->error_indicator = 1;
5149 D(p->level--);
5150 return NULL;
5151 }
5152 goto done;
5153 }
5154 p->mark = _mark;
5155 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5157 }
5158 { // named_expression
5159 if (p->error_indicator) {
5160 D(p->level--);
5161 return NULL;
5162 }
5163 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5164 expr_ty named_expression_var;
5165 if (
5166 (named_expression_var = named_expression_rule(p)) // named_expression
5167 )
5168 {
5169 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5170 _res = named_expression_var;
5171 goto done;
5172 }
5173 p->mark = _mark;
5174 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5176 }
5177 _res = NULL;
5178 done:
5179 D(p->level--);
5180 return _res;
5181}
5182
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005183// case_block: "case" patterns guard? ':' block | invalid_case_block
Brandt Bucher145bf262021-02-26 14:51:55 -08005184static match_case_ty
5185case_block_rule(Parser *p)
5186{
5187 D(p->level++);
5188 if (p->error_indicator) {
5189 D(p->level--);
5190 return NULL;
5191 }
5192 match_case_ty _res = NULL;
5193 int _mark = p->mark;
5194 { // "case" patterns guard? ':' block
5195 if (p->error_indicator) {
5196 D(p->level--);
5197 return NULL;
5198 }
5199 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5200 expr_ty _keyword;
5201 Token * _literal;
5202 asdl_stmt_seq* body;
5203 void *guard;
5204 expr_ty pattern;
5205 if (
5206 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5207 &&
5208 (pattern = patterns_rule(p)) // patterns
5209 &&
5210 (guard = guard_rule(p), 1) // guard?
5211 &&
5212 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5213 &&
5214 (body = block_rule(p)) // block
5215 )
5216 {
5217 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 +02005218 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005219 if (_res == NULL && PyErr_Occurred()) {
5220 p->error_indicator = 1;
5221 D(p->level--);
5222 return NULL;
5223 }
5224 goto done;
5225 }
5226 p->mark = _mark;
5227 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5229 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005230 if (p->call_invalid_rules) { // invalid_case_block
5231 if (p->error_indicator) {
5232 D(p->level--);
5233 return NULL;
5234 }
5235 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5236 void *invalid_case_block_var;
5237 if (
5238 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5239 )
5240 {
5241 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5242 _res = invalid_case_block_var;
5243 goto done;
5244 }
5245 p->mark = _mark;
5246 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5248 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005249 _res = NULL;
5250 done:
5251 D(p->level--);
5252 return _res;
5253}
5254
5255// guard: 'if' named_expression
5256static expr_ty
5257guard_rule(Parser *p)
5258{
5259 D(p->level++);
5260 if (p->error_indicator) {
5261 D(p->level--);
5262 return NULL;
5263 }
5264 expr_ty _res = NULL;
5265 int _mark = p->mark;
5266 { // 'if' named_expression
5267 if (p->error_indicator) {
5268 D(p->level--);
5269 return NULL;
5270 }
5271 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5272 Token * _keyword;
5273 expr_ty guard;
5274 if (
5275 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5276 &&
5277 (guard = named_expression_rule(p)) // named_expression
5278 )
5279 {
5280 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5281 _res = guard;
5282 if (_res == NULL && PyErr_Occurred()) {
5283 p->error_indicator = 1;
5284 D(p->level--);
5285 return NULL;
5286 }
5287 goto done;
5288 }
5289 p->mark = _mark;
5290 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5292 }
5293 _res = NULL;
5294 done:
5295 D(p->level--);
5296 return _res;
5297}
5298
5299// patterns: open_sequence_pattern | pattern
5300static expr_ty
5301patterns_rule(Parser *p)
5302{
5303 D(p->level++);
5304 if (p->error_indicator) {
5305 D(p->level--);
5306 return NULL;
5307 }
5308 expr_ty _res = NULL;
5309 int _mark = p->mark;
5310 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5311 p->error_indicator = 1;
5312 D(p->level--);
5313 return NULL;
5314 }
5315 int _start_lineno = p->tokens[_mark]->lineno;
5316 UNUSED(_start_lineno); // Only used by EXTRA macro
5317 int _start_col_offset = p->tokens[_mark]->col_offset;
5318 UNUSED(_start_col_offset); // Only used by EXTRA macro
5319 { // open_sequence_pattern
5320 if (p->error_indicator) {
5321 D(p->level--);
5322 return NULL;
5323 }
5324 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5325 asdl_expr_seq* values;
5326 if (
5327 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5328 )
5329 {
5330 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5331 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5332 if (_token == NULL) {
5333 D(p->level--);
5334 return NULL;
5335 }
5336 int _end_lineno = _token->end_lineno;
5337 UNUSED(_end_lineno); // Only used by EXTRA macro
5338 int _end_col_offset = _token->end_col_offset;
5339 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005340 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005341 if (_res == NULL && PyErr_Occurred()) {
5342 p->error_indicator = 1;
5343 D(p->level--);
5344 return NULL;
5345 }
5346 goto done;
5347 }
5348 p->mark = _mark;
5349 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5351 }
5352 { // pattern
5353 if (p->error_indicator) {
5354 D(p->level--);
5355 return NULL;
5356 }
5357 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5358 expr_ty pattern_var;
5359 if (
5360 (pattern_var = pattern_rule(p)) // pattern
5361 )
5362 {
5363 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5364 _res = pattern_var;
5365 goto done;
5366 }
5367 p->mark = _mark;
5368 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5370 }
5371 _res = NULL;
5372 done:
5373 D(p->level--);
5374 return _res;
5375}
5376
5377// pattern: as_pattern | or_pattern
5378static expr_ty
5379pattern_rule(Parser *p)
5380{
5381 D(p->level++);
5382 if (p->error_indicator) {
5383 D(p->level--);
5384 return NULL;
5385 }
5386 expr_ty _res = NULL;
5387 int _mark = p->mark;
5388 { // as_pattern
5389 if (p->error_indicator) {
5390 D(p->level--);
5391 return NULL;
5392 }
5393 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5394 expr_ty as_pattern_var;
5395 if (
5396 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5397 )
5398 {
5399 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5400 _res = as_pattern_var;
5401 goto done;
5402 }
5403 p->mark = _mark;
5404 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5406 }
5407 { // or_pattern
5408 if (p->error_indicator) {
5409 D(p->level--);
5410 return NULL;
5411 }
5412 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5413 expr_ty or_pattern_var;
5414 if (
5415 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5416 )
5417 {
5418 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5419 _res = or_pattern_var;
5420 goto done;
5421 }
5422 p->mark = _mark;
5423 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5425 }
5426 _res = NULL;
5427 done:
5428 D(p->level--);
5429 return _res;
5430}
5431
5432// as_pattern: or_pattern 'as' capture_pattern
5433static expr_ty
5434as_pattern_rule(Parser *p)
5435{
5436 D(p->level++);
5437 if (p->error_indicator) {
5438 D(p->level--);
5439 return NULL;
5440 }
5441 expr_ty _res = NULL;
5442 int _mark = p->mark;
5443 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5444 p->error_indicator = 1;
5445 D(p->level--);
5446 return NULL;
5447 }
5448 int _start_lineno = p->tokens[_mark]->lineno;
5449 UNUSED(_start_lineno); // Only used by EXTRA macro
5450 int _start_col_offset = p->tokens[_mark]->col_offset;
5451 UNUSED(_start_col_offset); // Only used by EXTRA macro
5452 { // or_pattern 'as' capture_pattern
5453 if (p->error_indicator) {
5454 D(p->level--);
5455 return NULL;
5456 }
5457 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5458 Token * _keyword;
5459 expr_ty pattern;
5460 expr_ty target;
5461 if (
5462 (pattern = or_pattern_rule(p)) // or_pattern
5463 &&
5464 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5465 &&
5466 (target = capture_pattern_rule(p)) // capture_pattern
5467 )
5468 {
5469 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5471 if (_token == NULL) {
5472 D(p->level--);
5473 return NULL;
5474 }
5475 int _end_lineno = _token->end_lineno;
5476 UNUSED(_end_lineno); // Only used by EXTRA macro
5477 int _end_col_offset = _token->end_col_offset;
5478 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005479 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005480 if (_res == NULL && PyErr_Occurred()) {
5481 p->error_indicator = 1;
5482 D(p->level--);
5483 return NULL;
5484 }
5485 goto done;
5486 }
5487 p->mark = _mark;
5488 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5490 }
5491 _res = NULL;
5492 done:
5493 D(p->level--);
5494 return _res;
5495}
5496
5497// or_pattern: '|'.closed_pattern+
5498static expr_ty
5499or_pattern_rule(Parser *p)
5500{
5501 D(p->level++);
5502 if (p->error_indicator) {
5503 D(p->level--);
5504 return NULL;
5505 }
5506 expr_ty _res = NULL;
5507 int _mark = p->mark;
5508 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5509 p->error_indicator = 1;
5510 D(p->level--);
5511 return NULL;
5512 }
5513 int _start_lineno = p->tokens[_mark]->lineno;
5514 UNUSED(_start_lineno); // Only used by EXTRA macro
5515 int _start_col_offset = p->tokens[_mark]->col_offset;
5516 UNUSED(_start_col_offset); // Only used by EXTRA macro
5517 { // '|'.closed_pattern+
5518 if (p->error_indicator) {
5519 D(p->level--);
5520 return NULL;
5521 }
5522 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5523 asdl_expr_seq* patterns;
5524 if (
5525 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5526 )
5527 {
5528 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5529 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5530 if (_token == NULL) {
5531 D(p->level--);
5532 return NULL;
5533 }
5534 int _end_lineno = _token->end_lineno;
5535 UNUSED(_end_lineno); // Only used by EXTRA macro
5536 int _end_col_offset = _token->end_col_offset;
5537 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005538 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005539 if (_res == NULL && PyErr_Occurred()) {
5540 p->error_indicator = 1;
5541 D(p->level--);
5542 return NULL;
5543 }
5544 goto done;
5545 }
5546 p->mark = _mark;
5547 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5549 }
5550 _res = NULL;
5551 done:
5552 D(p->level--);
5553 return _res;
5554}
5555
5556// closed_pattern:
5557// | literal_pattern
5558// | capture_pattern
5559// | wildcard_pattern
5560// | value_pattern
5561// | group_pattern
5562// | sequence_pattern
5563// | mapping_pattern
5564// | class_pattern
5565static expr_ty
5566closed_pattern_rule(Parser *p)
5567{
5568 D(p->level++);
5569 if (p->error_indicator) {
5570 D(p->level--);
5571 return NULL;
5572 }
5573 expr_ty _res = NULL;
5574 int _mark = p->mark;
5575 { // literal_pattern
5576 if (p->error_indicator) {
5577 D(p->level--);
5578 return NULL;
5579 }
5580 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5581 expr_ty literal_pattern_var;
5582 if (
5583 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5584 )
5585 {
5586 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5587 _res = literal_pattern_var;
5588 goto done;
5589 }
5590 p->mark = _mark;
5591 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5593 }
5594 { // capture_pattern
5595 if (p->error_indicator) {
5596 D(p->level--);
5597 return NULL;
5598 }
5599 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5600 expr_ty capture_pattern_var;
5601 if (
5602 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5603 )
5604 {
5605 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5606 _res = capture_pattern_var;
5607 goto done;
5608 }
5609 p->mark = _mark;
5610 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5612 }
5613 { // wildcard_pattern
5614 if (p->error_indicator) {
5615 D(p->level--);
5616 return NULL;
5617 }
5618 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5619 expr_ty wildcard_pattern_var;
5620 if (
5621 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5622 )
5623 {
5624 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5625 _res = wildcard_pattern_var;
5626 goto done;
5627 }
5628 p->mark = _mark;
5629 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5631 }
5632 { // value_pattern
5633 if (p->error_indicator) {
5634 D(p->level--);
5635 return NULL;
5636 }
5637 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5638 expr_ty value_pattern_var;
5639 if (
5640 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5641 )
5642 {
5643 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5644 _res = value_pattern_var;
5645 goto done;
5646 }
5647 p->mark = _mark;
5648 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5650 }
5651 { // group_pattern
5652 if (p->error_indicator) {
5653 D(p->level--);
5654 return NULL;
5655 }
5656 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5657 expr_ty group_pattern_var;
5658 if (
5659 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5660 )
5661 {
5662 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5663 _res = group_pattern_var;
5664 goto done;
5665 }
5666 p->mark = _mark;
5667 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5669 }
5670 { // sequence_pattern
5671 if (p->error_indicator) {
5672 D(p->level--);
5673 return NULL;
5674 }
5675 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5676 expr_ty sequence_pattern_var;
5677 if (
5678 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5679 )
5680 {
5681 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5682 _res = sequence_pattern_var;
5683 goto done;
5684 }
5685 p->mark = _mark;
5686 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5688 }
5689 { // mapping_pattern
5690 if (p->error_indicator) {
5691 D(p->level--);
5692 return NULL;
5693 }
5694 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5695 expr_ty mapping_pattern_var;
5696 if (
5697 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5698 )
5699 {
5700 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5701 _res = mapping_pattern_var;
5702 goto done;
5703 }
5704 p->mark = _mark;
5705 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5707 }
5708 { // class_pattern
5709 if (p->error_indicator) {
5710 D(p->level--);
5711 return NULL;
5712 }
5713 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5714 expr_ty class_pattern_var;
5715 if (
5716 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5717 )
5718 {
5719 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5720 _res = class_pattern_var;
5721 goto done;
5722 }
5723 p->mark = _mark;
5724 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5726 }
5727 _res = NULL;
5728 done:
5729 D(p->level--);
5730 return _res;
5731}
5732
5733// literal_pattern:
5734// | signed_number !('+' | '-')
5735// | signed_number '+' NUMBER
5736// | signed_number '-' NUMBER
5737// | strings
5738// | 'None'
5739// | 'True'
5740// | 'False'
5741static expr_ty
5742literal_pattern_rule(Parser *p)
5743{
5744 D(p->level++);
5745 if (p->error_indicator) {
5746 D(p->level--);
5747 return NULL;
5748 }
5749 expr_ty _res = NULL;
5750 int _mark = p->mark;
5751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5752 p->error_indicator = 1;
5753 D(p->level--);
5754 return NULL;
5755 }
5756 int _start_lineno = p->tokens[_mark]->lineno;
5757 UNUSED(_start_lineno); // Only used by EXTRA macro
5758 int _start_col_offset = p->tokens[_mark]->col_offset;
5759 UNUSED(_start_col_offset); // Only used by EXTRA macro
5760 { // signed_number !('+' | '-')
5761 if (p->error_indicator) {
5762 D(p->level--);
5763 return NULL;
5764 }
5765 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5766 expr_ty signed_number_var;
5767 if (
5768 (signed_number_var = signed_number_rule(p)) // signed_number
5769 &&
5770 _PyPegen_lookahead(0, _tmp_53_rule, p)
5771 )
5772 {
5773 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5774 _res = signed_number_var;
5775 goto done;
5776 }
5777 p->mark = _mark;
5778 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5780 }
5781 { // signed_number '+' NUMBER
5782 if (p->error_indicator) {
5783 D(p->level--);
5784 return NULL;
5785 }
5786 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5787 Token * _literal;
5788 expr_ty imag;
5789 expr_ty real;
5790 if (
5791 (real = signed_number_rule(p)) // signed_number
5792 &&
5793 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5794 &&
5795 (imag = _PyPegen_number_token(p)) // NUMBER
5796 )
5797 {
5798 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5800 if (_token == NULL) {
5801 D(p->level--);
5802 return NULL;
5803 }
5804 int _end_lineno = _token->end_lineno;
5805 UNUSED(_end_lineno); // Only used by EXTRA macro
5806 int _end_col_offset = _token->end_col_offset;
5807 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005808 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005809 if (_res == NULL && PyErr_Occurred()) {
5810 p->error_indicator = 1;
5811 D(p->level--);
5812 return NULL;
5813 }
5814 goto done;
5815 }
5816 p->mark = _mark;
5817 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5819 }
5820 { // signed_number '-' NUMBER
5821 if (p->error_indicator) {
5822 D(p->level--);
5823 return NULL;
5824 }
5825 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5826 Token * _literal;
5827 expr_ty imag;
5828 expr_ty real;
5829 if (
5830 (real = signed_number_rule(p)) // signed_number
5831 &&
5832 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5833 &&
5834 (imag = _PyPegen_number_token(p)) // NUMBER
5835 )
5836 {
5837 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5838 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5839 if (_token == NULL) {
5840 D(p->level--);
5841 return NULL;
5842 }
5843 int _end_lineno = _token->end_lineno;
5844 UNUSED(_end_lineno); // Only used by EXTRA macro
5845 int _end_col_offset = _token->end_col_offset;
5846 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005847 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005848 if (_res == NULL && PyErr_Occurred()) {
5849 p->error_indicator = 1;
5850 D(p->level--);
5851 return NULL;
5852 }
5853 goto done;
5854 }
5855 p->mark = _mark;
5856 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5858 }
5859 { // strings
5860 if (p->error_indicator) {
5861 D(p->level--);
5862 return NULL;
5863 }
5864 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5865 expr_ty strings_var;
5866 if (
5867 (strings_var = strings_rule(p)) // strings
5868 )
5869 {
5870 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5871 _res = strings_var;
5872 goto done;
5873 }
5874 p->mark = _mark;
5875 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5877 }
5878 { // 'None'
5879 if (p->error_indicator) {
5880 D(p->level--);
5881 return NULL;
5882 }
5883 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5884 Token * _keyword;
5885 if (
5886 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5887 )
5888 {
5889 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5891 if (_token == NULL) {
5892 D(p->level--);
5893 return NULL;
5894 }
5895 int _end_lineno = _token->end_lineno;
5896 UNUSED(_end_lineno); // Only used by EXTRA macro
5897 int _end_col_offset = _token->end_col_offset;
5898 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005899 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005900 if (_res == NULL && PyErr_Occurred()) {
5901 p->error_indicator = 1;
5902 D(p->level--);
5903 return NULL;
5904 }
5905 goto done;
5906 }
5907 p->mark = _mark;
5908 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5910 }
5911 { // 'True'
5912 if (p->error_indicator) {
5913 D(p->level--);
5914 return NULL;
5915 }
5916 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5917 Token * _keyword;
5918 if (
5919 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5920 )
5921 {
5922 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5924 if (_token == NULL) {
5925 D(p->level--);
5926 return NULL;
5927 }
5928 int _end_lineno = _token->end_lineno;
5929 UNUSED(_end_lineno); // Only used by EXTRA macro
5930 int _end_col_offset = _token->end_col_offset;
5931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005932 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005933 if (_res == NULL && PyErr_Occurred()) {
5934 p->error_indicator = 1;
5935 D(p->level--);
5936 return NULL;
5937 }
5938 goto done;
5939 }
5940 p->mark = _mark;
5941 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5943 }
5944 { // 'False'
5945 if (p->error_indicator) {
5946 D(p->level--);
5947 return NULL;
5948 }
5949 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5950 Token * _keyword;
5951 if (
5952 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5953 )
5954 {
5955 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5956 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5957 if (_token == NULL) {
5958 D(p->level--);
5959 return NULL;
5960 }
5961 int _end_lineno = _token->end_lineno;
5962 UNUSED(_end_lineno); // Only used by EXTRA macro
5963 int _end_col_offset = _token->end_col_offset;
5964 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005965 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005966 if (_res == NULL && PyErr_Occurred()) {
5967 p->error_indicator = 1;
5968 D(p->level--);
5969 return NULL;
5970 }
5971 goto done;
5972 }
5973 p->mark = _mark;
5974 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5976 }
5977 _res = NULL;
5978 done:
5979 D(p->level--);
5980 return _res;
5981}
5982
5983// signed_number: NUMBER | '-' NUMBER
5984static expr_ty
5985signed_number_rule(Parser *p)
5986{
5987 D(p->level++);
5988 if (p->error_indicator) {
5989 D(p->level--);
5990 return NULL;
5991 }
5992 expr_ty _res = NULL;
5993 int _mark = p->mark;
5994 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5995 p->error_indicator = 1;
5996 D(p->level--);
5997 return NULL;
5998 }
5999 int _start_lineno = p->tokens[_mark]->lineno;
6000 UNUSED(_start_lineno); // Only used by EXTRA macro
6001 int _start_col_offset = p->tokens[_mark]->col_offset;
6002 UNUSED(_start_col_offset); // Only used by EXTRA macro
6003 { // NUMBER
6004 if (p->error_indicator) {
6005 D(p->level--);
6006 return NULL;
6007 }
6008 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6009 expr_ty number_var;
6010 if (
6011 (number_var = _PyPegen_number_token(p)) // NUMBER
6012 )
6013 {
6014 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6015 _res = number_var;
6016 goto done;
6017 }
6018 p->mark = _mark;
6019 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6021 }
6022 { // '-' NUMBER
6023 if (p->error_indicator) {
6024 D(p->level--);
6025 return NULL;
6026 }
6027 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6028 Token * _literal;
6029 expr_ty number;
6030 if (
6031 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6032 &&
6033 (number = _PyPegen_number_token(p)) // NUMBER
6034 )
6035 {
6036 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6037 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6038 if (_token == NULL) {
6039 D(p->level--);
6040 return NULL;
6041 }
6042 int _end_lineno = _token->end_lineno;
6043 UNUSED(_end_lineno); // Only used by EXTRA macro
6044 int _end_col_offset = _token->end_col_offset;
6045 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006046 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006047 if (_res == NULL && PyErr_Occurred()) {
6048 p->error_indicator = 1;
6049 D(p->level--);
6050 return NULL;
6051 }
6052 goto done;
6053 }
6054 p->mark = _mark;
6055 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6057 }
6058 _res = NULL;
6059 done:
6060 D(p->level--);
6061 return _res;
6062}
6063
6064// capture_pattern: !"_" NAME !('.' | '(' | '=')
6065static expr_ty
6066capture_pattern_rule(Parser *p)
6067{
6068 D(p->level++);
6069 if (p->error_indicator) {
6070 D(p->level--);
6071 return NULL;
6072 }
6073 expr_ty _res = NULL;
6074 int _mark = p->mark;
6075 { // !"_" NAME !('.' | '(' | '=')
6076 if (p->error_indicator) {
6077 D(p->level--);
6078 return NULL;
6079 }
6080 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6081 expr_ty name;
6082 if (
6083 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6084 &&
6085 (name = _PyPegen_name_token(p)) // NAME
6086 &&
6087 _PyPegen_lookahead(0, _tmp_54_rule, p)
6088 )
6089 {
6090 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6091 _res = _PyPegen_set_expr_context ( p , name , Store );
6092 if (_res == NULL && PyErr_Occurred()) {
6093 p->error_indicator = 1;
6094 D(p->level--);
6095 return NULL;
6096 }
6097 goto done;
6098 }
6099 p->mark = _mark;
6100 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6102 }
6103 _res = NULL;
6104 done:
6105 D(p->level--);
6106 return _res;
6107}
6108
6109// wildcard_pattern: "_"
6110static expr_ty
6111wildcard_pattern_rule(Parser *p)
6112{
6113 D(p->level++);
6114 if (p->error_indicator) {
6115 D(p->level--);
6116 return NULL;
6117 }
6118 expr_ty _res = NULL;
6119 int _mark = p->mark;
6120 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6121 p->error_indicator = 1;
6122 D(p->level--);
6123 return NULL;
6124 }
6125 int _start_lineno = p->tokens[_mark]->lineno;
6126 UNUSED(_start_lineno); // Only used by EXTRA macro
6127 int _start_col_offset = p->tokens[_mark]->col_offset;
6128 UNUSED(_start_col_offset); // Only used by EXTRA macro
6129 { // "_"
6130 if (p->error_indicator) {
6131 D(p->level--);
6132 return NULL;
6133 }
6134 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6135 expr_ty _keyword;
6136 if (
6137 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6138 )
6139 {
6140 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6142 if (_token == NULL) {
6143 D(p->level--);
6144 return NULL;
6145 }
6146 int _end_lineno = _token->end_lineno;
6147 UNUSED(_end_lineno); // Only used by EXTRA macro
6148 int _end_col_offset = _token->end_col_offset;
6149 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006150 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006151 if (_res == NULL && PyErr_Occurred()) {
6152 p->error_indicator = 1;
6153 D(p->level--);
6154 return NULL;
6155 }
6156 goto done;
6157 }
6158 p->mark = _mark;
6159 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6161 }
6162 _res = NULL;
6163 done:
6164 D(p->level--);
6165 return _res;
6166}
6167
6168// value_pattern: attr !('.' | '(' | '=')
6169static expr_ty
6170value_pattern_rule(Parser *p)
6171{
6172 D(p->level++);
6173 if (p->error_indicator) {
6174 D(p->level--);
6175 return NULL;
6176 }
6177 expr_ty _res = NULL;
6178 int _mark = p->mark;
6179 { // attr !('.' | '(' | '=')
6180 if (p->error_indicator) {
6181 D(p->level--);
6182 return NULL;
6183 }
6184 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6185 expr_ty attr;
6186 if (
6187 (attr = attr_rule(p)) // attr
6188 &&
6189 _PyPegen_lookahead(0, _tmp_55_rule, p)
6190 )
6191 {
6192 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6193 _res = attr;
6194 if (_res == NULL && PyErr_Occurred()) {
6195 p->error_indicator = 1;
6196 D(p->level--);
6197 return NULL;
6198 }
6199 goto done;
6200 }
6201 p->mark = _mark;
6202 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6204 }
6205 _res = NULL;
6206 done:
6207 D(p->level--);
6208 return _res;
6209}
6210
6211// Left-recursive
6212// attr: name_or_attr '.' NAME
6213static expr_ty attr_raw(Parser *);
6214static expr_ty
6215attr_rule(Parser *p)
6216{
6217 D(p->level++);
6218 expr_ty _res = NULL;
6219 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6220 D(p->level--);
6221 return _res;
6222 }
6223 int _mark = p->mark;
6224 int _resmark = p->mark;
6225 while (1) {
6226 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6227 if (tmpvar_1) {
6228 D(p->level--);
6229 return _res;
6230 }
6231 p->mark = _mark;
6232 void *_raw = attr_raw(p);
6233 if (p->error_indicator)
6234 return NULL;
6235 if (_raw == NULL || p->mark <= _resmark)
6236 break;
6237 _resmark = p->mark;
6238 _res = _raw;
6239 }
6240 p->mark = _resmark;
6241 D(p->level--);
6242 return _res;
6243}
6244static expr_ty
6245attr_raw(Parser *p)
6246{
6247 D(p->level++);
6248 if (p->error_indicator) {
6249 D(p->level--);
6250 return NULL;
6251 }
6252 expr_ty _res = NULL;
6253 int _mark = p->mark;
6254 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6255 p->error_indicator = 1;
6256 D(p->level--);
6257 return NULL;
6258 }
6259 int _start_lineno = p->tokens[_mark]->lineno;
6260 UNUSED(_start_lineno); // Only used by EXTRA macro
6261 int _start_col_offset = p->tokens[_mark]->col_offset;
6262 UNUSED(_start_col_offset); // Only used by EXTRA macro
6263 { // name_or_attr '.' NAME
6264 if (p->error_indicator) {
6265 D(p->level--);
6266 return NULL;
6267 }
6268 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6269 Token * _literal;
6270 expr_ty attr;
6271 expr_ty value;
6272 if (
6273 (value = name_or_attr_rule(p)) // name_or_attr
6274 &&
6275 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6276 &&
6277 (attr = _PyPegen_name_token(p)) // NAME
6278 )
6279 {
6280 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6281 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6282 if (_token == NULL) {
6283 D(p->level--);
6284 return NULL;
6285 }
6286 int _end_lineno = _token->end_lineno;
6287 UNUSED(_end_lineno); // Only used by EXTRA macro
6288 int _end_col_offset = _token->end_col_offset;
6289 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006290 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006291 if (_res == NULL && PyErr_Occurred()) {
6292 p->error_indicator = 1;
6293 D(p->level--);
6294 return NULL;
6295 }
6296 goto done;
6297 }
6298 p->mark = _mark;
6299 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6301 }
6302 _res = NULL;
6303 done:
6304 D(p->level--);
6305 return _res;
6306}
6307
6308// Left-recursive
6309// name_or_attr: attr | NAME
6310static expr_ty
6311name_or_attr_rule(Parser *p)
6312{
6313 D(p->level++);
6314 if (p->error_indicator) {
6315 D(p->level--);
6316 return NULL;
6317 }
6318 expr_ty _res = NULL;
6319 int _mark = p->mark;
6320 { // attr
6321 if (p->error_indicator) {
6322 D(p->level--);
6323 return NULL;
6324 }
6325 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6326 expr_ty attr_var;
6327 if (
6328 (attr_var = attr_rule(p)) // attr
6329 )
6330 {
6331 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6332 _res = attr_var;
6333 goto done;
6334 }
6335 p->mark = _mark;
6336 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6338 }
6339 { // NAME
6340 if (p->error_indicator) {
6341 D(p->level--);
6342 return NULL;
6343 }
6344 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6345 expr_ty name_var;
6346 if (
6347 (name_var = _PyPegen_name_token(p)) // NAME
6348 )
6349 {
6350 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6351 _res = name_var;
6352 goto done;
6353 }
6354 p->mark = _mark;
6355 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6357 }
6358 _res = NULL;
6359 done:
6360 D(p->level--);
6361 return _res;
6362}
6363
6364// group_pattern: '(' pattern ')'
6365static expr_ty
6366group_pattern_rule(Parser *p)
6367{
6368 D(p->level++);
6369 if (p->error_indicator) {
6370 D(p->level--);
6371 return NULL;
6372 }
6373 expr_ty _res = NULL;
6374 int _mark = p->mark;
6375 { // '(' pattern ')'
6376 if (p->error_indicator) {
6377 D(p->level--);
6378 return NULL;
6379 }
6380 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6381 Token * _literal;
6382 Token * _literal_1;
6383 expr_ty pattern;
6384 if (
6385 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6386 &&
6387 (pattern = pattern_rule(p)) // pattern
6388 &&
6389 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6390 )
6391 {
6392 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6393 _res = pattern;
6394 if (_res == NULL && PyErr_Occurred()) {
6395 p->error_indicator = 1;
6396 D(p->level--);
6397 return NULL;
6398 }
6399 goto done;
6400 }
6401 p->mark = _mark;
6402 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6404 }
6405 _res = NULL;
6406 done:
6407 D(p->level--);
6408 return _res;
6409}
6410
6411// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6412static expr_ty
6413sequence_pattern_rule(Parser *p)
6414{
6415 D(p->level++);
6416 if (p->error_indicator) {
6417 D(p->level--);
6418 return NULL;
6419 }
6420 expr_ty _res = NULL;
6421 int _mark = p->mark;
6422 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6423 p->error_indicator = 1;
6424 D(p->level--);
6425 return NULL;
6426 }
6427 int _start_lineno = p->tokens[_mark]->lineno;
6428 UNUSED(_start_lineno); // Only used by EXTRA macro
6429 int _start_col_offset = p->tokens[_mark]->col_offset;
6430 UNUSED(_start_col_offset); // Only used by EXTRA macro
6431 { // '[' maybe_sequence_pattern? ']'
6432 if (p->error_indicator) {
6433 D(p->level--);
6434 return NULL;
6435 }
6436 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6437 Token * _literal;
6438 Token * _literal_1;
6439 void *values;
6440 if (
6441 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6442 &&
6443 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6444 &&
6445 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6446 )
6447 {
6448 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6449 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6450 if (_token == NULL) {
6451 D(p->level--);
6452 return NULL;
6453 }
6454 int _end_lineno = _token->end_lineno;
6455 UNUSED(_end_lineno); // Only used by EXTRA macro
6456 int _end_col_offset = _token->end_col_offset;
6457 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006458 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006459 if (_res == NULL && PyErr_Occurred()) {
6460 p->error_indicator = 1;
6461 D(p->level--);
6462 return NULL;
6463 }
6464 goto done;
6465 }
6466 p->mark = _mark;
6467 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6469 }
6470 { // '(' open_sequence_pattern? ')'
6471 if (p->error_indicator) {
6472 D(p->level--);
6473 return NULL;
6474 }
6475 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6476 Token * _literal;
6477 Token * _literal_1;
6478 void *values;
6479 if (
6480 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6481 &&
6482 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6483 &&
6484 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6485 )
6486 {
6487 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6488 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6489 if (_token == NULL) {
6490 D(p->level--);
6491 return NULL;
6492 }
6493 int _end_lineno = _token->end_lineno;
6494 UNUSED(_end_lineno); // Only used by EXTRA macro
6495 int _end_col_offset = _token->end_col_offset;
6496 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006497 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006498 if (_res == NULL && PyErr_Occurred()) {
6499 p->error_indicator = 1;
6500 D(p->level--);
6501 return NULL;
6502 }
6503 goto done;
6504 }
6505 p->mark = _mark;
6506 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6508 }
6509 _res = NULL;
6510 done:
6511 D(p->level--);
6512 return _res;
6513}
6514
6515// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6516static asdl_seq*
6517open_sequence_pattern_rule(Parser *p)
6518{
6519 D(p->level++);
6520 if (p->error_indicator) {
6521 D(p->level--);
6522 return NULL;
6523 }
6524 asdl_seq* _res = NULL;
6525 int _mark = p->mark;
6526 { // maybe_star_pattern ',' maybe_sequence_pattern?
6527 if (p->error_indicator) {
6528 D(p->level--);
6529 return NULL;
6530 }
6531 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6532 Token * _literal;
6533 expr_ty value;
6534 void *values;
6535 if (
6536 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6537 &&
6538 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6539 &&
6540 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6541 )
6542 {
6543 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6544 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6545 if (_res == NULL && PyErr_Occurred()) {
6546 p->error_indicator = 1;
6547 D(p->level--);
6548 return NULL;
6549 }
6550 goto done;
6551 }
6552 p->mark = _mark;
6553 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6555 }
6556 _res = NULL;
6557 done:
6558 D(p->level--);
6559 return _res;
6560}
6561
6562// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6563static asdl_seq*
6564maybe_sequence_pattern_rule(Parser *p)
6565{
6566 D(p->level++);
6567 if (p->error_indicator) {
6568 D(p->level--);
6569 return NULL;
6570 }
6571 asdl_seq* _res = NULL;
6572 int _mark = p->mark;
6573 { // ','.maybe_star_pattern+ ','?
6574 if (p->error_indicator) {
6575 D(p->level--);
6576 return NULL;
6577 }
6578 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6579 void *_opt_var;
6580 UNUSED(_opt_var); // Silence compiler warnings
6581 asdl_seq * values;
6582 if (
6583 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6584 &&
6585 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6586 )
6587 {
6588 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6589 _res = values;
6590 if (_res == NULL && PyErr_Occurred()) {
6591 p->error_indicator = 1;
6592 D(p->level--);
6593 return NULL;
6594 }
6595 goto done;
6596 }
6597 p->mark = _mark;
6598 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6600 }
6601 _res = NULL;
6602 done:
6603 D(p->level--);
6604 return _res;
6605}
6606
6607// maybe_star_pattern: star_pattern | pattern
6608static expr_ty
6609maybe_star_pattern_rule(Parser *p)
6610{
6611 D(p->level++);
6612 if (p->error_indicator) {
6613 D(p->level--);
6614 return NULL;
6615 }
6616 expr_ty _res = NULL;
6617 int _mark = p->mark;
6618 { // star_pattern
6619 if (p->error_indicator) {
6620 D(p->level--);
6621 return NULL;
6622 }
6623 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6624 expr_ty star_pattern_var;
6625 if (
6626 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6627 )
6628 {
6629 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6630 _res = star_pattern_var;
6631 goto done;
6632 }
6633 p->mark = _mark;
6634 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6636 }
6637 { // pattern
6638 if (p->error_indicator) {
6639 D(p->level--);
6640 return NULL;
6641 }
6642 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6643 expr_ty pattern_var;
6644 if (
6645 (pattern_var = pattern_rule(p)) // pattern
6646 )
6647 {
6648 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6649 _res = pattern_var;
6650 goto done;
6651 }
6652 p->mark = _mark;
6653 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6655 }
6656 _res = NULL;
6657 done:
6658 D(p->level--);
6659 return _res;
6660}
6661
6662// star_pattern: '*' (capture_pattern | wildcard_pattern)
6663static expr_ty
6664star_pattern_rule(Parser *p)
6665{
6666 D(p->level++);
6667 if (p->error_indicator) {
6668 D(p->level--);
6669 return NULL;
6670 }
6671 expr_ty _res = NULL;
6672 int _mark = p->mark;
6673 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6674 p->error_indicator = 1;
6675 D(p->level--);
6676 return NULL;
6677 }
6678 int _start_lineno = p->tokens[_mark]->lineno;
6679 UNUSED(_start_lineno); // Only used by EXTRA macro
6680 int _start_col_offset = p->tokens[_mark]->col_offset;
6681 UNUSED(_start_col_offset); // Only used by EXTRA macro
6682 { // '*' (capture_pattern | wildcard_pattern)
6683 if (p->error_indicator) {
6684 D(p->level--);
6685 return NULL;
6686 }
6687 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6688 Token * _literal;
6689 void *value;
6690 if (
6691 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6692 &&
6693 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6694 )
6695 {
6696 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6698 if (_token == NULL) {
6699 D(p->level--);
6700 return NULL;
6701 }
6702 int _end_lineno = _token->end_lineno;
6703 UNUSED(_end_lineno); // Only used by EXTRA macro
6704 int _end_col_offset = _token->end_col_offset;
6705 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006706 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006707 if (_res == NULL && PyErr_Occurred()) {
6708 p->error_indicator = 1;
6709 D(p->level--);
6710 return NULL;
6711 }
6712 goto done;
6713 }
6714 p->mark = _mark;
6715 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6717 }
6718 _res = NULL;
6719 done:
6720 D(p->level--);
6721 return _res;
6722}
6723
6724// mapping_pattern: '{' items_pattern? '}'
6725static expr_ty
6726mapping_pattern_rule(Parser *p)
6727{
6728 D(p->level++);
6729 if (p->error_indicator) {
6730 D(p->level--);
6731 return NULL;
6732 }
6733 expr_ty _res = NULL;
6734 int _mark = p->mark;
6735 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6736 p->error_indicator = 1;
6737 D(p->level--);
6738 return NULL;
6739 }
6740 int _start_lineno = p->tokens[_mark]->lineno;
6741 UNUSED(_start_lineno); // Only used by EXTRA macro
6742 int _start_col_offset = p->tokens[_mark]->col_offset;
6743 UNUSED(_start_col_offset); // Only used by EXTRA macro
6744 { // '{' items_pattern? '}'
6745 if (p->error_indicator) {
6746 D(p->level--);
6747 return NULL;
6748 }
6749 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6750 Token * _literal;
6751 Token * _literal_1;
6752 void *items;
6753 if (
6754 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6755 &&
6756 (items = items_pattern_rule(p), 1) // items_pattern?
6757 &&
6758 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6759 )
6760 {
6761 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6762 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6763 if (_token == NULL) {
6764 D(p->level--);
6765 return NULL;
6766 }
6767 int _end_lineno = _token->end_lineno;
6768 UNUSED(_end_lineno); // Only used by EXTRA macro
6769 int _end_col_offset = _token->end_col_offset;
6770 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006771 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , items ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , items ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006772 if (_res == NULL && PyErr_Occurred()) {
6773 p->error_indicator = 1;
6774 D(p->level--);
6775 return NULL;
6776 }
6777 goto done;
6778 }
6779 p->mark = _mark;
6780 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6782 }
6783 _res = NULL;
6784 done:
6785 D(p->level--);
6786 return _res;
6787}
6788
6789// items_pattern: ','.key_value_pattern+ ','?
6790static asdl_seq*
6791items_pattern_rule(Parser *p)
6792{
6793 D(p->level++);
6794 if (p->error_indicator) {
6795 D(p->level--);
6796 return NULL;
6797 }
6798 asdl_seq* _res = NULL;
6799 int _mark = p->mark;
6800 { // ','.key_value_pattern+ ','?
6801 if (p->error_indicator) {
6802 D(p->level--);
6803 return NULL;
6804 }
6805 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6806 void *_opt_var;
6807 UNUSED(_opt_var); // Silence compiler warnings
6808 asdl_seq * items;
6809 if (
6810 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6811 &&
6812 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6813 )
6814 {
6815 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6816 _res = items;
6817 if (_res == NULL && PyErr_Occurred()) {
6818 p->error_indicator = 1;
6819 D(p->level--);
6820 return NULL;
6821 }
6822 goto done;
6823 }
6824 p->mark = _mark;
6825 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6827 }
6828 _res = NULL;
6829 done:
6830 D(p->level--);
6831 return _res;
6832}
6833
6834// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6835static KeyValuePair*
6836key_value_pattern_rule(Parser *p)
6837{
6838 D(p->level++);
6839 if (p->error_indicator) {
6840 D(p->level--);
6841 return NULL;
6842 }
6843 KeyValuePair* _res = NULL;
6844 int _mark = p->mark;
6845 { // (literal_pattern | value_pattern) ':' pattern
6846 if (p->error_indicator) {
6847 D(p->level--);
6848 return NULL;
6849 }
6850 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6851 Token * _literal;
6852 void *key;
6853 expr_ty value;
6854 if (
6855 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6856 &&
6857 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6858 &&
6859 (value = pattern_rule(p)) // pattern
6860 )
6861 {
6862 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6863 _res = _PyPegen_key_value_pair ( p , key , value );
6864 if (_res == NULL && PyErr_Occurred()) {
6865 p->error_indicator = 1;
6866 D(p->level--);
6867 return NULL;
6868 }
6869 goto done;
6870 }
6871 p->mark = _mark;
6872 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6874 }
6875 { // double_star_pattern
6876 if (p->error_indicator) {
6877 D(p->level--);
6878 return NULL;
6879 }
6880 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6881 KeyValuePair* double_star_pattern_var;
6882 if (
6883 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6884 )
6885 {
6886 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6887 _res = double_star_pattern_var;
6888 goto done;
6889 }
6890 p->mark = _mark;
6891 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6893 }
6894 _res = NULL;
6895 done:
6896 D(p->level--);
6897 return _res;
6898}
6899
6900// double_star_pattern: '**' capture_pattern
6901static KeyValuePair*
6902double_star_pattern_rule(Parser *p)
6903{
6904 D(p->level++);
6905 if (p->error_indicator) {
6906 D(p->level--);
6907 return NULL;
6908 }
6909 KeyValuePair* _res = NULL;
6910 int _mark = p->mark;
6911 { // '**' capture_pattern
6912 if (p->error_indicator) {
6913 D(p->level--);
6914 return NULL;
6915 }
6916 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6917 Token * _literal;
6918 expr_ty value;
6919 if (
6920 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6921 &&
6922 (value = capture_pattern_rule(p)) // capture_pattern
6923 )
6924 {
6925 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6926 _res = _PyPegen_key_value_pair ( p , NULL , value );
6927 if (_res == NULL && PyErr_Occurred()) {
6928 p->error_indicator = 1;
6929 D(p->level--);
6930 return NULL;
6931 }
6932 goto done;
6933 }
6934 p->mark = _mark;
6935 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6937 }
6938 _res = NULL;
6939 done:
6940 D(p->level--);
6941 return _res;
6942}
6943
6944// class_pattern:
6945// | name_or_attr '(' ')'
6946// | name_or_attr '(' positional_patterns ','? ')'
6947// | name_or_attr '(' keyword_patterns ','? ')'
6948// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6949static expr_ty
6950class_pattern_rule(Parser *p)
6951{
6952 D(p->level++);
6953 if (p->error_indicator) {
6954 D(p->level--);
6955 return NULL;
6956 }
6957 expr_ty _res = NULL;
6958 int _mark = p->mark;
6959 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6960 p->error_indicator = 1;
6961 D(p->level--);
6962 return NULL;
6963 }
6964 int _start_lineno = p->tokens[_mark]->lineno;
6965 UNUSED(_start_lineno); // Only used by EXTRA macro
6966 int _start_col_offset = p->tokens[_mark]->col_offset;
6967 UNUSED(_start_col_offset); // Only used by EXTRA macro
6968 { // name_or_attr '(' ')'
6969 if (p->error_indicator) {
6970 D(p->level--);
6971 return NULL;
6972 }
6973 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6974 Token * _literal;
6975 Token * _literal_1;
6976 expr_ty func;
6977 if (
6978 (func = name_or_attr_rule(p)) // name_or_attr
6979 &&
6980 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6981 &&
6982 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6983 )
6984 {
6985 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6986 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6987 if (_token == NULL) {
6988 D(p->level--);
6989 return NULL;
6990 }
6991 int _end_lineno = _token->end_lineno;
6992 UNUSED(_end_lineno); // Only used by EXTRA macro
6993 int _end_col_offset = _token->end_col_offset;
6994 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006995 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006996 if (_res == NULL && PyErr_Occurred()) {
6997 p->error_indicator = 1;
6998 D(p->level--);
6999 return NULL;
7000 }
7001 goto done;
7002 }
7003 p->mark = _mark;
7004 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7006 }
7007 { // name_or_attr '(' positional_patterns ','? ')'
7008 if (p->error_indicator) {
7009 D(p->level--);
7010 return NULL;
7011 }
7012 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7013 Token * _literal;
7014 Token * _literal_1;
7015 void *_opt_var;
7016 UNUSED(_opt_var); // Silence compiler warnings
7017 asdl_expr_seq* args;
7018 expr_ty func;
7019 if (
7020 (func = name_or_attr_rule(p)) // name_or_attr
7021 &&
7022 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7023 &&
7024 (args = positional_patterns_rule(p)) // positional_patterns
7025 &&
7026 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7027 &&
7028 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7029 )
7030 {
7031 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7033 if (_token == NULL) {
7034 D(p->level--);
7035 return NULL;
7036 }
7037 int _end_lineno = _token->end_lineno;
7038 UNUSED(_end_lineno); // Only used by EXTRA macro
7039 int _end_col_offset = _token->end_col_offset;
7040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007041 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007042 if (_res == NULL && PyErr_Occurred()) {
7043 p->error_indicator = 1;
7044 D(p->level--);
7045 return NULL;
7046 }
7047 goto done;
7048 }
7049 p->mark = _mark;
7050 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7052 }
7053 { // name_or_attr '(' keyword_patterns ','? ')'
7054 if (p->error_indicator) {
7055 D(p->level--);
7056 return NULL;
7057 }
7058 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7059 Token * _literal;
7060 Token * _literal_1;
7061 void *_opt_var;
7062 UNUSED(_opt_var); // Silence compiler warnings
7063 expr_ty func;
7064 asdl_keyword_seq* keywords;
7065 if (
7066 (func = name_or_attr_rule(p)) // name_or_attr
7067 &&
7068 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7069 &&
7070 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7071 &&
7072 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7073 &&
7074 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7075 )
7076 {
7077 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7078 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7079 if (_token == NULL) {
7080 D(p->level--);
7081 return NULL;
7082 }
7083 int _end_lineno = _token->end_lineno;
7084 UNUSED(_end_lineno); // Only used by EXTRA macro
7085 int _end_col_offset = _token->end_col_offset;
7086 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007087 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007088 if (_res == NULL && PyErr_Occurred()) {
7089 p->error_indicator = 1;
7090 D(p->level--);
7091 return NULL;
7092 }
7093 goto done;
7094 }
7095 p->mark = _mark;
7096 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7098 }
7099 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7100 if (p->error_indicator) {
7101 D(p->level--);
7102 return NULL;
7103 }
7104 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7105 Token * _literal;
7106 Token * _literal_1;
7107 Token * _literal_2;
7108 void *_opt_var;
7109 UNUSED(_opt_var); // Silence compiler warnings
7110 asdl_expr_seq* args;
7111 expr_ty func;
7112 asdl_keyword_seq* keywords;
7113 if (
7114 (func = name_or_attr_rule(p)) // name_or_attr
7115 &&
7116 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7117 &&
7118 (args = positional_patterns_rule(p)) // positional_patterns
7119 &&
7120 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7121 &&
7122 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7123 &&
7124 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7125 &&
7126 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7127 )
7128 {
7129 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7131 if (_token == NULL) {
7132 D(p->level--);
7133 return NULL;
7134 }
7135 int _end_lineno = _token->end_lineno;
7136 UNUSED(_end_lineno); // Only used by EXTRA macro
7137 int _end_col_offset = _token->end_col_offset;
7138 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007139 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007140 if (_res == NULL && PyErr_Occurred()) {
7141 p->error_indicator = 1;
7142 D(p->level--);
7143 return NULL;
7144 }
7145 goto done;
7146 }
7147 p->mark = _mark;
7148 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7150 }
7151 _res = NULL;
7152 done:
7153 D(p->level--);
7154 return _res;
7155}
7156
7157// positional_patterns: ','.pattern+
7158static asdl_expr_seq*
7159positional_patterns_rule(Parser *p)
7160{
7161 D(p->level++);
7162 if (p->error_indicator) {
7163 D(p->level--);
7164 return NULL;
7165 }
7166 asdl_expr_seq* _res = NULL;
7167 int _mark = p->mark;
7168 { // ','.pattern+
7169 if (p->error_indicator) {
7170 D(p->level--);
7171 return NULL;
7172 }
7173 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7174 asdl_expr_seq* args;
7175 if (
7176 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7177 )
7178 {
7179 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7180 _res = args;
7181 if (_res == NULL && PyErr_Occurred()) {
7182 p->error_indicator = 1;
7183 D(p->level--);
7184 return NULL;
7185 }
7186 goto done;
7187 }
7188 p->mark = _mark;
7189 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7191 }
7192 _res = NULL;
7193 done:
7194 D(p->level--);
7195 return _res;
7196}
7197
7198// keyword_patterns: ','.keyword_pattern+
7199static asdl_keyword_seq*
7200keyword_patterns_rule(Parser *p)
7201{
7202 D(p->level++);
7203 if (p->error_indicator) {
7204 D(p->level--);
7205 return NULL;
7206 }
7207 asdl_keyword_seq* _res = NULL;
7208 int _mark = p->mark;
7209 { // ','.keyword_pattern+
7210 if (p->error_indicator) {
7211 D(p->level--);
7212 return NULL;
7213 }
7214 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7215 asdl_keyword_seq* keywords;
7216 if (
7217 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7218 )
7219 {
7220 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7221 _res = keywords;
7222 if (_res == NULL && PyErr_Occurred()) {
7223 p->error_indicator = 1;
7224 D(p->level--);
7225 return NULL;
7226 }
7227 goto done;
7228 }
7229 p->mark = _mark;
7230 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7232 }
7233 _res = NULL;
7234 done:
7235 D(p->level--);
7236 return _res;
7237}
7238
7239// keyword_pattern: NAME '=' pattern
7240static keyword_ty
7241keyword_pattern_rule(Parser *p)
7242{
7243 D(p->level++);
7244 if (p->error_indicator) {
7245 D(p->level--);
7246 return NULL;
7247 }
7248 keyword_ty _res = NULL;
7249 int _mark = p->mark;
7250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7251 p->error_indicator = 1;
7252 D(p->level--);
7253 return NULL;
7254 }
7255 int _start_lineno = p->tokens[_mark]->lineno;
7256 UNUSED(_start_lineno); // Only used by EXTRA macro
7257 int _start_col_offset = p->tokens[_mark]->col_offset;
7258 UNUSED(_start_col_offset); // Only used by EXTRA macro
7259 { // NAME '=' pattern
7260 if (p->error_indicator) {
7261 D(p->level--);
7262 return NULL;
7263 }
7264 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7265 Token * _literal;
7266 expr_ty arg;
7267 expr_ty value;
7268 if (
7269 (arg = _PyPegen_name_token(p)) // NAME
7270 &&
7271 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7272 &&
7273 (value = pattern_rule(p)) // pattern
7274 )
7275 {
7276 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7278 if (_token == NULL) {
7279 D(p->level--);
7280 return NULL;
7281 }
7282 int _end_lineno = _token->end_lineno;
7283 UNUSED(_end_lineno); // Only used by EXTRA macro
7284 int _end_col_offset = _token->end_col_offset;
7285 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007286 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007287 if (_res == NULL && PyErr_Occurred()) {
7288 p->error_indicator = 1;
7289 D(p->level--);
7290 return NULL;
7291 }
7292 goto done;
7293 }
7294 p->mark = _mark;
7295 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7297 }
7298 _res = NULL;
7299 done:
7300 D(p->level--);
7301 return _res;
7302}
7303
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007304// return_stmt: 'return' star_expressions?
7305static stmt_ty
7306return_stmt_rule(Parser *p)
7307{
7308 D(p->level++);
7309 if (p->error_indicator) {
7310 D(p->level--);
7311 return NULL;
7312 }
7313 stmt_ty _res = NULL;
7314 int _mark = p->mark;
7315 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7316 p->error_indicator = 1;
7317 D(p->level--);
7318 return NULL;
7319 }
7320 int _start_lineno = p->tokens[_mark]->lineno;
7321 UNUSED(_start_lineno); // Only used by EXTRA macro
7322 int _start_col_offset = p->tokens[_mark]->col_offset;
7323 UNUSED(_start_col_offset); // Only used by EXTRA macro
7324 { // 'return' star_expressions?
7325 if (p->error_indicator) {
7326 D(p->level--);
7327 return NULL;
7328 }
7329 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7330 Token * _keyword;
7331 void *a;
7332 if (
7333 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7334 &&
7335 (a = star_expressions_rule(p), 1) // star_expressions?
7336 )
7337 {
7338 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7340 if (_token == NULL) {
7341 D(p->level--);
7342 return NULL;
7343 }
7344 int _end_lineno = _token->end_lineno;
7345 UNUSED(_end_lineno); // Only used by EXTRA macro
7346 int _end_col_offset = _token->end_col_offset;
7347 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007348 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007349 if (_res == NULL && PyErr_Occurred()) {
7350 p->error_indicator = 1;
7351 D(p->level--);
7352 return NULL;
7353 }
7354 goto done;
7355 }
7356 p->mark = _mark;
7357 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7359 }
7360 _res = NULL;
7361 done:
7362 D(p->level--);
7363 return _res;
7364}
7365
7366// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7367static stmt_ty
7368raise_stmt_rule(Parser *p)
7369{
7370 D(p->level++);
7371 if (p->error_indicator) {
7372 D(p->level--);
7373 return NULL;
7374 }
7375 stmt_ty _res = NULL;
7376 int _mark = p->mark;
7377 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7378 p->error_indicator = 1;
7379 D(p->level--);
7380 return NULL;
7381 }
7382 int _start_lineno = p->tokens[_mark]->lineno;
7383 UNUSED(_start_lineno); // Only used by EXTRA macro
7384 int _start_col_offset = p->tokens[_mark]->col_offset;
7385 UNUSED(_start_col_offset); // Only used by EXTRA macro
7386 { // 'raise' expression ['from' expression]
7387 if (p->error_indicator) {
7388 D(p->level--);
7389 return NULL;
7390 }
7391 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7392 Token * _keyword;
7393 expr_ty a;
7394 void *b;
7395 if (
7396 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7397 &&
7398 (a = expression_rule(p)) // expression
7399 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007400 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007401 )
7402 {
7403 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7405 if (_token == NULL) {
7406 D(p->level--);
7407 return NULL;
7408 }
7409 int _end_lineno = _token->end_lineno;
7410 UNUSED(_end_lineno); // Only used by EXTRA macro
7411 int _end_col_offset = _token->end_col_offset;
7412 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007413 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007414 if (_res == NULL && PyErr_Occurred()) {
7415 p->error_indicator = 1;
7416 D(p->level--);
7417 return NULL;
7418 }
7419 goto done;
7420 }
7421 p->mark = _mark;
7422 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7424 }
7425 { // 'raise'
7426 if (p->error_indicator) {
7427 D(p->level--);
7428 return NULL;
7429 }
7430 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7431 Token * _keyword;
7432 if (
7433 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7434 )
7435 {
7436 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7438 if (_token == NULL) {
7439 D(p->level--);
7440 return NULL;
7441 }
7442 int _end_lineno = _token->end_lineno;
7443 UNUSED(_end_lineno); // Only used by EXTRA macro
7444 int _end_col_offset = _token->end_col_offset;
7445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007446 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007447 if (_res == NULL && PyErr_Occurred()) {
7448 p->error_indicator = 1;
7449 D(p->level--);
7450 return NULL;
7451 }
7452 goto done;
7453 }
7454 p->mark = _mark;
7455 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7457 }
7458 _res = NULL;
7459 done:
7460 D(p->level--);
7461 return _res;
7462}
7463
7464// function_def: decorators function_def_raw | function_def_raw
7465static stmt_ty
7466function_def_rule(Parser *p)
7467{
7468 D(p->level++);
7469 if (p->error_indicator) {
7470 D(p->level--);
7471 return NULL;
7472 }
7473 stmt_ty _res = NULL;
7474 int _mark = p->mark;
7475 { // decorators function_def_raw
7476 if (p->error_indicator) {
7477 D(p->level--);
7478 return NULL;
7479 }
7480 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 +01007481 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007482 stmt_ty f;
7483 if (
7484 (d = decorators_rule(p)) // decorators
7485 &&
7486 (f = function_def_raw_rule(p)) // function_def_raw
7487 )
7488 {
7489 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7490 _res = _PyPegen_function_def_decorators ( p , d , f );
7491 if (_res == NULL && PyErr_Occurred()) {
7492 p->error_indicator = 1;
7493 D(p->level--);
7494 return NULL;
7495 }
7496 goto done;
7497 }
7498 p->mark = _mark;
7499 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7501 }
7502 { // function_def_raw
7503 if (p->error_indicator) {
7504 D(p->level--);
7505 return NULL;
7506 }
7507 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7508 stmt_ty function_def_raw_var;
7509 if (
7510 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7511 )
7512 {
7513 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7514 _res = function_def_raw_var;
7515 goto done;
7516 }
7517 p->mark = _mark;
7518 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7520 }
7521 _res = NULL;
7522 done:
7523 D(p->level--);
7524 return _res;
7525}
7526
7527// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007528// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7529// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007530static stmt_ty
7531function_def_raw_rule(Parser *p)
7532{
7533 D(p->level++);
7534 if (p->error_indicator) {
7535 D(p->level--);
7536 return NULL;
7537 }
7538 stmt_ty _res = NULL;
7539 int _mark = p->mark;
7540 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7541 p->error_indicator = 1;
7542 D(p->level--);
7543 return NULL;
7544 }
7545 int _start_lineno = p->tokens[_mark]->lineno;
7546 UNUSED(_start_lineno); // Only used by EXTRA macro
7547 int _start_col_offset = p->tokens[_mark]->col_offset;
7548 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007549 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007550 if (p->error_indicator) {
7551 D(p->level--);
7552 return NULL;
7553 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007554 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 +01007555 Token * _keyword;
7556 Token * _literal;
7557 Token * _literal_1;
7558 Token * _literal_2;
7559 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007560 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007561 expr_ty n;
7562 void *params;
7563 void *tc;
7564 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007565 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007566 &&
7567 (n = _PyPegen_name_token(p)) // NAME
7568 &&
7569 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7570 &&
7571 (params = params_rule(p), 1) // params?
7572 &&
7573 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7574 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007575 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007576 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007577 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007578 &&
7579 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7580 &&
7581 (b = block_rule(p)) // block
7582 )
7583 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007584 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 +01007585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7586 if (_token == NULL) {
7587 D(p->level--);
7588 return NULL;
7589 }
7590 int _end_lineno = _token->end_lineno;
7591 UNUSED(_end_lineno); // Only used by EXTRA macro
7592 int _end_col_offset = _token->end_col_offset;
7593 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007594 _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 +01007595 if (_res == NULL && PyErr_Occurred()) {
7596 p->error_indicator = 1;
7597 D(p->level--);
7598 return NULL;
7599 }
7600 goto done;
7601 }
7602 p->mark = _mark;
7603 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007605 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007606 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007607 if (p->error_indicator) {
7608 D(p->level--);
7609 return NULL;
7610 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007611 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 +01007612 Token * _keyword;
7613 Token * _literal;
7614 Token * _literal_1;
7615 Token * _literal_2;
7616 void *a;
7617 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007618 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007619 expr_ty n;
7620 void *params;
7621 void *tc;
7622 if (
7623 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7624 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007625 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007626 &&
7627 (n = _PyPegen_name_token(p)) // NAME
7628 &&
7629 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7630 &&
7631 (params = params_rule(p), 1) // params?
7632 &&
7633 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7634 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007635 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007636 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007637 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007638 &&
7639 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7640 &&
7641 (b = block_rule(p)) // block
7642 )
7643 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007644 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 +01007645 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7646 if (_token == NULL) {
7647 D(p->level--);
7648 return NULL;
7649 }
7650 int _end_lineno = _token->end_lineno;
7651 UNUSED(_end_lineno); // Only used by EXTRA macro
7652 int _end_col_offset = _token->end_col_offset;
7653 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007654 _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 +01007655 if (_res == NULL && PyErr_Occurred()) {
7656 p->error_indicator = 1;
7657 D(p->level--);
7658 return NULL;
7659 }
7660 goto done;
7661 }
7662 p->mark = _mark;
7663 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007665 }
7666 _res = NULL;
7667 done:
7668 D(p->level--);
7669 return _res;
7670}
7671
7672// func_type_comment:
7673// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7674// | invalid_double_type_comments
7675// | TYPE_COMMENT
7676static Token*
7677func_type_comment_rule(Parser *p)
7678{
7679 D(p->level++);
7680 if (p->error_indicator) {
7681 D(p->level--);
7682 return NULL;
7683 }
7684 Token* _res = NULL;
7685 int _mark = p->mark;
7686 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7687 if (p->error_indicator) {
7688 D(p->level--);
7689 return NULL;
7690 }
7691 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7692 Token * newline_var;
7693 Token * t;
7694 if (
7695 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7696 &&
7697 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7698 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007699 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007700 )
7701 {
7702 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7703 _res = t;
7704 if (_res == NULL && PyErr_Occurred()) {
7705 p->error_indicator = 1;
7706 D(p->level--);
7707 return NULL;
7708 }
7709 goto done;
7710 }
7711 p->mark = _mark;
7712 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7714 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007715 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007716 if (p->error_indicator) {
7717 D(p->level--);
7718 return NULL;
7719 }
7720 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7721 void *invalid_double_type_comments_var;
7722 if (
7723 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7724 )
7725 {
7726 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7727 _res = invalid_double_type_comments_var;
7728 goto done;
7729 }
7730 p->mark = _mark;
7731 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7733 }
7734 { // TYPE_COMMENT
7735 if (p->error_indicator) {
7736 D(p->level--);
7737 return NULL;
7738 }
7739 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7740 Token * type_comment_var;
7741 if (
7742 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7743 )
7744 {
7745 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7746 _res = type_comment_var;
7747 goto done;
7748 }
7749 p->mark = _mark;
7750 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7752 }
7753 _res = NULL;
7754 done:
7755 D(p->level--);
7756 return _res;
7757}
7758
7759// params: invalid_parameters | parameters
7760static arguments_ty
7761params_rule(Parser *p)
7762{
7763 D(p->level++);
7764 if (p->error_indicator) {
7765 D(p->level--);
7766 return NULL;
7767 }
7768 arguments_ty _res = NULL;
7769 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007770 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007771 if (p->error_indicator) {
7772 D(p->level--);
7773 return NULL;
7774 }
7775 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7776 void *invalid_parameters_var;
7777 if (
7778 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7779 )
7780 {
7781 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7782 _res = invalid_parameters_var;
7783 goto done;
7784 }
7785 p->mark = _mark;
7786 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7788 }
7789 { // parameters
7790 if (p->error_indicator) {
7791 D(p->level--);
7792 return NULL;
7793 }
7794 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7795 arguments_ty parameters_var;
7796 if (
7797 (parameters_var = parameters_rule(p)) // parameters
7798 )
7799 {
7800 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7801 _res = parameters_var;
7802 goto done;
7803 }
7804 p->mark = _mark;
7805 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7807 }
7808 _res = NULL;
7809 done:
7810 D(p->level--);
7811 return _res;
7812}
7813
7814// parameters:
7815// | slash_no_default param_no_default* param_with_default* star_etc?
7816// | slash_with_default param_with_default* star_etc?
7817// | param_no_default+ param_with_default* star_etc?
7818// | param_with_default+ star_etc?
7819// | star_etc
7820static arguments_ty
7821parameters_rule(Parser *p)
7822{
7823 D(p->level++);
7824 if (p->error_indicator) {
7825 D(p->level--);
7826 return NULL;
7827 }
7828 arguments_ty _res = NULL;
7829 int _mark = p->mark;
7830 { // slash_no_default param_no_default* param_with_default* star_etc?
7831 if (p->error_indicator) {
7832 D(p->level--);
7833 return NULL;
7834 }
7835 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 +01007836 asdl_arg_seq* a;
7837 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007838 asdl_seq * c;
7839 void *d;
7840 if (
7841 (a = slash_no_default_rule(p)) // slash_no_default
7842 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007843 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007844 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007845 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007846 &&
7847 (d = star_etc_rule(p), 1) // star_etc?
7848 )
7849 {
7850 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?"));
7851 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7852 if (_res == NULL && PyErr_Occurred()) {
7853 p->error_indicator = 1;
7854 D(p->level--);
7855 return NULL;
7856 }
7857 goto done;
7858 }
7859 p->mark = _mark;
7860 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7862 }
7863 { // slash_with_default param_with_default* star_etc?
7864 if (p->error_indicator) {
7865 D(p->level--);
7866 return NULL;
7867 }
7868 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7869 SlashWithDefault* a;
7870 asdl_seq * b;
7871 void *c;
7872 if (
7873 (a = slash_with_default_rule(p)) // slash_with_default
7874 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007875 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007876 &&
7877 (c = star_etc_rule(p), 1) // star_etc?
7878 )
7879 {
7880 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7881 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7882 if (_res == NULL && PyErr_Occurred()) {
7883 p->error_indicator = 1;
7884 D(p->level--);
7885 return NULL;
7886 }
7887 goto done;
7888 }
7889 p->mark = _mark;
7890 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7892 }
7893 { // param_no_default+ param_with_default* star_etc?
7894 if (p->error_indicator) {
7895 D(p->level--);
7896 return NULL;
7897 }
7898 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 +01007899 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007900 asdl_seq * b;
7901 void *c;
7902 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007903 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007904 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007905 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007906 &&
7907 (c = star_etc_rule(p), 1) // star_etc?
7908 )
7909 {
7910 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7911 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7912 if (_res == NULL && PyErr_Occurred()) {
7913 p->error_indicator = 1;
7914 D(p->level--);
7915 return NULL;
7916 }
7917 goto done;
7918 }
7919 p->mark = _mark;
7920 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7922 }
7923 { // param_with_default+ star_etc?
7924 if (p->error_indicator) {
7925 D(p->level--);
7926 return NULL;
7927 }
7928 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7929 asdl_seq * a;
7930 void *b;
7931 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007932 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007933 &&
7934 (b = star_etc_rule(p), 1) // star_etc?
7935 )
7936 {
7937 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7938 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7939 if (_res == NULL && PyErr_Occurred()) {
7940 p->error_indicator = 1;
7941 D(p->level--);
7942 return NULL;
7943 }
7944 goto done;
7945 }
7946 p->mark = _mark;
7947 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7949 }
7950 { // star_etc
7951 if (p->error_indicator) {
7952 D(p->level--);
7953 return NULL;
7954 }
7955 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7956 StarEtc* a;
7957 if (
7958 (a = star_etc_rule(p)) // star_etc
7959 )
7960 {
7961 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7962 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7963 if (_res == NULL && PyErr_Occurred()) {
7964 p->error_indicator = 1;
7965 D(p->level--);
7966 return NULL;
7967 }
7968 goto done;
7969 }
7970 p->mark = _mark;
7971 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7973 }
7974 _res = NULL;
7975 done:
7976 D(p->level--);
7977 return _res;
7978}
7979
7980// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007981static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007982slash_no_default_rule(Parser *p)
7983{
7984 D(p->level++);
7985 if (p->error_indicator) {
7986 D(p->level--);
7987 return NULL;
7988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007989 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007990 int _mark = p->mark;
7991 { // param_no_default+ '/' ','
7992 if (p->error_indicator) {
7993 D(p->level--);
7994 return NULL;
7995 }
7996 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7997 Token * _literal;
7998 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007999 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008000 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008001 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008002 &&
8003 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8004 &&
8005 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8006 )
8007 {
8008 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8009 _res = a;
8010 if (_res == NULL && PyErr_Occurred()) {
8011 p->error_indicator = 1;
8012 D(p->level--);
8013 return NULL;
8014 }
8015 goto done;
8016 }
8017 p->mark = _mark;
8018 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8020 }
8021 { // param_no_default+ '/' &')'
8022 if (p->error_indicator) {
8023 D(p->level--);
8024 return NULL;
8025 }
8026 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8027 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008028 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008029 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008030 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008031 &&
8032 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8033 &&
8034 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8035 )
8036 {
8037 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8038 _res = a;
8039 if (_res == NULL && PyErr_Occurred()) {
8040 p->error_indicator = 1;
8041 D(p->level--);
8042 return NULL;
8043 }
8044 goto done;
8045 }
8046 p->mark = _mark;
8047 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8049 }
8050 _res = NULL;
8051 done:
8052 D(p->level--);
8053 return _res;
8054}
8055
8056// slash_with_default:
8057// | param_no_default* param_with_default+ '/' ','
8058// | param_no_default* param_with_default+ '/' &')'
8059static SlashWithDefault*
8060slash_with_default_rule(Parser *p)
8061{
8062 D(p->level++);
8063 if (p->error_indicator) {
8064 D(p->level--);
8065 return NULL;
8066 }
8067 SlashWithDefault* _res = NULL;
8068 int _mark = p->mark;
8069 { // param_no_default* param_with_default+ '/' ','
8070 if (p->error_indicator) {
8071 D(p->level--);
8072 return NULL;
8073 }
8074 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8075 Token * _literal;
8076 Token * _literal_1;
8077 asdl_seq * a;
8078 asdl_seq * b;
8079 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008080 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008081 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008082 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008083 &&
8084 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8085 &&
8086 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8087 )
8088 {
8089 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 +01008090 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008091 if (_res == NULL && PyErr_Occurred()) {
8092 p->error_indicator = 1;
8093 D(p->level--);
8094 return NULL;
8095 }
8096 goto done;
8097 }
8098 p->mark = _mark;
8099 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8101 }
8102 { // param_no_default* param_with_default+ '/' &')'
8103 if (p->error_indicator) {
8104 D(p->level--);
8105 return NULL;
8106 }
8107 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8108 Token * _literal;
8109 asdl_seq * a;
8110 asdl_seq * b;
8111 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008112 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008113 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008114 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008115 &&
8116 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8117 &&
8118 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8119 )
8120 {
8121 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 +01008122 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008123 if (_res == NULL && PyErr_Occurred()) {
8124 p->error_indicator = 1;
8125 D(p->level--);
8126 return NULL;
8127 }
8128 goto done;
8129 }
8130 p->mark = _mark;
8131 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8133 }
8134 _res = NULL;
8135 done:
8136 D(p->level--);
8137 return _res;
8138}
8139
8140// star_etc:
8141// | '*' param_no_default param_maybe_default* kwds?
8142// | '*' ',' param_maybe_default+ kwds?
8143// | kwds
8144// | invalid_star_etc
8145static StarEtc*
8146star_etc_rule(Parser *p)
8147{
8148 D(p->level++);
8149 if (p->error_indicator) {
8150 D(p->level--);
8151 return NULL;
8152 }
8153 StarEtc* _res = NULL;
8154 int _mark = p->mark;
8155 { // '*' param_no_default param_maybe_default* kwds?
8156 if (p->error_indicator) {
8157 D(p->level--);
8158 return NULL;
8159 }
8160 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8161 Token * _literal;
8162 arg_ty a;
8163 asdl_seq * b;
8164 void *c;
8165 if (
8166 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8167 &&
8168 (a = param_no_default_rule(p)) // param_no_default
8169 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008170 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008171 &&
8172 (c = kwds_rule(p), 1) // kwds?
8173 )
8174 {
8175 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8176 _res = _PyPegen_star_etc ( p , a , b , c );
8177 if (_res == NULL && PyErr_Occurred()) {
8178 p->error_indicator = 1;
8179 D(p->level--);
8180 return NULL;
8181 }
8182 goto done;
8183 }
8184 p->mark = _mark;
8185 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8187 }
8188 { // '*' ',' param_maybe_default+ kwds?
8189 if (p->error_indicator) {
8190 D(p->level--);
8191 return NULL;
8192 }
8193 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8194 Token * _literal;
8195 Token * _literal_1;
8196 asdl_seq * b;
8197 void *c;
8198 if (
8199 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8200 &&
8201 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8202 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008203 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008204 &&
8205 (c = kwds_rule(p), 1) // kwds?
8206 )
8207 {
8208 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8209 _res = _PyPegen_star_etc ( p , NULL , b , c );
8210 if (_res == NULL && PyErr_Occurred()) {
8211 p->error_indicator = 1;
8212 D(p->level--);
8213 return NULL;
8214 }
8215 goto done;
8216 }
8217 p->mark = _mark;
8218 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8220 }
8221 { // kwds
8222 if (p->error_indicator) {
8223 D(p->level--);
8224 return NULL;
8225 }
8226 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8227 arg_ty a;
8228 if (
8229 (a = kwds_rule(p)) // kwds
8230 )
8231 {
8232 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8233 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8234 if (_res == NULL && PyErr_Occurred()) {
8235 p->error_indicator = 1;
8236 D(p->level--);
8237 return NULL;
8238 }
8239 goto done;
8240 }
8241 p->mark = _mark;
8242 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8244 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008245 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008246 if (p->error_indicator) {
8247 D(p->level--);
8248 return NULL;
8249 }
8250 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8251 void *invalid_star_etc_var;
8252 if (
8253 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8254 )
8255 {
8256 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8257 _res = invalid_star_etc_var;
8258 goto done;
8259 }
8260 p->mark = _mark;
8261 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8263 }
8264 _res = NULL;
8265 done:
8266 D(p->level--);
8267 return _res;
8268}
8269
8270// kwds: '**' param_no_default
8271static arg_ty
8272kwds_rule(Parser *p)
8273{
8274 D(p->level++);
8275 if (p->error_indicator) {
8276 D(p->level--);
8277 return NULL;
8278 }
8279 arg_ty _res = NULL;
8280 int _mark = p->mark;
8281 { // '**' param_no_default
8282 if (p->error_indicator) {
8283 D(p->level--);
8284 return NULL;
8285 }
8286 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8287 Token * _literal;
8288 arg_ty a;
8289 if (
8290 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8291 &&
8292 (a = param_no_default_rule(p)) // param_no_default
8293 )
8294 {
8295 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8296 _res = a;
8297 if (_res == NULL && PyErr_Occurred()) {
8298 p->error_indicator = 1;
8299 D(p->level--);
8300 return NULL;
8301 }
8302 goto done;
8303 }
8304 p->mark = _mark;
8305 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8307 }
8308 _res = NULL;
8309 done:
8310 D(p->level--);
8311 return _res;
8312}
8313
8314// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8315static arg_ty
8316param_no_default_rule(Parser *p)
8317{
8318 D(p->level++);
8319 if (p->error_indicator) {
8320 D(p->level--);
8321 return NULL;
8322 }
8323 arg_ty _res = NULL;
8324 int _mark = p->mark;
8325 { // param ',' TYPE_COMMENT?
8326 if (p->error_indicator) {
8327 D(p->level--);
8328 return NULL;
8329 }
8330 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8331 Token * _literal;
8332 arg_ty a;
8333 void *tc;
8334 if (
8335 (a = param_rule(p)) // param
8336 &&
8337 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8338 &&
8339 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8340 )
8341 {
8342 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8343 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8344 if (_res == NULL && PyErr_Occurred()) {
8345 p->error_indicator = 1;
8346 D(p->level--);
8347 return NULL;
8348 }
8349 goto done;
8350 }
8351 p->mark = _mark;
8352 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8354 }
8355 { // param TYPE_COMMENT? &')'
8356 if (p->error_indicator) {
8357 D(p->level--);
8358 return NULL;
8359 }
8360 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8361 arg_ty a;
8362 void *tc;
8363 if (
8364 (a = param_rule(p)) // param
8365 &&
8366 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8367 &&
8368 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8369 )
8370 {
8371 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8372 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8373 if (_res == NULL && PyErr_Occurred()) {
8374 p->error_indicator = 1;
8375 D(p->level--);
8376 return NULL;
8377 }
8378 goto done;
8379 }
8380 p->mark = _mark;
8381 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8383 }
8384 _res = NULL;
8385 done:
8386 D(p->level--);
8387 return _res;
8388}
8389
8390// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8391static NameDefaultPair*
8392param_with_default_rule(Parser *p)
8393{
8394 D(p->level++);
8395 if (p->error_indicator) {
8396 D(p->level--);
8397 return NULL;
8398 }
8399 NameDefaultPair* _res = NULL;
8400 int _mark = p->mark;
8401 { // param default ',' TYPE_COMMENT?
8402 if (p->error_indicator) {
8403 D(p->level--);
8404 return NULL;
8405 }
8406 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8407 Token * _literal;
8408 arg_ty a;
8409 expr_ty c;
8410 void *tc;
8411 if (
8412 (a = param_rule(p)) // param
8413 &&
8414 (c = default_rule(p)) // default
8415 &&
8416 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8417 &&
8418 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8419 )
8420 {
8421 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8422 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8423 if (_res == NULL && PyErr_Occurred()) {
8424 p->error_indicator = 1;
8425 D(p->level--);
8426 return NULL;
8427 }
8428 goto done;
8429 }
8430 p->mark = _mark;
8431 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8433 }
8434 { // param default TYPE_COMMENT? &')'
8435 if (p->error_indicator) {
8436 D(p->level--);
8437 return NULL;
8438 }
8439 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8440 arg_ty a;
8441 expr_ty c;
8442 void *tc;
8443 if (
8444 (a = param_rule(p)) // param
8445 &&
8446 (c = default_rule(p)) // default
8447 &&
8448 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8449 &&
8450 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8451 )
8452 {
8453 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8454 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8455 if (_res == NULL && PyErr_Occurred()) {
8456 p->error_indicator = 1;
8457 D(p->level--);
8458 return NULL;
8459 }
8460 goto done;
8461 }
8462 p->mark = _mark;
8463 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8465 }
8466 _res = NULL;
8467 done:
8468 D(p->level--);
8469 return _res;
8470}
8471
8472// param_maybe_default:
8473// | param default? ',' TYPE_COMMENT?
8474// | param default? TYPE_COMMENT? &')'
8475static NameDefaultPair*
8476param_maybe_default_rule(Parser *p)
8477{
8478 D(p->level++);
8479 if (p->error_indicator) {
8480 D(p->level--);
8481 return NULL;
8482 }
8483 NameDefaultPair* _res = NULL;
8484 int _mark = p->mark;
8485 { // param default? ',' TYPE_COMMENT?
8486 if (p->error_indicator) {
8487 D(p->level--);
8488 return NULL;
8489 }
8490 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8491 Token * _literal;
8492 arg_ty a;
8493 void *c;
8494 void *tc;
8495 if (
8496 (a = param_rule(p)) // param
8497 &&
8498 (c = default_rule(p), 1) // default?
8499 &&
8500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8501 &&
8502 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8503 )
8504 {
8505 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8506 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8507 if (_res == NULL && PyErr_Occurred()) {
8508 p->error_indicator = 1;
8509 D(p->level--);
8510 return NULL;
8511 }
8512 goto done;
8513 }
8514 p->mark = _mark;
8515 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8517 }
8518 { // param default? TYPE_COMMENT? &')'
8519 if (p->error_indicator) {
8520 D(p->level--);
8521 return NULL;
8522 }
8523 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8524 arg_ty a;
8525 void *c;
8526 void *tc;
8527 if (
8528 (a = param_rule(p)) // param
8529 &&
8530 (c = default_rule(p), 1) // default?
8531 &&
8532 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8533 &&
8534 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8535 )
8536 {
8537 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8538 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8539 if (_res == NULL && PyErr_Occurred()) {
8540 p->error_indicator = 1;
8541 D(p->level--);
8542 return NULL;
8543 }
8544 goto done;
8545 }
8546 p->mark = _mark;
8547 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8549 }
8550 _res = NULL;
8551 done:
8552 D(p->level--);
8553 return _res;
8554}
8555
8556// param: NAME annotation?
8557static arg_ty
8558param_rule(Parser *p)
8559{
8560 D(p->level++);
8561 if (p->error_indicator) {
8562 D(p->level--);
8563 return NULL;
8564 }
8565 arg_ty _res = NULL;
8566 int _mark = p->mark;
8567 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8568 p->error_indicator = 1;
8569 D(p->level--);
8570 return NULL;
8571 }
8572 int _start_lineno = p->tokens[_mark]->lineno;
8573 UNUSED(_start_lineno); // Only used by EXTRA macro
8574 int _start_col_offset = p->tokens[_mark]->col_offset;
8575 UNUSED(_start_col_offset); // Only used by EXTRA macro
8576 { // NAME annotation?
8577 if (p->error_indicator) {
8578 D(p->level--);
8579 return NULL;
8580 }
8581 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8582 expr_ty a;
8583 void *b;
8584 if (
8585 (a = _PyPegen_name_token(p)) // NAME
8586 &&
8587 (b = annotation_rule(p), 1) // annotation?
8588 )
8589 {
8590 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8591 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8592 if (_token == NULL) {
8593 D(p->level--);
8594 return NULL;
8595 }
8596 int _end_lineno = _token->end_lineno;
8597 UNUSED(_end_lineno); // Only used by EXTRA macro
8598 int _end_col_offset = _token->end_col_offset;
8599 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008600 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008601 if (_res == NULL && PyErr_Occurred()) {
8602 p->error_indicator = 1;
8603 D(p->level--);
8604 return NULL;
8605 }
8606 goto done;
8607 }
8608 p->mark = _mark;
8609 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8611 }
8612 _res = NULL;
8613 done:
8614 D(p->level--);
8615 return _res;
8616}
8617
8618// annotation: ':' expression
8619static expr_ty
8620annotation_rule(Parser *p)
8621{
8622 D(p->level++);
8623 if (p->error_indicator) {
8624 D(p->level--);
8625 return NULL;
8626 }
8627 expr_ty _res = NULL;
8628 int _mark = p->mark;
8629 { // ':' expression
8630 if (p->error_indicator) {
8631 D(p->level--);
8632 return NULL;
8633 }
8634 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8635 Token * _literal;
8636 expr_ty a;
8637 if (
8638 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8639 &&
8640 (a = expression_rule(p)) // expression
8641 )
8642 {
8643 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8644 _res = a;
8645 if (_res == NULL && PyErr_Occurred()) {
8646 p->error_indicator = 1;
8647 D(p->level--);
8648 return NULL;
8649 }
8650 goto done;
8651 }
8652 p->mark = _mark;
8653 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8655 }
8656 _res = NULL;
8657 done:
8658 D(p->level--);
8659 return _res;
8660}
8661
8662// default: '=' expression
8663static expr_ty
8664default_rule(Parser *p)
8665{
8666 D(p->level++);
8667 if (p->error_indicator) {
8668 D(p->level--);
8669 return NULL;
8670 }
8671 expr_ty _res = NULL;
8672 int _mark = p->mark;
8673 { // '=' expression
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8679 Token * _literal;
8680 expr_ty a;
8681 if (
8682 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8683 &&
8684 (a = expression_rule(p)) // expression
8685 )
8686 {
8687 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8688 _res = a;
8689 if (_res == NULL && PyErr_Occurred()) {
8690 p->error_indicator = 1;
8691 D(p->level--);
8692 return NULL;
8693 }
8694 goto done;
8695 }
8696 p->mark = _mark;
8697 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8699 }
8700 _res = NULL;
8701 done:
8702 D(p->level--);
8703 return _res;
8704}
8705
8706// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008707static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008708decorators_rule(Parser *p)
8709{
8710 D(p->level++);
8711 if (p->error_indicator) {
8712 D(p->level--);
8713 return NULL;
8714 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008715 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008716 int _mark = p->mark;
8717 { // (('@' named_expression NEWLINE))+
8718 if (p->error_indicator) {
8719 D(p->level--);
8720 return NULL;
8721 }
8722 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008723 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008724 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008725 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008726 )
8727 {
8728 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8729 _res = a;
8730 if (_res == NULL && PyErr_Occurred()) {
8731 p->error_indicator = 1;
8732 D(p->level--);
8733 return NULL;
8734 }
8735 goto done;
8736 }
8737 p->mark = _mark;
8738 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8740 }
8741 _res = NULL;
8742 done:
8743 D(p->level--);
8744 return _res;
8745}
8746
8747// class_def: decorators class_def_raw | class_def_raw
8748static stmt_ty
8749class_def_rule(Parser *p)
8750{
8751 D(p->level++);
8752 if (p->error_indicator) {
8753 D(p->level--);
8754 return NULL;
8755 }
8756 stmt_ty _res = NULL;
8757 int _mark = p->mark;
8758 { // decorators class_def_raw
8759 if (p->error_indicator) {
8760 D(p->level--);
8761 return NULL;
8762 }
8763 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 +01008764 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008765 stmt_ty b;
8766 if (
8767 (a = decorators_rule(p)) // decorators
8768 &&
8769 (b = class_def_raw_rule(p)) // class_def_raw
8770 )
8771 {
8772 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8773 _res = _PyPegen_class_def_decorators ( p , a , b );
8774 if (_res == NULL && PyErr_Occurred()) {
8775 p->error_indicator = 1;
8776 D(p->level--);
8777 return NULL;
8778 }
8779 goto done;
8780 }
8781 p->mark = _mark;
8782 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8784 }
8785 { // class_def_raw
8786 if (p->error_indicator) {
8787 D(p->level--);
8788 return NULL;
8789 }
8790 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8791 stmt_ty class_def_raw_var;
8792 if (
8793 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8794 )
8795 {
8796 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8797 _res = class_def_raw_var;
8798 goto done;
8799 }
8800 p->mark = _mark;
8801 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8803 }
8804 _res = NULL;
8805 done:
8806 D(p->level--);
8807 return _res;
8808}
8809
Pablo Galindo58fb1562021-02-02 19:54:22 +00008810// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008811static stmt_ty
8812class_def_raw_rule(Parser *p)
8813{
8814 D(p->level++);
8815 if (p->error_indicator) {
8816 D(p->level--);
8817 return NULL;
8818 }
8819 stmt_ty _res = NULL;
8820 int _mark = p->mark;
8821 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8822 p->error_indicator = 1;
8823 D(p->level--);
8824 return NULL;
8825 }
8826 int _start_lineno = p->tokens[_mark]->lineno;
8827 UNUSED(_start_lineno); // Only used by EXTRA macro
8828 int _start_col_offset = p->tokens[_mark]->col_offset;
8829 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008830 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008831 if (p->error_indicator) {
8832 D(p->level--);
8833 return NULL;
8834 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008835 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 +01008836 Token * _keyword;
8837 Token * _literal;
8838 expr_ty a;
8839 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008840 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008841 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008842 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008843 &&
8844 (a = _PyPegen_name_token(p)) // NAME
8845 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008846 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008847 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008848 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008849 &&
8850 (c = block_rule(p)) // block
8851 )
8852 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008853 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 +01008854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8855 if (_token == NULL) {
8856 D(p->level--);
8857 return NULL;
8858 }
8859 int _end_lineno = _token->end_lineno;
8860 UNUSED(_end_lineno); // Only used by EXTRA macro
8861 int _end_col_offset = _token->end_col_offset;
8862 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008863 _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 +01008864 if (_res == NULL && PyErr_Occurred()) {
8865 p->error_indicator = 1;
8866 D(p->level--);
8867 return NULL;
8868 }
8869 goto done;
8870 }
8871 p->mark = _mark;
8872 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008874 }
8875 _res = NULL;
8876 done:
8877 D(p->level--);
8878 return _res;
8879}
8880
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008881// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008882static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008883block_rule(Parser *p)
8884{
8885 D(p->level++);
8886 if (p->error_indicator) {
8887 D(p->level--);
8888 return NULL;
8889 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008890 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008891 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8892 D(p->level--);
8893 return _res;
8894 }
8895 int _mark = p->mark;
8896 { // NEWLINE INDENT statements DEDENT
8897 if (p->error_indicator) {
8898 D(p->level--);
8899 return NULL;
8900 }
8901 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 +01008902 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008903 Token * dedent_var;
8904 Token * indent_var;
8905 Token * newline_var;
8906 if (
8907 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8908 &&
8909 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8910 &&
8911 (a = statements_rule(p)) // statements
8912 &&
8913 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8914 )
8915 {
8916 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8917 _res = a;
8918 if (_res == NULL && PyErr_Occurred()) {
8919 p->error_indicator = 1;
8920 D(p->level--);
8921 return NULL;
8922 }
8923 goto done;
8924 }
8925 p->mark = _mark;
8926 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8928 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008929 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008930 if (p->error_indicator) {
8931 D(p->level--);
8932 return NULL;
8933 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008934 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8935 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008936 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008937 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008938 )
8939 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008940 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8941 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008942 goto done;
8943 }
8944 p->mark = _mark;
8945 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008947 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008948 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008949 if (p->error_indicator) {
8950 D(p->level--);
8951 return NULL;
8952 }
8953 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8954 void *invalid_block_var;
8955 if (
8956 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8957 )
8958 {
8959 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8960 _res = invalid_block_var;
8961 goto done;
8962 }
8963 p->mark = _mark;
8964 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8966 }
8967 _res = NULL;
8968 done:
8969 _PyPegen_insert_memo(p, _mark, block_type, _res);
8970 D(p->level--);
8971 return _res;
8972}
8973
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008974// star_expressions:
8975// | star_expression ((',' star_expression))+ ','?
8976// | star_expression ','
8977// | star_expression
8978static expr_ty
8979star_expressions_rule(Parser *p)
8980{
8981 D(p->level++);
8982 if (p->error_indicator) {
8983 D(p->level--);
8984 return NULL;
8985 }
8986 expr_ty _res = NULL;
8987 int _mark = p->mark;
8988 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8989 p->error_indicator = 1;
8990 D(p->level--);
8991 return NULL;
8992 }
8993 int _start_lineno = p->tokens[_mark]->lineno;
8994 UNUSED(_start_lineno); // Only used by EXTRA macro
8995 int _start_col_offset = p->tokens[_mark]->col_offset;
8996 UNUSED(_start_col_offset); // Only used by EXTRA macro
8997 { // star_expression ((',' star_expression))+ ','?
8998 if (p->error_indicator) {
8999 D(p->level--);
9000 return NULL;
9001 }
9002 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9003 void *_opt_var;
9004 UNUSED(_opt_var); // Silence compiler warnings
9005 expr_ty a;
9006 asdl_seq * b;
9007 if (
9008 (a = star_expression_rule(p)) // star_expression
9009 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009010 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009011 &&
9012 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9013 )
9014 {
9015 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9017 if (_token == NULL) {
9018 D(p->level--);
9019 return NULL;
9020 }
9021 int _end_lineno = _token->end_lineno;
9022 UNUSED(_end_lineno); // Only used by EXTRA macro
9023 int _end_col_offset = _token->end_col_offset;
9024 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009025 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009026 if (_res == NULL && PyErr_Occurred()) {
9027 p->error_indicator = 1;
9028 D(p->level--);
9029 return NULL;
9030 }
9031 goto done;
9032 }
9033 p->mark = _mark;
9034 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9036 }
9037 { // star_expression ','
9038 if (p->error_indicator) {
9039 D(p->level--);
9040 return NULL;
9041 }
9042 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9043 Token * _literal;
9044 expr_ty a;
9045 if (
9046 (a = star_expression_rule(p)) // star_expression
9047 &&
9048 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9049 )
9050 {
9051 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9053 if (_token == NULL) {
9054 D(p->level--);
9055 return NULL;
9056 }
9057 int _end_lineno = _token->end_lineno;
9058 UNUSED(_end_lineno); // Only used by EXTRA macro
9059 int _end_col_offset = _token->end_col_offset;
9060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009061 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009062 if (_res == NULL && PyErr_Occurred()) {
9063 p->error_indicator = 1;
9064 D(p->level--);
9065 return NULL;
9066 }
9067 goto done;
9068 }
9069 p->mark = _mark;
9070 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9072 }
9073 { // star_expression
9074 if (p->error_indicator) {
9075 D(p->level--);
9076 return NULL;
9077 }
9078 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9079 expr_ty star_expression_var;
9080 if (
9081 (star_expression_var = star_expression_rule(p)) // star_expression
9082 )
9083 {
9084 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9085 _res = star_expression_var;
9086 goto done;
9087 }
9088 p->mark = _mark;
9089 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9091 }
9092 _res = NULL;
9093 done:
9094 D(p->level--);
9095 return _res;
9096}
9097
9098// star_expression: '*' bitwise_or | expression
9099static expr_ty
9100star_expression_rule(Parser *p)
9101{
9102 D(p->level++);
9103 if (p->error_indicator) {
9104 D(p->level--);
9105 return NULL;
9106 }
9107 expr_ty _res = NULL;
9108 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9109 D(p->level--);
9110 return _res;
9111 }
9112 int _mark = p->mark;
9113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9114 p->error_indicator = 1;
9115 D(p->level--);
9116 return NULL;
9117 }
9118 int _start_lineno = p->tokens[_mark]->lineno;
9119 UNUSED(_start_lineno); // Only used by EXTRA macro
9120 int _start_col_offset = p->tokens[_mark]->col_offset;
9121 UNUSED(_start_col_offset); // Only used by EXTRA macro
9122 { // '*' bitwise_or
9123 if (p->error_indicator) {
9124 D(p->level--);
9125 return NULL;
9126 }
9127 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9128 Token * _literal;
9129 expr_ty a;
9130 if (
9131 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9132 &&
9133 (a = bitwise_or_rule(p)) // bitwise_or
9134 )
9135 {
9136 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9138 if (_token == NULL) {
9139 D(p->level--);
9140 return NULL;
9141 }
9142 int _end_lineno = _token->end_lineno;
9143 UNUSED(_end_lineno); // Only used by EXTRA macro
9144 int _end_col_offset = _token->end_col_offset;
9145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009146 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009147 if (_res == NULL && PyErr_Occurred()) {
9148 p->error_indicator = 1;
9149 D(p->level--);
9150 return NULL;
9151 }
9152 goto done;
9153 }
9154 p->mark = _mark;
9155 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9157 }
9158 { // expression
9159 if (p->error_indicator) {
9160 D(p->level--);
9161 return NULL;
9162 }
9163 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9164 expr_ty expression_var;
9165 if (
9166 (expression_var = expression_rule(p)) // expression
9167 )
9168 {
9169 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9170 _res = expression_var;
9171 goto done;
9172 }
9173 p->mark = _mark;
9174 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9176 }
9177 _res = NULL;
9178 done:
9179 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9180 D(p->level--);
9181 return _res;
9182}
9183
9184// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009185static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009186star_named_expressions_rule(Parser *p)
9187{
9188 D(p->level++);
9189 if (p->error_indicator) {
9190 D(p->level--);
9191 return NULL;
9192 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009193 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009194 int _mark = p->mark;
9195 { // ','.star_named_expression+ ','?
9196 if (p->error_indicator) {
9197 D(p->level--);
9198 return NULL;
9199 }
9200 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9201 void *_opt_var;
9202 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009203 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009204 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009205 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009206 &&
9207 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9208 )
9209 {
9210 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9211 _res = a;
9212 if (_res == NULL && PyErr_Occurred()) {
9213 p->error_indicator = 1;
9214 D(p->level--);
9215 return NULL;
9216 }
9217 goto done;
9218 }
9219 p->mark = _mark;
9220 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9222 }
9223 _res = NULL;
9224 done:
9225 D(p->level--);
9226 return _res;
9227}
9228
9229// star_named_expression: '*' bitwise_or | named_expression
9230static expr_ty
9231star_named_expression_rule(Parser *p)
9232{
9233 D(p->level++);
9234 if (p->error_indicator) {
9235 D(p->level--);
9236 return NULL;
9237 }
9238 expr_ty _res = NULL;
9239 int _mark = p->mark;
9240 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9241 p->error_indicator = 1;
9242 D(p->level--);
9243 return NULL;
9244 }
9245 int _start_lineno = p->tokens[_mark]->lineno;
9246 UNUSED(_start_lineno); // Only used by EXTRA macro
9247 int _start_col_offset = p->tokens[_mark]->col_offset;
9248 UNUSED(_start_col_offset); // Only used by EXTRA macro
9249 { // '*' bitwise_or
9250 if (p->error_indicator) {
9251 D(p->level--);
9252 return NULL;
9253 }
9254 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9255 Token * _literal;
9256 expr_ty a;
9257 if (
9258 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9259 &&
9260 (a = bitwise_or_rule(p)) // bitwise_or
9261 )
9262 {
9263 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9264 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9265 if (_token == NULL) {
9266 D(p->level--);
9267 return NULL;
9268 }
9269 int _end_lineno = _token->end_lineno;
9270 UNUSED(_end_lineno); // Only used by EXTRA macro
9271 int _end_col_offset = _token->end_col_offset;
9272 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009273 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009274 if (_res == NULL && PyErr_Occurred()) {
9275 p->error_indicator = 1;
9276 D(p->level--);
9277 return NULL;
9278 }
9279 goto done;
9280 }
9281 p->mark = _mark;
9282 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9284 }
9285 { // named_expression
9286 if (p->error_indicator) {
9287 D(p->level--);
9288 return NULL;
9289 }
9290 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9291 expr_ty named_expression_var;
9292 if (
9293 (named_expression_var = named_expression_rule(p)) // named_expression
9294 )
9295 {
9296 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9297 _res = named_expression_var;
9298 goto done;
9299 }
9300 p->mark = _mark;
9301 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9303 }
9304 _res = NULL;
9305 done:
9306 D(p->level--);
9307 return _res;
9308}
9309
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009310// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009311static expr_ty
9312named_expression_rule(Parser *p)
9313{
9314 D(p->level++);
9315 if (p->error_indicator) {
9316 D(p->level--);
9317 return NULL;
9318 }
9319 expr_ty _res = NULL;
9320 int _mark = p->mark;
9321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9322 p->error_indicator = 1;
9323 D(p->level--);
9324 return NULL;
9325 }
9326 int _start_lineno = p->tokens[_mark]->lineno;
9327 UNUSED(_start_lineno); // Only used by EXTRA macro
9328 int _start_col_offset = p->tokens[_mark]->col_offset;
9329 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009330 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009331 if (p->error_indicator) {
9332 D(p->level--);
9333 return NULL;
9334 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009335 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9336 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009337 Token * _literal;
9338 expr_ty a;
9339 expr_ty b;
9340 if (
9341 (a = _PyPegen_name_token(p)) // NAME
9342 &&
9343 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9344 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009345 (_cut_var = 1)
9346 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009347 (b = expression_rule(p)) // expression
9348 )
9349 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009350 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009351 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9352 if (_token == NULL) {
9353 D(p->level--);
9354 return NULL;
9355 }
9356 int _end_lineno = _token->end_lineno;
9357 UNUSED(_end_lineno); // Only used by EXTRA macro
9358 int _end_col_offset = _token->end_col_offset;
9359 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009360 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009361 if (_res == NULL && PyErr_Occurred()) {
9362 p->error_indicator = 1;
9363 D(p->level--);
9364 return NULL;
9365 }
9366 goto done;
9367 }
9368 p->mark = _mark;
9369 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9371 if (_cut_var) {
9372 D(p->level--);
9373 return NULL;
9374 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009375 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01009376 if (p->call_invalid_rules) { // invalid_named_expression
9377 if (p->error_indicator) {
9378 D(p->level--);
9379 return NULL;
9380 }
9381 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9382 void *invalid_named_expression_var;
9383 if (
9384 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9385 )
9386 {
9387 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9388 _res = invalid_named_expression_var;
9389 goto done;
9390 }
9391 p->mark = _mark;
9392 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9394 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009395 { // expression !':='
9396 if (p->error_indicator) {
9397 D(p->level--);
9398 return NULL;
9399 }
9400 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9401 expr_ty expression_var;
9402 if (
9403 (expression_var = expression_rule(p)) // expression
9404 &&
9405 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9406 )
9407 {
9408 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9409 _res = expression_var;
9410 goto done;
9411 }
9412 p->mark = _mark;
9413 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9415 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009416 _res = NULL;
9417 done:
9418 D(p->level--);
9419 return _res;
9420}
9421
Pablo Galindod9151cb2021-04-13 02:32:33 +01009422// direct_named_expression: NAME ':=' ~ expression | expression !':='
9423static expr_ty
9424direct_named_expression_rule(Parser *p)
9425{
9426 D(p->level++);
9427 if (p->error_indicator) {
9428 D(p->level--);
9429 return NULL;
9430 }
9431 expr_ty _res = NULL;
9432 int _mark = p->mark;
9433 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9434 p->error_indicator = 1;
9435 D(p->level--);
9436 return NULL;
9437 }
9438 int _start_lineno = p->tokens[_mark]->lineno;
9439 UNUSED(_start_lineno); // Only used by EXTRA macro
9440 int _start_col_offset = p->tokens[_mark]->col_offset;
9441 UNUSED(_start_col_offset); // Only used by EXTRA macro
9442 { // NAME ':=' ~ expression
9443 if (p->error_indicator) {
9444 D(p->level--);
9445 return NULL;
9446 }
9447 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9448 int _cut_var = 0;
9449 Token * _literal;
9450 expr_ty a;
9451 expr_ty b;
9452 if (
9453 (a = _PyPegen_name_token(p)) // NAME
9454 &&
9455 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9456 &&
9457 (_cut_var = 1)
9458 &&
9459 (b = expression_rule(p)) // expression
9460 )
9461 {
9462 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9463 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9464 if (_token == NULL) {
9465 D(p->level--);
9466 return NULL;
9467 }
9468 int _end_lineno = _token->end_lineno;
9469 UNUSED(_end_lineno); // Only used by EXTRA macro
9470 int _end_col_offset = _token->end_col_offset;
9471 UNUSED(_end_col_offset); // Only used by EXTRA macro
9472 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
9473 if (_res == NULL && PyErr_Occurred()) {
9474 p->error_indicator = 1;
9475 D(p->level--);
9476 return NULL;
9477 }
9478 goto done;
9479 }
9480 p->mark = _mark;
9481 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9483 if (_cut_var) {
9484 D(p->level--);
9485 return NULL;
9486 }
9487 }
9488 { // expression !':='
9489 if (p->error_indicator) {
9490 D(p->level--);
9491 return NULL;
9492 }
9493 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9494 expr_ty expression_var;
9495 if (
9496 (expression_var = expression_rule(p)) // expression
9497 &&
9498 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9499 )
9500 {
9501 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9502 _res = expression_var;
9503 goto done;
9504 }
9505 p->mark = _mark;
9506 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9508 }
9509 _res = NULL;
9510 done:
9511 D(p->level--);
9512 return _res;
9513}
9514
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009515// annotated_rhs: yield_expr | star_expressions
9516static expr_ty
9517annotated_rhs_rule(Parser *p)
9518{
9519 D(p->level++);
9520 if (p->error_indicator) {
9521 D(p->level--);
9522 return NULL;
9523 }
9524 expr_ty _res = NULL;
9525 int _mark = p->mark;
9526 { // yield_expr
9527 if (p->error_indicator) {
9528 D(p->level--);
9529 return NULL;
9530 }
9531 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9532 expr_ty yield_expr_var;
9533 if (
9534 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9535 )
9536 {
9537 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9538 _res = yield_expr_var;
9539 goto done;
9540 }
9541 p->mark = _mark;
9542 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9544 }
9545 { // star_expressions
9546 if (p->error_indicator) {
9547 D(p->level--);
9548 return NULL;
9549 }
9550 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9551 expr_ty star_expressions_var;
9552 if (
9553 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9554 )
9555 {
9556 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9557 _res = star_expressions_var;
9558 goto done;
9559 }
9560 p->mark = _mark;
9561 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9563 }
9564 _res = NULL;
9565 done:
9566 D(p->level--);
9567 return _res;
9568}
9569
9570// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9571static expr_ty
9572expressions_rule(Parser *p)
9573{
9574 D(p->level++);
9575 if (p->error_indicator) {
9576 D(p->level--);
9577 return NULL;
9578 }
9579 expr_ty _res = NULL;
9580 int _mark = p->mark;
9581 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9582 p->error_indicator = 1;
9583 D(p->level--);
9584 return NULL;
9585 }
9586 int _start_lineno = p->tokens[_mark]->lineno;
9587 UNUSED(_start_lineno); // Only used by EXTRA macro
9588 int _start_col_offset = p->tokens[_mark]->col_offset;
9589 UNUSED(_start_col_offset); // Only used by EXTRA macro
9590 { // expression ((',' expression))+ ','?
9591 if (p->error_indicator) {
9592 D(p->level--);
9593 return NULL;
9594 }
9595 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9596 void *_opt_var;
9597 UNUSED(_opt_var); // Silence compiler warnings
9598 expr_ty a;
9599 asdl_seq * b;
9600 if (
9601 (a = expression_rule(p)) // expression
9602 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009603 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009604 &&
9605 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9606 )
9607 {
9608 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9610 if (_token == NULL) {
9611 D(p->level--);
9612 return NULL;
9613 }
9614 int _end_lineno = _token->end_lineno;
9615 UNUSED(_end_lineno); // Only used by EXTRA macro
9616 int _end_col_offset = _token->end_col_offset;
9617 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009618 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009619 if (_res == NULL && PyErr_Occurred()) {
9620 p->error_indicator = 1;
9621 D(p->level--);
9622 return NULL;
9623 }
9624 goto done;
9625 }
9626 p->mark = _mark;
9627 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9629 }
9630 { // expression ','
9631 if (p->error_indicator) {
9632 D(p->level--);
9633 return NULL;
9634 }
9635 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9636 Token * _literal;
9637 expr_ty a;
9638 if (
9639 (a = expression_rule(p)) // expression
9640 &&
9641 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9642 )
9643 {
9644 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9645 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9646 if (_token == NULL) {
9647 D(p->level--);
9648 return NULL;
9649 }
9650 int _end_lineno = _token->end_lineno;
9651 UNUSED(_end_lineno); // Only used by EXTRA macro
9652 int _end_col_offset = _token->end_col_offset;
9653 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009654 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009655 if (_res == NULL && PyErr_Occurred()) {
9656 p->error_indicator = 1;
9657 D(p->level--);
9658 return NULL;
9659 }
9660 goto done;
9661 }
9662 p->mark = _mark;
9663 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9665 }
9666 { // expression
9667 if (p->error_indicator) {
9668 D(p->level--);
9669 return NULL;
9670 }
9671 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9672 expr_ty expression_var;
9673 if (
9674 (expression_var = expression_rule(p)) // expression
9675 )
9676 {
9677 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9678 _res = expression_var;
9679 goto done;
9680 }
9681 p->mark = _mark;
9682 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9684 }
9685 _res = NULL;
9686 done:
9687 D(p->level--);
9688 return _res;
9689}
9690
Pablo Galindob2802482021-04-15 21:38:45 +01009691// expression:
9692// | invalid_expression
9693// | disjunction 'if' disjunction 'else' expression
9694// | disjunction
9695// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009696static expr_ty
9697expression_rule(Parser *p)
9698{
9699 D(p->level++);
9700 if (p->error_indicator) {
9701 D(p->level--);
9702 return NULL;
9703 }
9704 expr_ty _res = NULL;
9705 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9706 D(p->level--);
9707 return _res;
9708 }
9709 int _mark = p->mark;
9710 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9711 p->error_indicator = 1;
9712 D(p->level--);
9713 return NULL;
9714 }
9715 int _start_lineno = p->tokens[_mark]->lineno;
9716 UNUSED(_start_lineno); // Only used by EXTRA macro
9717 int _start_col_offset = p->tokens[_mark]->col_offset;
9718 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +01009719 if (p->call_invalid_rules) { // invalid_expression
9720 if (p->error_indicator) {
9721 D(p->level--);
9722 return NULL;
9723 }
9724 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9725 void *invalid_expression_var;
9726 if (
9727 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
9728 )
9729 {
9730 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
9731 _res = invalid_expression_var;
9732 goto done;
9733 }
9734 p->mark = _mark;
9735 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
9737 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009738 { // disjunction 'if' disjunction 'else' expression
9739 if (p->error_indicator) {
9740 D(p->level--);
9741 return NULL;
9742 }
9743 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9744 Token * _keyword;
9745 Token * _keyword_1;
9746 expr_ty a;
9747 expr_ty b;
9748 expr_ty c;
9749 if (
9750 (a = disjunction_rule(p)) // disjunction
9751 &&
9752 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9753 &&
9754 (b = disjunction_rule(p)) // disjunction
9755 &&
9756 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9757 &&
9758 (c = expression_rule(p)) // expression
9759 )
9760 {
9761 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9762 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9763 if (_token == NULL) {
9764 D(p->level--);
9765 return NULL;
9766 }
9767 int _end_lineno = _token->end_lineno;
9768 UNUSED(_end_lineno); // Only used by EXTRA macro
9769 int _end_col_offset = _token->end_col_offset;
9770 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009771 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009772 if (_res == NULL && PyErr_Occurred()) {
9773 p->error_indicator = 1;
9774 D(p->level--);
9775 return NULL;
9776 }
9777 goto done;
9778 }
9779 p->mark = _mark;
9780 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9782 }
9783 { // disjunction
9784 if (p->error_indicator) {
9785 D(p->level--);
9786 return NULL;
9787 }
9788 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9789 expr_ty disjunction_var;
9790 if (
9791 (disjunction_var = disjunction_rule(p)) // disjunction
9792 )
9793 {
9794 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9795 _res = disjunction_var;
9796 goto done;
9797 }
9798 p->mark = _mark;
9799 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9801 }
9802 { // lambdef
9803 if (p->error_indicator) {
9804 D(p->level--);
9805 return NULL;
9806 }
9807 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9808 expr_ty lambdef_var;
9809 if (
9810 (lambdef_var = lambdef_rule(p)) // lambdef
9811 )
9812 {
9813 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9814 _res = lambdef_var;
9815 goto done;
9816 }
9817 p->mark = _mark;
9818 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9820 }
9821 _res = NULL;
9822 done:
9823 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9824 D(p->level--);
9825 return _res;
9826}
9827
9828// lambdef: 'lambda' lambda_params? ':' expression
9829static expr_ty
9830lambdef_rule(Parser *p)
9831{
9832 D(p->level++);
9833 if (p->error_indicator) {
9834 D(p->level--);
9835 return NULL;
9836 }
9837 expr_ty _res = NULL;
9838 int _mark = p->mark;
9839 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9840 p->error_indicator = 1;
9841 D(p->level--);
9842 return NULL;
9843 }
9844 int _start_lineno = p->tokens[_mark]->lineno;
9845 UNUSED(_start_lineno); // Only used by EXTRA macro
9846 int _start_col_offset = p->tokens[_mark]->col_offset;
9847 UNUSED(_start_col_offset); // Only used by EXTRA macro
9848 { // 'lambda' lambda_params? ':' expression
9849 if (p->error_indicator) {
9850 D(p->level--);
9851 return NULL;
9852 }
9853 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9854 Token * _keyword;
9855 Token * _literal;
9856 void *a;
9857 expr_ty b;
9858 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009859 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009860 &&
9861 (a = lambda_params_rule(p), 1) // lambda_params?
9862 &&
9863 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9864 &&
9865 (b = expression_rule(p)) // expression
9866 )
9867 {
9868 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9870 if (_token == NULL) {
9871 D(p->level--);
9872 return NULL;
9873 }
9874 int _end_lineno = _token->end_lineno;
9875 UNUSED(_end_lineno); // Only used by EXTRA macro
9876 int _end_col_offset = _token->end_col_offset;
9877 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009878 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009879 if (_res == NULL && PyErr_Occurred()) {
9880 p->error_indicator = 1;
9881 D(p->level--);
9882 return NULL;
9883 }
9884 goto done;
9885 }
9886 p->mark = _mark;
9887 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9889 }
9890 _res = NULL;
9891 done:
9892 D(p->level--);
9893 return _res;
9894}
9895
9896// lambda_params: invalid_lambda_parameters | lambda_parameters
9897static arguments_ty
9898lambda_params_rule(Parser *p)
9899{
9900 D(p->level++);
9901 if (p->error_indicator) {
9902 D(p->level--);
9903 return NULL;
9904 }
9905 arguments_ty _res = NULL;
9906 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009907 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009908 if (p->error_indicator) {
9909 D(p->level--);
9910 return NULL;
9911 }
9912 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9913 void *invalid_lambda_parameters_var;
9914 if (
9915 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9916 )
9917 {
9918 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9919 _res = invalid_lambda_parameters_var;
9920 goto done;
9921 }
9922 p->mark = _mark;
9923 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9925 }
9926 { // lambda_parameters
9927 if (p->error_indicator) {
9928 D(p->level--);
9929 return NULL;
9930 }
9931 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9932 arguments_ty lambda_parameters_var;
9933 if (
9934 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9935 )
9936 {
9937 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9938 _res = lambda_parameters_var;
9939 goto done;
9940 }
9941 p->mark = _mark;
9942 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9944 }
9945 _res = NULL;
9946 done:
9947 D(p->level--);
9948 return _res;
9949}
9950
9951// lambda_parameters:
9952// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9953// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9954// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9955// | lambda_param_with_default+ lambda_star_etc?
9956// | lambda_star_etc
9957static arguments_ty
9958lambda_parameters_rule(Parser *p)
9959{
9960 D(p->level++);
9961 if (p->error_indicator) {
9962 D(p->level--);
9963 return NULL;
9964 }
9965 arguments_ty _res = NULL;
9966 int _mark = p->mark;
9967 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9968 if (p->error_indicator) {
9969 D(p->level--);
9970 return NULL;
9971 }
9972 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 +01009973 asdl_arg_seq* a;
9974 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009975 asdl_seq * c;
9976 void *d;
9977 if (
9978 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9979 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009980 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009981 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009982 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009983 &&
9984 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9985 )
9986 {
9987 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?"));
9988 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9989 if (_res == NULL && PyErr_Occurred()) {
9990 p->error_indicator = 1;
9991 D(p->level--);
9992 return NULL;
9993 }
9994 goto done;
9995 }
9996 p->mark = _mark;
9997 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9999 }
10000 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10001 if (p->error_indicator) {
10002 D(p->level--);
10003 return NULL;
10004 }
10005 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?"));
10006 SlashWithDefault* a;
10007 asdl_seq * b;
10008 void *c;
10009 if (
10010 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10011 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010012 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010013 &&
10014 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10015 )
10016 {
10017 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?"));
10018 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10019 if (_res == NULL && PyErr_Occurred()) {
10020 p->error_indicator = 1;
10021 D(p->level--);
10022 return NULL;
10023 }
10024 goto done;
10025 }
10026 p->mark = _mark;
10027 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10029 }
10030 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10031 if (p->error_indicator) {
10032 D(p->level--);
10033 return NULL;
10034 }
10035 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 +010010036 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010037 asdl_seq * b;
10038 void *c;
10039 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010040 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010041 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010042 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010043 &&
10044 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10045 )
10046 {
10047 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?"));
10048 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10049 if (_res == NULL && PyErr_Occurred()) {
10050 p->error_indicator = 1;
10051 D(p->level--);
10052 return NULL;
10053 }
10054 goto done;
10055 }
10056 p->mark = _mark;
10057 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10059 }
10060 { // lambda_param_with_default+ lambda_star_etc?
10061 if (p->error_indicator) {
10062 D(p->level--);
10063 return NULL;
10064 }
10065 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10066 asdl_seq * a;
10067 void *b;
10068 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010069 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010070 &&
10071 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10072 )
10073 {
10074 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10075 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10076 if (_res == NULL && PyErr_Occurred()) {
10077 p->error_indicator = 1;
10078 D(p->level--);
10079 return NULL;
10080 }
10081 goto done;
10082 }
10083 p->mark = _mark;
10084 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10086 }
10087 { // lambda_star_etc
10088 if (p->error_indicator) {
10089 D(p->level--);
10090 return NULL;
10091 }
10092 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10093 StarEtc* a;
10094 if (
10095 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10096 )
10097 {
10098 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10099 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10100 if (_res == NULL && PyErr_Occurred()) {
10101 p->error_indicator = 1;
10102 D(p->level--);
10103 return NULL;
10104 }
10105 goto done;
10106 }
10107 p->mark = _mark;
10108 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10110 }
10111 _res = NULL;
10112 done:
10113 D(p->level--);
10114 return _res;
10115}
10116
10117// lambda_slash_no_default:
10118// | lambda_param_no_default+ '/' ','
10119// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010120static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010121lambda_slash_no_default_rule(Parser *p)
10122{
10123 D(p->level++);
10124 if (p->error_indicator) {
10125 D(p->level--);
10126 return NULL;
10127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010128 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010129 int _mark = p->mark;
10130 { // lambda_param_no_default+ '/' ','
10131 if (p->error_indicator) {
10132 D(p->level--);
10133 return NULL;
10134 }
10135 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10136 Token * _literal;
10137 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010138 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010139 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010140 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010141 &&
10142 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10143 &&
10144 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10145 )
10146 {
10147 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10148 _res = a;
10149 if (_res == NULL && PyErr_Occurred()) {
10150 p->error_indicator = 1;
10151 D(p->level--);
10152 return NULL;
10153 }
10154 goto done;
10155 }
10156 p->mark = _mark;
10157 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10159 }
10160 { // lambda_param_no_default+ '/' &':'
10161 if (p->error_indicator) {
10162 D(p->level--);
10163 return NULL;
10164 }
10165 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10166 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010167 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010168 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010169 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010170 &&
10171 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10172 &&
10173 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10174 )
10175 {
10176 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10177 _res = a;
10178 if (_res == NULL && PyErr_Occurred()) {
10179 p->error_indicator = 1;
10180 D(p->level--);
10181 return NULL;
10182 }
10183 goto done;
10184 }
10185 p->mark = _mark;
10186 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10188 }
10189 _res = NULL;
10190 done:
10191 D(p->level--);
10192 return _res;
10193}
10194
10195// lambda_slash_with_default:
10196// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10197// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10198static SlashWithDefault*
10199lambda_slash_with_default_rule(Parser *p)
10200{
10201 D(p->level++);
10202 if (p->error_indicator) {
10203 D(p->level--);
10204 return NULL;
10205 }
10206 SlashWithDefault* _res = NULL;
10207 int _mark = p->mark;
10208 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10209 if (p->error_indicator) {
10210 D(p->level--);
10211 return NULL;
10212 }
10213 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+ '/' ','"));
10214 Token * _literal;
10215 Token * _literal_1;
10216 asdl_seq * a;
10217 asdl_seq * b;
10218 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010219 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010220 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010221 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010222 &&
10223 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10224 &&
10225 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10226 )
10227 {
10228 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 +010010229 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010230 if (_res == NULL && PyErr_Occurred()) {
10231 p->error_indicator = 1;
10232 D(p->level--);
10233 return NULL;
10234 }
10235 goto done;
10236 }
10237 p->mark = _mark;
10238 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10240 }
10241 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10242 if (p->error_indicator) {
10243 D(p->level--);
10244 return NULL;
10245 }
10246 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+ '/' &':'"));
10247 Token * _literal;
10248 asdl_seq * a;
10249 asdl_seq * b;
10250 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010251 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010252 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010253 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254 &&
10255 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10256 &&
10257 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10258 )
10259 {
10260 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 +010010261 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
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;
10270 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10272 }
10273 _res = NULL;
10274 done:
10275 D(p->level--);
10276 return _res;
10277}
10278
10279// lambda_star_etc:
10280// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10281// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10282// | lambda_kwds
10283// | invalid_lambda_star_etc
10284static StarEtc*
10285lambda_star_etc_rule(Parser *p)
10286{
10287 D(p->level++);
10288 if (p->error_indicator) {
10289 D(p->level--);
10290 return NULL;
10291 }
10292 StarEtc* _res = NULL;
10293 int _mark = p->mark;
10294 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10295 if (p->error_indicator) {
10296 D(p->level--);
10297 return NULL;
10298 }
10299 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?"));
10300 Token * _literal;
10301 arg_ty a;
10302 asdl_seq * b;
10303 void *c;
10304 if (
10305 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10306 &&
10307 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10308 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010309 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010310 &&
10311 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10312 )
10313 {
10314 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?"));
10315 _res = _PyPegen_star_etc ( p , a , b , c );
10316 if (_res == NULL && PyErr_Occurred()) {
10317 p->error_indicator = 1;
10318 D(p->level--);
10319 return NULL;
10320 }
10321 goto done;
10322 }
10323 p->mark = _mark;
10324 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10326 }
10327 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10328 if (p->error_indicator) {
10329 D(p->level--);
10330 return NULL;
10331 }
10332 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10333 Token * _literal;
10334 Token * _literal_1;
10335 asdl_seq * b;
10336 void *c;
10337 if (
10338 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10339 &&
10340 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10341 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010342 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010343 &&
10344 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10345 )
10346 {
10347 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10348 _res = _PyPegen_star_etc ( p , NULL , b , c );
10349 if (_res == NULL && PyErr_Occurred()) {
10350 p->error_indicator = 1;
10351 D(p->level--);
10352 return NULL;
10353 }
10354 goto done;
10355 }
10356 p->mark = _mark;
10357 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10359 }
10360 { // lambda_kwds
10361 if (p->error_indicator) {
10362 D(p->level--);
10363 return NULL;
10364 }
10365 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10366 arg_ty a;
10367 if (
10368 (a = lambda_kwds_rule(p)) // lambda_kwds
10369 )
10370 {
10371 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10372 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10373 if (_res == NULL && PyErr_Occurred()) {
10374 p->error_indicator = 1;
10375 D(p->level--);
10376 return NULL;
10377 }
10378 goto done;
10379 }
10380 p->mark = _mark;
10381 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10383 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010384 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010385 if (p->error_indicator) {
10386 D(p->level--);
10387 return NULL;
10388 }
10389 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10390 void *invalid_lambda_star_etc_var;
10391 if (
10392 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10393 )
10394 {
10395 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10396 _res = invalid_lambda_star_etc_var;
10397 goto done;
10398 }
10399 p->mark = _mark;
10400 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10402 }
10403 _res = NULL;
10404 done:
10405 D(p->level--);
10406 return _res;
10407}
10408
10409// lambda_kwds: '**' lambda_param_no_default
10410static arg_ty
10411lambda_kwds_rule(Parser *p)
10412{
10413 D(p->level++);
10414 if (p->error_indicator) {
10415 D(p->level--);
10416 return NULL;
10417 }
10418 arg_ty _res = NULL;
10419 int _mark = p->mark;
10420 { // '**' lambda_param_no_default
10421 if (p->error_indicator) {
10422 D(p->level--);
10423 return NULL;
10424 }
10425 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10426 Token * _literal;
10427 arg_ty a;
10428 if (
10429 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10430 &&
10431 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10432 )
10433 {
10434 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10435 _res = a;
10436 if (_res == NULL && PyErr_Occurred()) {
10437 p->error_indicator = 1;
10438 D(p->level--);
10439 return NULL;
10440 }
10441 goto done;
10442 }
10443 p->mark = _mark;
10444 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10446 }
10447 _res = NULL;
10448 done:
10449 D(p->level--);
10450 return _res;
10451}
10452
10453// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10454static arg_ty
10455lambda_param_no_default_rule(Parser *p)
10456{
10457 D(p->level++);
10458 if (p->error_indicator) {
10459 D(p->level--);
10460 return NULL;
10461 }
10462 arg_ty _res = NULL;
10463 int _mark = p->mark;
10464 { // lambda_param ','
10465 if (p->error_indicator) {
10466 D(p->level--);
10467 return NULL;
10468 }
10469 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10470 Token * _literal;
10471 arg_ty a;
10472 if (
10473 (a = lambda_param_rule(p)) // lambda_param
10474 &&
10475 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10476 )
10477 {
10478 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10479 _res = a;
10480 if (_res == NULL && PyErr_Occurred()) {
10481 p->error_indicator = 1;
10482 D(p->level--);
10483 return NULL;
10484 }
10485 goto done;
10486 }
10487 p->mark = _mark;
10488 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10490 }
10491 { // lambda_param &':'
10492 if (p->error_indicator) {
10493 D(p->level--);
10494 return NULL;
10495 }
10496 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10497 arg_ty a;
10498 if (
10499 (a = lambda_param_rule(p)) // lambda_param
10500 &&
10501 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10502 )
10503 {
10504 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10505 _res = a;
10506 if (_res == NULL && PyErr_Occurred()) {
10507 p->error_indicator = 1;
10508 D(p->level--);
10509 return NULL;
10510 }
10511 goto done;
10512 }
10513 p->mark = _mark;
10514 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10516 }
10517 _res = NULL;
10518 done:
10519 D(p->level--);
10520 return _res;
10521}
10522
10523// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10524static NameDefaultPair*
10525lambda_param_with_default_rule(Parser *p)
10526{
10527 D(p->level++);
10528 if (p->error_indicator) {
10529 D(p->level--);
10530 return NULL;
10531 }
10532 NameDefaultPair* _res = NULL;
10533 int _mark = p->mark;
10534 { // lambda_param default ','
10535 if (p->error_indicator) {
10536 D(p->level--);
10537 return NULL;
10538 }
10539 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10540 Token * _literal;
10541 arg_ty a;
10542 expr_ty c;
10543 if (
10544 (a = lambda_param_rule(p)) // lambda_param
10545 &&
10546 (c = default_rule(p)) // default
10547 &&
10548 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10549 )
10550 {
10551 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10552 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10553 if (_res == NULL && PyErr_Occurred()) {
10554 p->error_indicator = 1;
10555 D(p->level--);
10556 return NULL;
10557 }
10558 goto done;
10559 }
10560 p->mark = _mark;
10561 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10563 }
10564 { // lambda_param default &':'
10565 if (p->error_indicator) {
10566 D(p->level--);
10567 return NULL;
10568 }
10569 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10570 arg_ty a;
10571 expr_ty c;
10572 if (
10573 (a = lambda_param_rule(p)) // lambda_param
10574 &&
10575 (c = default_rule(p)) // default
10576 &&
10577 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10578 )
10579 {
10580 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10581 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10582 if (_res == NULL && PyErr_Occurred()) {
10583 p->error_indicator = 1;
10584 D(p->level--);
10585 return NULL;
10586 }
10587 goto done;
10588 }
10589 p->mark = _mark;
10590 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10592 }
10593 _res = NULL;
10594 done:
10595 D(p->level--);
10596 return _res;
10597}
10598
10599// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10600static NameDefaultPair*
10601lambda_param_maybe_default_rule(Parser *p)
10602{
10603 D(p->level++);
10604 if (p->error_indicator) {
10605 D(p->level--);
10606 return NULL;
10607 }
10608 NameDefaultPair* _res = NULL;
10609 int _mark = p->mark;
10610 { // lambda_param default? ','
10611 if (p->error_indicator) {
10612 D(p->level--);
10613 return NULL;
10614 }
10615 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10616 Token * _literal;
10617 arg_ty a;
10618 void *c;
10619 if (
10620 (a = lambda_param_rule(p)) // lambda_param
10621 &&
10622 (c = default_rule(p), 1) // default?
10623 &&
10624 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10625 )
10626 {
10627 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10628 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10629 if (_res == NULL && PyErr_Occurred()) {
10630 p->error_indicator = 1;
10631 D(p->level--);
10632 return NULL;
10633 }
10634 goto done;
10635 }
10636 p->mark = _mark;
10637 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10639 }
10640 { // lambda_param default? &':'
10641 if (p->error_indicator) {
10642 D(p->level--);
10643 return NULL;
10644 }
10645 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10646 arg_ty a;
10647 void *c;
10648 if (
10649 (a = lambda_param_rule(p)) // lambda_param
10650 &&
10651 (c = default_rule(p), 1) // default?
10652 &&
10653 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10654 )
10655 {
10656 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10657 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10658 if (_res == NULL && PyErr_Occurred()) {
10659 p->error_indicator = 1;
10660 D(p->level--);
10661 return NULL;
10662 }
10663 goto done;
10664 }
10665 p->mark = _mark;
10666 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10668 }
10669 _res = NULL;
10670 done:
10671 D(p->level--);
10672 return _res;
10673}
10674
10675// lambda_param: NAME
10676static arg_ty
10677lambda_param_rule(Parser *p)
10678{
10679 D(p->level++);
10680 if (p->error_indicator) {
10681 D(p->level--);
10682 return NULL;
10683 }
10684 arg_ty _res = NULL;
10685 int _mark = p->mark;
10686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10687 p->error_indicator = 1;
10688 D(p->level--);
10689 return NULL;
10690 }
10691 int _start_lineno = p->tokens[_mark]->lineno;
10692 UNUSED(_start_lineno); // Only used by EXTRA macro
10693 int _start_col_offset = p->tokens[_mark]->col_offset;
10694 UNUSED(_start_col_offset); // Only used by EXTRA macro
10695 { // NAME
10696 if (p->error_indicator) {
10697 D(p->level--);
10698 return NULL;
10699 }
10700 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10701 expr_ty a;
10702 if (
10703 (a = _PyPegen_name_token(p)) // NAME
10704 )
10705 {
10706 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10708 if (_token == NULL) {
10709 D(p->level--);
10710 return NULL;
10711 }
10712 int _end_lineno = _token->end_lineno;
10713 UNUSED(_end_lineno); // Only used by EXTRA macro
10714 int _end_col_offset = _token->end_col_offset;
10715 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010716 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010717 if (_res == NULL && PyErr_Occurred()) {
10718 p->error_indicator = 1;
10719 D(p->level--);
10720 return NULL;
10721 }
10722 goto done;
10723 }
10724 p->mark = _mark;
10725 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10727 }
10728 _res = NULL;
10729 done:
10730 D(p->level--);
10731 return _res;
10732}
10733
10734// disjunction: conjunction (('or' conjunction))+ | conjunction
10735static expr_ty
10736disjunction_rule(Parser *p)
10737{
10738 D(p->level++);
10739 if (p->error_indicator) {
10740 D(p->level--);
10741 return NULL;
10742 }
10743 expr_ty _res = NULL;
10744 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10745 D(p->level--);
10746 return _res;
10747 }
10748 int _mark = p->mark;
10749 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10750 p->error_indicator = 1;
10751 D(p->level--);
10752 return NULL;
10753 }
10754 int _start_lineno = p->tokens[_mark]->lineno;
10755 UNUSED(_start_lineno); // Only used by EXTRA macro
10756 int _start_col_offset = p->tokens[_mark]->col_offset;
10757 UNUSED(_start_col_offset); // Only used by EXTRA macro
10758 { // conjunction (('or' conjunction))+
10759 if (p->error_indicator) {
10760 D(p->level--);
10761 return NULL;
10762 }
10763 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10764 expr_ty a;
10765 asdl_seq * b;
10766 if (
10767 (a = conjunction_rule(p)) // conjunction
10768 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010769 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010770 )
10771 {
10772 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10774 if (_token == NULL) {
10775 D(p->level--);
10776 return NULL;
10777 }
10778 int _end_lineno = _token->end_lineno;
10779 UNUSED(_end_lineno); // Only used by EXTRA macro
10780 int _end_col_offset = _token->end_col_offset;
10781 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010782 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010783 if (_res == NULL && PyErr_Occurred()) {
10784 p->error_indicator = 1;
10785 D(p->level--);
10786 return NULL;
10787 }
10788 goto done;
10789 }
10790 p->mark = _mark;
10791 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10793 }
10794 { // conjunction
10795 if (p->error_indicator) {
10796 D(p->level--);
10797 return NULL;
10798 }
10799 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10800 expr_ty conjunction_var;
10801 if (
10802 (conjunction_var = conjunction_rule(p)) // conjunction
10803 )
10804 {
10805 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10806 _res = conjunction_var;
10807 goto done;
10808 }
10809 p->mark = _mark;
10810 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10812 }
10813 _res = NULL;
10814 done:
10815 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10816 D(p->level--);
10817 return _res;
10818}
10819
10820// conjunction: inversion (('and' inversion))+ | inversion
10821static expr_ty
10822conjunction_rule(Parser *p)
10823{
10824 D(p->level++);
10825 if (p->error_indicator) {
10826 D(p->level--);
10827 return NULL;
10828 }
10829 expr_ty _res = NULL;
10830 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10831 D(p->level--);
10832 return _res;
10833 }
10834 int _mark = p->mark;
10835 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10836 p->error_indicator = 1;
10837 D(p->level--);
10838 return NULL;
10839 }
10840 int _start_lineno = p->tokens[_mark]->lineno;
10841 UNUSED(_start_lineno); // Only used by EXTRA macro
10842 int _start_col_offset = p->tokens[_mark]->col_offset;
10843 UNUSED(_start_col_offset); // Only used by EXTRA macro
10844 { // inversion (('and' inversion))+
10845 if (p->error_indicator) {
10846 D(p->level--);
10847 return NULL;
10848 }
10849 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10850 expr_ty a;
10851 asdl_seq * b;
10852 if (
10853 (a = inversion_rule(p)) // inversion
10854 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010855 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010856 )
10857 {
10858 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10859 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10860 if (_token == NULL) {
10861 D(p->level--);
10862 return NULL;
10863 }
10864 int _end_lineno = _token->end_lineno;
10865 UNUSED(_end_lineno); // Only used by EXTRA macro
10866 int _end_col_offset = _token->end_col_offset;
10867 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010868 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010869 if (_res == NULL && PyErr_Occurred()) {
10870 p->error_indicator = 1;
10871 D(p->level--);
10872 return NULL;
10873 }
10874 goto done;
10875 }
10876 p->mark = _mark;
10877 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10879 }
10880 { // inversion
10881 if (p->error_indicator) {
10882 D(p->level--);
10883 return NULL;
10884 }
10885 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10886 expr_ty inversion_var;
10887 if (
10888 (inversion_var = inversion_rule(p)) // inversion
10889 )
10890 {
10891 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10892 _res = inversion_var;
10893 goto done;
10894 }
10895 p->mark = _mark;
10896 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10898 }
10899 _res = NULL;
10900 done:
10901 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10902 D(p->level--);
10903 return _res;
10904}
10905
10906// inversion: 'not' inversion | comparison
10907static expr_ty
10908inversion_rule(Parser *p)
10909{
10910 D(p->level++);
10911 if (p->error_indicator) {
10912 D(p->level--);
10913 return NULL;
10914 }
10915 expr_ty _res = NULL;
10916 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10917 D(p->level--);
10918 return _res;
10919 }
10920 int _mark = p->mark;
10921 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10922 p->error_indicator = 1;
10923 D(p->level--);
10924 return NULL;
10925 }
10926 int _start_lineno = p->tokens[_mark]->lineno;
10927 UNUSED(_start_lineno); // Only used by EXTRA macro
10928 int _start_col_offset = p->tokens[_mark]->col_offset;
10929 UNUSED(_start_col_offset); // Only used by EXTRA macro
10930 { // 'not' inversion
10931 if (p->error_indicator) {
10932 D(p->level--);
10933 return NULL;
10934 }
10935 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10936 Token * _keyword;
10937 expr_ty a;
10938 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010939 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010940 &&
10941 (a = inversion_rule(p)) // inversion
10942 )
10943 {
10944 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10946 if (_token == NULL) {
10947 D(p->level--);
10948 return NULL;
10949 }
10950 int _end_lineno = _token->end_lineno;
10951 UNUSED(_end_lineno); // Only used by EXTRA macro
10952 int _end_col_offset = _token->end_col_offset;
10953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010954 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010955 if (_res == NULL && PyErr_Occurred()) {
10956 p->error_indicator = 1;
10957 D(p->level--);
10958 return NULL;
10959 }
10960 goto done;
10961 }
10962 p->mark = _mark;
10963 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10965 }
10966 { // comparison
10967 if (p->error_indicator) {
10968 D(p->level--);
10969 return NULL;
10970 }
10971 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10972 expr_ty comparison_var;
10973 if (
10974 (comparison_var = comparison_rule(p)) // comparison
10975 )
10976 {
10977 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10978 _res = comparison_var;
10979 goto done;
10980 }
10981 p->mark = _mark;
10982 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10984 }
10985 _res = NULL;
10986 done:
10987 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10988 D(p->level--);
10989 return _res;
10990}
10991
10992// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10993static expr_ty
10994comparison_rule(Parser *p)
10995{
10996 D(p->level++);
10997 if (p->error_indicator) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 expr_ty _res = NULL;
11002 int _mark = p->mark;
11003 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11004 p->error_indicator = 1;
11005 D(p->level--);
11006 return NULL;
11007 }
11008 int _start_lineno = p->tokens[_mark]->lineno;
11009 UNUSED(_start_lineno); // Only used by EXTRA macro
11010 int _start_col_offset = p->tokens[_mark]->col_offset;
11011 UNUSED(_start_col_offset); // Only used by EXTRA macro
11012 { // bitwise_or compare_op_bitwise_or_pair+
11013 if (p->error_indicator) {
11014 D(p->level--);
11015 return NULL;
11016 }
11017 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11018 expr_ty a;
11019 asdl_seq * b;
11020 if (
11021 (a = bitwise_or_rule(p)) // bitwise_or
11022 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011023 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011024 )
11025 {
11026 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11027 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11028 if (_token == NULL) {
11029 D(p->level--);
11030 return NULL;
11031 }
11032 int _end_lineno = _token->end_lineno;
11033 UNUSED(_end_lineno); // Only used by EXTRA macro
11034 int _end_col_offset = _token->end_col_offset;
11035 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011036 _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 +010011037 if (_res == NULL && PyErr_Occurred()) {
11038 p->error_indicator = 1;
11039 D(p->level--);
11040 return NULL;
11041 }
11042 goto done;
11043 }
11044 p->mark = _mark;
11045 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11047 }
11048 { // bitwise_or
11049 if (p->error_indicator) {
11050 D(p->level--);
11051 return NULL;
11052 }
11053 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11054 expr_ty bitwise_or_var;
11055 if (
11056 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11057 )
11058 {
11059 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11060 _res = bitwise_or_var;
11061 goto done;
11062 }
11063 p->mark = _mark;
11064 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11066 }
11067 _res = NULL;
11068 done:
11069 D(p->level--);
11070 return _res;
11071}
11072
11073// compare_op_bitwise_or_pair:
11074// | eq_bitwise_or
11075// | noteq_bitwise_or
11076// | lte_bitwise_or
11077// | lt_bitwise_or
11078// | gte_bitwise_or
11079// | gt_bitwise_or
11080// | notin_bitwise_or
11081// | in_bitwise_or
11082// | isnot_bitwise_or
11083// | is_bitwise_or
11084static CmpopExprPair*
11085compare_op_bitwise_or_pair_rule(Parser *p)
11086{
11087 D(p->level++);
11088 if (p->error_indicator) {
11089 D(p->level--);
11090 return NULL;
11091 }
11092 CmpopExprPair* _res = NULL;
11093 int _mark = p->mark;
11094 { // eq_bitwise_or
11095 if (p->error_indicator) {
11096 D(p->level--);
11097 return NULL;
11098 }
11099 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11100 CmpopExprPair* eq_bitwise_or_var;
11101 if (
11102 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11103 )
11104 {
11105 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11106 _res = eq_bitwise_or_var;
11107 goto done;
11108 }
11109 p->mark = _mark;
11110 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11112 }
11113 { // noteq_bitwise_or
11114 if (p->error_indicator) {
11115 D(p->level--);
11116 return NULL;
11117 }
11118 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11119 CmpopExprPair* noteq_bitwise_or_var;
11120 if (
11121 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11122 )
11123 {
11124 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11125 _res = noteq_bitwise_or_var;
11126 goto done;
11127 }
11128 p->mark = _mark;
11129 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11131 }
11132 { // lte_bitwise_or
11133 if (p->error_indicator) {
11134 D(p->level--);
11135 return NULL;
11136 }
11137 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11138 CmpopExprPair* lte_bitwise_or_var;
11139 if (
11140 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11141 )
11142 {
11143 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11144 _res = lte_bitwise_or_var;
11145 goto done;
11146 }
11147 p->mark = _mark;
11148 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11150 }
11151 { // lt_bitwise_or
11152 if (p->error_indicator) {
11153 D(p->level--);
11154 return NULL;
11155 }
11156 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11157 CmpopExprPair* lt_bitwise_or_var;
11158 if (
11159 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11160 )
11161 {
11162 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11163 _res = lt_bitwise_or_var;
11164 goto done;
11165 }
11166 p->mark = _mark;
11167 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11169 }
11170 { // gte_bitwise_or
11171 if (p->error_indicator) {
11172 D(p->level--);
11173 return NULL;
11174 }
11175 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11176 CmpopExprPair* gte_bitwise_or_var;
11177 if (
11178 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11179 )
11180 {
11181 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11182 _res = gte_bitwise_or_var;
11183 goto done;
11184 }
11185 p->mark = _mark;
11186 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11188 }
11189 { // gt_bitwise_or
11190 if (p->error_indicator) {
11191 D(p->level--);
11192 return NULL;
11193 }
11194 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11195 CmpopExprPair* gt_bitwise_or_var;
11196 if (
11197 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11198 )
11199 {
11200 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11201 _res = gt_bitwise_or_var;
11202 goto done;
11203 }
11204 p->mark = _mark;
11205 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11207 }
11208 { // notin_bitwise_or
11209 if (p->error_indicator) {
11210 D(p->level--);
11211 return NULL;
11212 }
11213 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11214 CmpopExprPair* notin_bitwise_or_var;
11215 if (
11216 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11217 )
11218 {
11219 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11220 _res = notin_bitwise_or_var;
11221 goto done;
11222 }
11223 p->mark = _mark;
11224 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11226 }
11227 { // in_bitwise_or
11228 if (p->error_indicator) {
11229 D(p->level--);
11230 return NULL;
11231 }
11232 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11233 CmpopExprPair* in_bitwise_or_var;
11234 if (
11235 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11236 )
11237 {
11238 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11239 _res = in_bitwise_or_var;
11240 goto done;
11241 }
11242 p->mark = _mark;
11243 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11245 }
11246 { // isnot_bitwise_or
11247 if (p->error_indicator) {
11248 D(p->level--);
11249 return NULL;
11250 }
11251 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11252 CmpopExprPair* isnot_bitwise_or_var;
11253 if (
11254 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11255 )
11256 {
11257 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11258 _res = isnot_bitwise_or_var;
11259 goto done;
11260 }
11261 p->mark = _mark;
11262 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11264 }
11265 { // is_bitwise_or
11266 if (p->error_indicator) {
11267 D(p->level--);
11268 return NULL;
11269 }
11270 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11271 CmpopExprPair* is_bitwise_or_var;
11272 if (
11273 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11274 )
11275 {
11276 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11277 _res = is_bitwise_or_var;
11278 goto done;
11279 }
11280 p->mark = _mark;
11281 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11283 }
11284 _res = NULL;
11285 done:
11286 D(p->level--);
11287 return _res;
11288}
11289
11290// eq_bitwise_or: '==' bitwise_or
11291static CmpopExprPair*
11292eq_bitwise_or_rule(Parser *p)
11293{
11294 D(p->level++);
11295 if (p->error_indicator) {
11296 D(p->level--);
11297 return NULL;
11298 }
11299 CmpopExprPair* _res = NULL;
11300 int _mark = p->mark;
11301 { // '==' bitwise_or
11302 if (p->error_indicator) {
11303 D(p->level--);
11304 return NULL;
11305 }
11306 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11307 Token * _literal;
11308 expr_ty a;
11309 if (
11310 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11311 &&
11312 (a = bitwise_or_rule(p)) // bitwise_or
11313 )
11314 {
11315 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11316 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11317 if (_res == NULL && PyErr_Occurred()) {
11318 p->error_indicator = 1;
11319 D(p->level--);
11320 return NULL;
11321 }
11322 goto done;
11323 }
11324 p->mark = _mark;
11325 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11327 }
11328 _res = NULL;
11329 done:
11330 D(p->level--);
11331 return _res;
11332}
11333
11334// noteq_bitwise_or: ('!=') bitwise_or
11335static CmpopExprPair*
11336noteq_bitwise_or_rule(Parser *p)
11337{
11338 D(p->level++);
11339 if (p->error_indicator) {
11340 D(p->level--);
11341 return NULL;
11342 }
11343 CmpopExprPair* _res = NULL;
11344 int _mark = p->mark;
11345 { // ('!=') bitwise_or
11346 if (p->error_indicator) {
11347 D(p->level--);
11348 return NULL;
11349 }
11350 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 -080011351 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011352 expr_ty a;
11353 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011354 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011355 &&
11356 (a = bitwise_or_rule(p)) // bitwise_or
11357 )
11358 {
11359 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11360 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11361 if (_res == NULL && PyErr_Occurred()) {
11362 p->error_indicator = 1;
11363 D(p->level--);
11364 return NULL;
11365 }
11366 goto done;
11367 }
11368 p->mark = _mark;
11369 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11371 }
11372 _res = NULL;
11373 done:
11374 D(p->level--);
11375 return _res;
11376}
11377
11378// lte_bitwise_or: '<=' bitwise_or
11379static CmpopExprPair*
11380lte_bitwise_or_rule(Parser *p)
11381{
11382 D(p->level++);
11383 if (p->error_indicator) {
11384 D(p->level--);
11385 return NULL;
11386 }
11387 CmpopExprPair* _res = NULL;
11388 int _mark = p->mark;
11389 { // '<=' bitwise_or
11390 if (p->error_indicator) {
11391 D(p->level--);
11392 return NULL;
11393 }
11394 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11395 Token * _literal;
11396 expr_ty a;
11397 if (
11398 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11399 &&
11400 (a = bitwise_or_rule(p)) // bitwise_or
11401 )
11402 {
11403 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11404 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11405 if (_res == NULL && PyErr_Occurred()) {
11406 p->error_indicator = 1;
11407 D(p->level--);
11408 return NULL;
11409 }
11410 goto done;
11411 }
11412 p->mark = _mark;
11413 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11415 }
11416 _res = NULL;
11417 done:
11418 D(p->level--);
11419 return _res;
11420}
11421
11422// lt_bitwise_or: '<' bitwise_or
11423static CmpopExprPair*
11424lt_bitwise_or_rule(Parser *p)
11425{
11426 D(p->level++);
11427 if (p->error_indicator) {
11428 D(p->level--);
11429 return NULL;
11430 }
11431 CmpopExprPair* _res = NULL;
11432 int _mark = p->mark;
11433 { // '<' bitwise_or
11434 if (p->error_indicator) {
11435 D(p->level--);
11436 return NULL;
11437 }
11438 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11439 Token * _literal;
11440 expr_ty a;
11441 if (
11442 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11443 &&
11444 (a = bitwise_or_rule(p)) // bitwise_or
11445 )
11446 {
11447 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11448 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11449 if (_res == NULL && PyErr_Occurred()) {
11450 p->error_indicator = 1;
11451 D(p->level--);
11452 return NULL;
11453 }
11454 goto done;
11455 }
11456 p->mark = _mark;
11457 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11459 }
11460 _res = NULL;
11461 done:
11462 D(p->level--);
11463 return _res;
11464}
11465
11466// gte_bitwise_or: '>=' bitwise_or
11467static CmpopExprPair*
11468gte_bitwise_or_rule(Parser *p)
11469{
11470 D(p->level++);
11471 if (p->error_indicator) {
11472 D(p->level--);
11473 return NULL;
11474 }
11475 CmpopExprPair* _res = NULL;
11476 int _mark = p->mark;
11477 { // '>=' bitwise_or
11478 if (p->error_indicator) {
11479 D(p->level--);
11480 return NULL;
11481 }
11482 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11483 Token * _literal;
11484 expr_ty a;
11485 if (
11486 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11487 &&
11488 (a = bitwise_or_rule(p)) // bitwise_or
11489 )
11490 {
11491 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11492 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11493 if (_res == NULL && PyErr_Occurred()) {
11494 p->error_indicator = 1;
11495 D(p->level--);
11496 return NULL;
11497 }
11498 goto done;
11499 }
11500 p->mark = _mark;
11501 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11503 }
11504 _res = NULL;
11505 done:
11506 D(p->level--);
11507 return _res;
11508}
11509
11510// gt_bitwise_or: '>' bitwise_or
11511static CmpopExprPair*
11512gt_bitwise_or_rule(Parser *p)
11513{
11514 D(p->level++);
11515 if (p->error_indicator) {
11516 D(p->level--);
11517 return NULL;
11518 }
11519 CmpopExprPair* _res = NULL;
11520 int _mark = p->mark;
11521 { // '>' bitwise_or
11522 if (p->error_indicator) {
11523 D(p->level--);
11524 return NULL;
11525 }
11526 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11527 Token * _literal;
11528 expr_ty a;
11529 if (
11530 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11531 &&
11532 (a = bitwise_or_rule(p)) // bitwise_or
11533 )
11534 {
11535 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11536 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11537 if (_res == NULL && PyErr_Occurred()) {
11538 p->error_indicator = 1;
11539 D(p->level--);
11540 return NULL;
11541 }
11542 goto done;
11543 }
11544 p->mark = _mark;
11545 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11547 }
11548 _res = NULL;
11549 done:
11550 D(p->level--);
11551 return _res;
11552}
11553
11554// notin_bitwise_or: 'not' 'in' bitwise_or
11555static CmpopExprPair*
11556notin_bitwise_or_rule(Parser *p)
11557{
11558 D(p->level++);
11559 if (p->error_indicator) {
11560 D(p->level--);
11561 return NULL;
11562 }
11563 CmpopExprPair* _res = NULL;
11564 int _mark = p->mark;
11565 { // 'not' 'in' bitwise_or
11566 if (p->error_indicator) {
11567 D(p->level--);
11568 return NULL;
11569 }
11570 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11571 Token * _keyword;
11572 Token * _keyword_1;
11573 expr_ty a;
11574 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011575 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011576 &&
11577 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11578 &&
11579 (a = bitwise_or_rule(p)) // bitwise_or
11580 )
11581 {
11582 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11583 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11584 if (_res == NULL && PyErr_Occurred()) {
11585 p->error_indicator = 1;
11586 D(p->level--);
11587 return NULL;
11588 }
11589 goto done;
11590 }
11591 p->mark = _mark;
11592 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11594 }
11595 _res = NULL;
11596 done:
11597 D(p->level--);
11598 return _res;
11599}
11600
11601// in_bitwise_or: 'in' bitwise_or
11602static CmpopExprPair*
11603in_bitwise_or_rule(Parser *p)
11604{
11605 D(p->level++);
11606 if (p->error_indicator) {
11607 D(p->level--);
11608 return NULL;
11609 }
11610 CmpopExprPair* _res = NULL;
11611 int _mark = p->mark;
11612 { // 'in' bitwise_or
11613 if (p->error_indicator) {
11614 D(p->level--);
11615 return NULL;
11616 }
11617 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11618 Token * _keyword;
11619 expr_ty a;
11620 if (
11621 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11622 &&
11623 (a = bitwise_or_rule(p)) // bitwise_or
11624 )
11625 {
11626 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11627 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11628 if (_res == NULL && PyErr_Occurred()) {
11629 p->error_indicator = 1;
11630 D(p->level--);
11631 return NULL;
11632 }
11633 goto done;
11634 }
11635 p->mark = _mark;
11636 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11638 }
11639 _res = NULL;
11640 done:
11641 D(p->level--);
11642 return _res;
11643}
11644
11645// isnot_bitwise_or: 'is' 'not' bitwise_or
11646static CmpopExprPair*
11647isnot_bitwise_or_rule(Parser *p)
11648{
11649 D(p->level++);
11650 if (p->error_indicator) {
11651 D(p->level--);
11652 return NULL;
11653 }
11654 CmpopExprPair* _res = NULL;
11655 int _mark = p->mark;
11656 { // 'is' 'not' bitwise_or
11657 if (p->error_indicator) {
11658 D(p->level--);
11659 return NULL;
11660 }
11661 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11662 Token * _keyword;
11663 Token * _keyword_1;
11664 expr_ty a;
11665 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011666 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011667 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011668 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011669 &&
11670 (a = bitwise_or_rule(p)) // bitwise_or
11671 )
11672 {
11673 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11674 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11675 if (_res == NULL && PyErr_Occurred()) {
11676 p->error_indicator = 1;
11677 D(p->level--);
11678 return NULL;
11679 }
11680 goto done;
11681 }
11682 p->mark = _mark;
11683 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11685 }
11686 _res = NULL;
11687 done:
11688 D(p->level--);
11689 return _res;
11690}
11691
11692// is_bitwise_or: 'is' bitwise_or
11693static CmpopExprPair*
11694is_bitwise_or_rule(Parser *p)
11695{
11696 D(p->level++);
11697 if (p->error_indicator) {
11698 D(p->level--);
11699 return NULL;
11700 }
11701 CmpopExprPair* _res = NULL;
11702 int _mark = p->mark;
11703 { // 'is' bitwise_or
11704 if (p->error_indicator) {
11705 D(p->level--);
11706 return NULL;
11707 }
11708 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11709 Token * _keyword;
11710 expr_ty a;
11711 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011712 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011713 &&
11714 (a = bitwise_or_rule(p)) // bitwise_or
11715 )
11716 {
11717 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11718 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11719 if (_res == NULL && PyErr_Occurred()) {
11720 p->error_indicator = 1;
11721 D(p->level--);
11722 return NULL;
11723 }
11724 goto done;
11725 }
11726 p->mark = _mark;
11727 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11729 }
11730 _res = NULL;
11731 done:
11732 D(p->level--);
11733 return _res;
11734}
11735
11736// Left-recursive
11737// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11738static expr_ty bitwise_or_raw(Parser *);
11739static expr_ty
11740bitwise_or_rule(Parser *p)
11741{
11742 D(p->level++);
11743 expr_ty _res = NULL;
11744 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11745 D(p->level--);
11746 return _res;
11747 }
11748 int _mark = p->mark;
11749 int _resmark = p->mark;
11750 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011751 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11752 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011753 D(p->level--);
11754 return _res;
11755 }
11756 p->mark = _mark;
11757 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011758 if (p->error_indicator)
11759 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011760 if (_raw == NULL || p->mark <= _resmark)
11761 break;
11762 _resmark = p->mark;
11763 _res = _raw;
11764 }
11765 p->mark = _resmark;
11766 D(p->level--);
11767 return _res;
11768}
11769static expr_ty
11770bitwise_or_raw(Parser *p)
11771{
11772 D(p->level++);
11773 if (p->error_indicator) {
11774 D(p->level--);
11775 return NULL;
11776 }
11777 expr_ty _res = NULL;
11778 int _mark = p->mark;
11779 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11780 p->error_indicator = 1;
11781 D(p->level--);
11782 return NULL;
11783 }
11784 int _start_lineno = p->tokens[_mark]->lineno;
11785 UNUSED(_start_lineno); // Only used by EXTRA macro
11786 int _start_col_offset = p->tokens[_mark]->col_offset;
11787 UNUSED(_start_col_offset); // Only used by EXTRA macro
11788 { // bitwise_or '|' bitwise_xor
11789 if (p->error_indicator) {
11790 D(p->level--);
11791 return NULL;
11792 }
11793 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11794 Token * _literal;
11795 expr_ty a;
11796 expr_ty b;
11797 if (
11798 (a = bitwise_or_rule(p)) // bitwise_or
11799 &&
11800 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11801 &&
11802 (b = bitwise_xor_rule(p)) // bitwise_xor
11803 )
11804 {
11805 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11807 if (_token == NULL) {
11808 D(p->level--);
11809 return NULL;
11810 }
11811 int _end_lineno = _token->end_lineno;
11812 UNUSED(_end_lineno); // Only used by EXTRA macro
11813 int _end_col_offset = _token->end_col_offset;
11814 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011815 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011816 if (_res == NULL && PyErr_Occurred()) {
11817 p->error_indicator = 1;
11818 D(p->level--);
11819 return NULL;
11820 }
11821 goto done;
11822 }
11823 p->mark = _mark;
11824 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11826 }
11827 { // bitwise_xor
11828 if (p->error_indicator) {
11829 D(p->level--);
11830 return NULL;
11831 }
11832 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11833 expr_ty bitwise_xor_var;
11834 if (
11835 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11836 )
11837 {
11838 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11839 _res = bitwise_xor_var;
11840 goto done;
11841 }
11842 p->mark = _mark;
11843 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11845 }
11846 _res = NULL;
11847 done:
11848 D(p->level--);
11849 return _res;
11850}
11851
11852// Left-recursive
11853// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11854static expr_ty bitwise_xor_raw(Parser *);
11855static expr_ty
11856bitwise_xor_rule(Parser *p)
11857{
11858 D(p->level++);
11859 expr_ty _res = NULL;
11860 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11861 D(p->level--);
11862 return _res;
11863 }
11864 int _mark = p->mark;
11865 int _resmark = p->mark;
11866 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011867 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11868 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011869 D(p->level--);
11870 return _res;
11871 }
11872 p->mark = _mark;
11873 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011874 if (p->error_indicator)
11875 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011876 if (_raw == NULL || p->mark <= _resmark)
11877 break;
11878 _resmark = p->mark;
11879 _res = _raw;
11880 }
11881 p->mark = _resmark;
11882 D(p->level--);
11883 return _res;
11884}
11885static expr_ty
11886bitwise_xor_raw(Parser *p)
11887{
11888 D(p->level++);
11889 if (p->error_indicator) {
11890 D(p->level--);
11891 return NULL;
11892 }
11893 expr_ty _res = NULL;
11894 int _mark = p->mark;
11895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11896 p->error_indicator = 1;
11897 D(p->level--);
11898 return NULL;
11899 }
11900 int _start_lineno = p->tokens[_mark]->lineno;
11901 UNUSED(_start_lineno); // Only used by EXTRA macro
11902 int _start_col_offset = p->tokens[_mark]->col_offset;
11903 UNUSED(_start_col_offset); // Only used by EXTRA macro
11904 { // bitwise_xor '^' bitwise_and
11905 if (p->error_indicator) {
11906 D(p->level--);
11907 return NULL;
11908 }
11909 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11910 Token * _literal;
11911 expr_ty a;
11912 expr_ty b;
11913 if (
11914 (a = bitwise_xor_rule(p)) // bitwise_xor
11915 &&
11916 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11917 &&
11918 (b = bitwise_and_rule(p)) // bitwise_and
11919 )
11920 {
11921 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11923 if (_token == NULL) {
11924 D(p->level--);
11925 return NULL;
11926 }
11927 int _end_lineno = _token->end_lineno;
11928 UNUSED(_end_lineno); // Only used by EXTRA macro
11929 int _end_col_offset = _token->end_col_offset;
11930 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011931 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011932 if (_res == NULL && PyErr_Occurred()) {
11933 p->error_indicator = 1;
11934 D(p->level--);
11935 return NULL;
11936 }
11937 goto done;
11938 }
11939 p->mark = _mark;
11940 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11942 }
11943 { // bitwise_and
11944 if (p->error_indicator) {
11945 D(p->level--);
11946 return NULL;
11947 }
11948 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11949 expr_ty bitwise_and_var;
11950 if (
11951 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11952 )
11953 {
11954 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11955 _res = bitwise_and_var;
11956 goto done;
11957 }
11958 p->mark = _mark;
11959 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11961 }
11962 _res = NULL;
11963 done:
11964 D(p->level--);
11965 return _res;
11966}
11967
11968// Left-recursive
11969// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11970static expr_ty bitwise_and_raw(Parser *);
11971static expr_ty
11972bitwise_and_rule(Parser *p)
11973{
11974 D(p->level++);
11975 expr_ty _res = NULL;
11976 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11977 D(p->level--);
11978 return _res;
11979 }
11980 int _mark = p->mark;
11981 int _resmark = p->mark;
11982 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011983 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11984 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011985 D(p->level--);
11986 return _res;
11987 }
11988 p->mark = _mark;
11989 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011990 if (p->error_indicator)
11991 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011992 if (_raw == NULL || p->mark <= _resmark)
11993 break;
11994 _resmark = p->mark;
11995 _res = _raw;
11996 }
11997 p->mark = _resmark;
11998 D(p->level--);
11999 return _res;
12000}
12001static expr_ty
12002bitwise_and_raw(Parser *p)
12003{
12004 D(p->level++);
12005 if (p->error_indicator) {
12006 D(p->level--);
12007 return NULL;
12008 }
12009 expr_ty _res = NULL;
12010 int _mark = p->mark;
12011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12012 p->error_indicator = 1;
12013 D(p->level--);
12014 return NULL;
12015 }
12016 int _start_lineno = p->tokens[_mark]->lineno;
12017 UNUSED(_start_lineno); // Only used by EXTRA macro
12018 int _start_col_offset = p->tokens[_mark]->col_offset;
12019 UNUSED(_start_col_offset); // Only used by EXTRA macro
12020 { // bitwise_and '&' shift_expr
12021 if (p->error_indicator) {
12022 D(p->level--);
12023 return NULL;
12024 }
12025 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12026 Token * _literal;
12027 expr_ty a;
12028 expr_ty b;
12029 if (
12030 (a = bitwise_and_rule(p)) // bitwise_and
12031 &&
12032 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12033 &&
12034 (b = shift_expr_rule(p)) // shift_expr
12035 )
12036 {
12037 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12039 if (_token == NULL) {
12040 D(p->level--);
12041 return NULL;
12042 }
12043 int _end_lineno = _token->end_lineno;
12044 UNUSED(_end_lineno); // Only used by EXTRA macro
12045 int _end_col_offset = _token->end_col_offset;
12046 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012047 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012048 if (_res == NULL && PyErr_Occurred()) {
12049 p->error_indicator = 1;
12050 D(p->level--);
12051 return NULL;
12052 }
12053 goto done;
12054 }
12055 p->mark = _mark;
12056 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12058 }
12059 { // shift_expr
12060 if (p->error_indicator) {
12061 D(p->level--);
12062 return NULL;
12063 }
12064 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12065 expr_ty shift_expr_var;
12066 if (
12067 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12068 )
12069 {
12070 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12071 _res = shift_expr_var;
12072 goto done;
12073 }
12074 p->mark = _mark;
12075 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12077 }
12078 _res = NULL;
12079 done:
12080 D(p->level--);
12081 return _res;
12082}
12083
12084// Left-recursive
12085// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12086static expr_ty shift_expr_raw(Parser *);
12087static expr_ty
12088shift_expr_rule(Parser *p)
12089{
12090 D(p->level++);
12091 expr_ty _res = NULL;
12092 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12093 D(p->level--);
12094 return _res;
12095 }
12096 int _mark = p->mark;
12097 int _resmark = p->mark;
12098 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012099 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12100 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012101 D(p->level--);
12102 return _res;
12103 }
12104 p->mark = _mark;
12105 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012106 if (p->error_indicator)
12107 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012108 if (_raw == NULL || p->mark <= _resmark)
12109 break;
12110 _resmark = p->mark;
12111 _res = _raw;
12112 }
12113 p->mark = _resmark;
12114 D(p->level--);
12115 return _res;
12116}
12117static expr_ty
12118shift_expr_raw(Parser *p)
12119{
12120 D(p->level++);
12121 if (p->error_indicator) {
12122 D(p->level--);
12123 return NULL;
12124 }
12125 expr_ty _res = NULL;
12126 int _mark = p->mark;
12127 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12128 p->error_indicator = 1;
12129 D(p->level--);
12130 return NULL;
12131 }
12132 int _start_lineno = p->tokens[_mark]->lineno;
12133 UNUSED(_start_lineno); // Only used by EXTRA macro
12134 int _start_col_offset = p->tokens[_mark]->col_offset;
12135 UNUSED(_start_col_offset); // Only used by EXTRA macro
12136 { // shift_expr '<<' sum
12137 if (p->error_indicator) {
12138 D(p->level--);
12139 return NULL;
12140 }
12141 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12142 Token * _literal;
12143 expr_ty a;
12144 expr_ty b;
12145 if (
12146 (a = shift_expr_rule(p)) // shift_expr
12147 &&
12148 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12149 &&
12150 (b = sum_rule(p)) // sum
12151 )
12152 {
12153 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12154 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12155 if (_token == NULL) {
12156 D(p->level--);
12157 return NULL;
12158 }
12159 int _end_lineno = _token->end_lineno;
12160 UNUSED(_end_lineno); // Only used by EXTRA macro
12161 int _end_col_offset = _token->end_col_offset;
12162 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012163 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012164 if (_res == NULL && PyErr_Occurred()) {
12165 p->error_indicator = 1;
12166 D(p->level--);
12167 return NULL;
12168 }
12169 goto done;
12170 }
12171 p->mark = _mark;
12172 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12174 }
12175 { // shift_expr '>>' sum
12176 if (p->error_indicator) {
12177 D(p->level--);
12178 return NULL;
12179 }
12180 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12181 Token * _literal;
12182 expr_ty a;
12183 expr_ty b;
12184 if (
12185 (a = shift_expr_rule(p)) // shift_expr
12186 &&
12187 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12188 &&
12189 (b = sum_rule(p)) // sum
12190 )
12191 {
12192 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12194 if (_token == NULL) {
12195 D(p->level--);
12196 return NULL;
12197 }
12198 int _end_lineno = _token->end_lineno;
12199 UNUSED(_end_lineno); // Only used by EXTRA macro
12200 int _end_col_offset = _token->end_col_offset;
12201 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012202 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012203 if (_res == NULL && PyErr_Occurred()) {
12204 p->error_indicator = 1;
12205 D(p->level--);
12206 return NULL;
12207 }
12208 goto done;
12209 }
12210 p->mark = _mark;
12211 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12213 }
12214 { // sum
12215 if (p->error_indicator) {
12216 D(p->level--);
12217 return NULL;
12218 }
12219 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12220 expr_ty sum_var;
12221 if (
12222 (sum_var = sum_rule(p)) // sum
12223 )
12224 {
12225 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12226 _res = sum_var;
12227 goto done;
12228 }
12229 p->mark = _mark;
12230 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12232 }
12233 _res = NULL;
12234 done:
12235 D(p->level--);
12236 return _res;
12237}
12238
12239// Left-recursive
12240// sum: sum '+' term | sum '-' term | term
12241static expr_ty sum_raw(Parser *);
12242static expr_ty
12243sum_rule(Parser *p)
12244{
12245 D(p->level++);
12246 expr_ty _res = NULL;
12247 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12248 D(p->level--);
12249 return _res;
12250 }
12251 int _mark = p->mark;
12252 int _resmark = p->mark;
12253 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012254 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12255 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012256 D(p->level--);
12257 return _res;
12258 }
12259 p->mark = _mark;
12260 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012261 if (p->error_indicator)
12262 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012263 if (_raw == NULL || p->mark <= _resmark)
12264 break;
12265 _resmark = p->mark;
12266 _res = _raw;
12267 }
12268 p->mark = _resmark;
12269 D(p->level--);
12270 return _res;
12271}
12272static expr_ty
12273sum_raw(Parser *p)
12274{
12275 D(p->level++);
12276 if (p->error_indicator) {
12277 D(p->level--);
12278 return NULL;
12279 }
12280 expr_ty _res = NULL;
12281 int _mark = p->mark;
12282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12283 p->error_indicator = 1;
12284 D(p->level--);
12285 return NULL;
12286 }
12287 int _start_lineno = p->tokens[_mark]->lineno;
12288 UNUSED(_start_lineno); // Only used by EXTRA macro
12289 int _start_col_offset = p->tokens[_mark]->col_offset;
12290 UNUSED(_start_col_offset); // Only used by EXTRA macro
12291 { // sum '+' term
12292 if (p->error_indicator) {
12293 D(p->level--);
12294 return NULL;
12295 }
12296 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12297 Token * _literal;
12298 expr_ty a;
12299 expr_ty b;
12300 if (
12301 (a = sum_rule(p)) // sum
12302 &&
12303 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12304 &&
12305 (b = term_rule(p)) // term
12306 )
12307 {
12308 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12309 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12310 if (_token == NULL) {
12311 D(p->level--);
12312 return NULL;
12313 }
12314 int _end_lineno = _token->end_lineno;
12315 UNUSED(_end_lineno); // Only used by EXTRA macro
12316 int _end_col_offset = _token->end_col_offset;
12317 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012318 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012319 if (_res == NULL && PyErr_Occurred()) {
12320 p->error_indicator = 1;
12321 D(p->level--);
12322 return NULL;
12323 }
12324 goto done;
12325 }
12326 p->mark = _mark;
12327 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12329 }
12330 { // sum '-' term
12331 if (p->error_indicator) {
12332 D(p->level--);
12333 return NULL;
12334 }
12335 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12336 Token * _literal;
12337 expr_ty a;
12338 expr_ty b;
12339 if (
12340 (a = sum_rule(p)) // sum
12341 &&
12342 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12343 &&
12344 (b = term_rule(p)) // term
12345 )
12346 {
12347 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12349 if (_token == NULL) {
12350 D(p->level--);
12351 return NULL;
12352 }
12353 int _end_lineno = _token->end_lineno;
12354 UNUSED(_end_lineno); // Only used by EXTRA macro
12355 int _end_col_offset = _token->end_col_offset;
12356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012357 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012358 if (_res == NULL && PyErr_Occurred()) {
12359 p->error_indicator = 1;
12360 D(p->level--);
12361 return NULL;
12362 }
12363 goto done;
12364 }
12365 p->mark = _mark;
12366 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12368 }
12369 { // term
12370 if (p->error_indicator) {
12371 D(p->level--);
12372 return NULL;
12373 }
12374 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12375 expr_ty term_var;
12376 if (
12377 (term_var = term_rule(p)) // term
12378 )
12379 {
12380 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12381 _res = term_var;
12382 goto done;
12383 }
12384 p->mark = _mark;
12385 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12387 }
12388 _res = NULL;
12389 done:
12390 D(p->level--);
12391 return _res;
12392}
12393
12394// Left-recursive
12395// term:
12396// | term '*' factor
12397// | term '/' factor
12398// | term '//' factor
12399// | term '%' factor
12400// | term '@' factor
12401// | factor
12402static expr_ty term_raw(Parser *);
12403static expr_ty
12404term_rule(Parser *p)
12405{
12406 D(p->level++);
12407 expr_ty _res = NULL;
12408 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12409 D(p->level--);
12410 return _res;
12411 }
12412 int _mark = p->mark;
12413 int _resmark = p->mark;
12414 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012415 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12416 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012417 D(p->level--);
12418 return _res;
12419 }
12420 p->mark = _mark;
12421 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012422 if (p->error_indicator)
12423 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012424 if (_raw == NULL || p->mark <= _resmark)
12425 break;
12426 _resmark = p->mark;
12427 _res = _raw;
12428 }
12429 p->mark = _resmark;
12430 D(p->level--);
12431 return _res;
12432}
12433static expr_ty
12434term_raw(Parser *p)
12435{
12436 D(p->level++);
12437 if (p->error_indicator) {
12438 D(p->level--);
12439 return NULL;
12440 }
12441 expr_ty _res = NULL;
12442 int _mark = p->mark;
12443 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12444 p->error_indicator = 1;
12445 D(p->level--);
12446 return NULL;
12447 }
12448 int _start_lineno = p->tokens[_mark]->lineno;
12449 UNUSED(_start_lineno); // Only used by EXTRA macro
12450 int _start_col_offset = p->tokens[_mark]->col_offset;
12451 UNUSED(_start_col_offset); // Only used by EXTRA macro
12452 { // term '*' factor
12453 if (p->error_indicator) {
12454 D(p->level--);
12455 return NULL;
12456 }
12457 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12458 Token * _literal;
12459 expr_ty a;
12460 expr_ty b;
12461 if (
12462 (a = term_rule(p)) // term
12463 &&
12464 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12465 &&
12466 (b = factor_rule(p)) // factor
12467 )
12468 {
12469 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12471 if (_token == NULL) {
12472 D(p->level--);
12473 return NULL;
12474 }
12475 int _end_lineno = _token->end_lineno;
12476 UNUSED(_end_lineno); // Only used by EXTRA macro
12477 int _end_col_offset = _token->end_col_offset;
12478 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012479 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012480 if (_res == NULL && PyErr_Occurred()) {
12481 p->error_indicator = 1;
12482 D(p->level--);
12483 return NULL;
12484 }
12485 goto done;
12486 }
12487 p->mark = _mark;
12488 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12490 }
12491 { // term '/' factor
12492 if (p->error_indicator) {
12493 D(p->level--);
12494 return NULL;
12495 }
12496 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12497 Token * _literal;
12498 expr_ty a;
12499 expr_ty b;
12500 if (
12501 (a = term_rule(p)) // term
12502 &&
12503 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12504 &&
12505 (b = factor_rule(p)) // factor
12506 )
12507 {
12508 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12509 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12510 if (_token == NULL) {
12511 D(p->level--);
12512 return NULL;
12513 }
12514 int _end_lineno = _token->end_lineno;
12515 UNUSED(_end_lineno); // Only used by EXTRA macro
12516 int _end_col_offset = _token->end_col_offset;
12517 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012518 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012519 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 term[%d-%d]: %s failed!\n", p->level, ' ',
12528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12529 }
12530 { // term '//' factor
12531 if (p->error_indicator) {
12532 D(p->level--);
12533 return NULL;
12534 }
12535 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12536 Token * _literal;
12537 expr_ty a;
12538 expr_ty b;
12539 if (
12540 (a = term_rule(p)) // term
12541 &&
12542 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12543 &&
12544 (b = factor_rule(p)) // factor
12545 )
12546 {
12547 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12548 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12549 if (_token == NULL) {
12550 D(p->level--);
12551 return NULL;
12552 }
12553 int _end_lineno = _token->end_lineno;
12554 UNUSED(_end_lineno); // Only used by EXTRA macro
12555 int _end_col_offset = _token->end_col_offset;
12556 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012557 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012558 if (_res == NULL && PyErr_Occurred()) {
12559 p->error_indicator = 1;
12560 D(p->level--);
12561 return NULL;
12562 }
12563 goto done;
12564 }
12565 p->mark = _mark;
12566 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12568 }
12569 { // term '%' factor
12570 if (p->error_indicator) {
12571 D(p->level--);
12572 return NULL;
12573 }
12574 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12575 Token * _literal;
12576 expr_ty a;
12577 expr_ty b;
12578 if (
12579 (a = term_rule(p)) // term
12580 &&
12581 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12582 &&
12583 (b = factor_rule(p)) // factor
12584 )
12585 {
12586 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12588 if (_token == NULL) {
12589 D(p->level--);
12590 return NULL;
12591 }
12592 int _end_lineno = _token->end_lineno;
12593 UNUSED(_end_lineno); // Only used by EXTRA macro
12594 int _end_col_offset = _token->end_col_offset;
12595 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012596 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012597 if (_res == NULL && PyErr_Occurred()) {
12598 p->error_indicator = 1;
12599 D(p->level--);
12600 return NULL;
12601 }
12602 goto done;
12603 }
12604 p->mark = _mark;
12605 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12607 }
12608 { // term '@' factor
12609 if (p->error_indicator) {
12610 D(p->level--);
12611 return NULL;
12612 }
12613 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12614 Token * _literal;
12615 expr_ty a;
12616 expr_ty b;
12617 if (
12618 (a = term_rule(p)) // term
12619 &&
12620 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12621 &&
12622 (b = factor_rule(p)) // factor
12623 )
12624 {
12625 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12627 if (_token == NULL) {
12628 D(p->level--);
12629 return NULL;
12630 }
12631 int _end_lineno = _token->end_lineno;
12632 UNUSED(_end_lineno); // Only used by EXTRA macro
12633 int _end_col_offset = _token->end_col_offset;
12634 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012635 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012636 if (_res == NULL && PyErr_Occurred()) {
12637 p->error_indicator = 1;
12638 D(p->level--);
12639 return NULL;
12640 }
12641 goto done;
12642 }
12643 p->mark = _mark;
12644 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12646 }
12647 { // factor
12648 if (p->error_indicator) {
12649 D(p->level--);
12650 return NULL;
12651 }
12652 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12653 expr_ty factor_var;
12654 if (
12655 (factor_var = factor_rule(p)) // factor
12656 )
12657 {
12658 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12659 _res = factor_var;
12660 goto done;
12661 }
12662 p->mark = _mark;
12663 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12665 }
12666 _res = NULL;
12667 done:
12668 D(p->level--);
12669 return _res;
12670}
12671
12672// factor: '+' factor | '-' factor | '~' factor | power
12673static expr_ty
12674factor_rule(Parser *p)
12675{
12676 D(p->level++);
12677 if (p->error_indicator) {
12678 D(p->level--);
12679 return NULL;
12680 }
12681 expr_ty _res = NULL;
12682 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12683 D(p->level--);
12684 return _res;
12685 }
12686 int _mark = p->mark;
12687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12688 p->error_indicator = 1;
12689 D(p->level--);
12690 return NULL;
12691 }
12692 int _start_lineno = p->tokens[_mark]->lineno;
12693 UNUSED(_start_lineno); // Only used by EXTRA macro
12694 int _start_col_offset = p->tokens[_mark]->col_offset;
12695 UNUSED(_start_col_offset); // Only used by EXTRA macro
12696 { // '+' factor
12697 if (p->error_indicator) {
12698 D(p->level--);
12699 return NULL;
12700 }
12701 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12702 Token * _literal;
12703 expr_ty a;
12704 if (
12705 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12706 &&
12707 (a = factor_rule(p)) // factor
12708 )
12709 {
12710 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12712 if (_token == NULL) {
12713 D(p->level--);
12714 return NULL;
12715 }
12716 int _end_lineno = _token->end_lineno;
12717 UNUSED(_end_lineno); // Only used by EXTRA macro
12718 int _end_col_offset = _token->end_col_offset;
12719 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012720 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012721 if (_res == NULL && PyErr_Occurred()) {
12722 p->error_indicator = 1;
12723 D(p->level--);
12724 return NULL;
12725 }
12726 goto done;
12727 }
12728 p->mark = _mark;
12729 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12731 }
12732 { // '-' factor
12733 if (p->error_indicator) {
12734 D(p->level--);
12735 return NULL;
12736 }
12737 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12738 Token * _literal;
12739 expr_ty a;
12740 if (
12741 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12742 &&
12743 (a = factor_rule(p)) // factor
12744 )
12745 {
12746 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12748 if (_token == NULL) {
12749 D(p->level--);
12750 return NULL;
12751 }
12752 int _end_lineno = _token->end_lineno;
12753 UNUSED(_end_lineno); // Only used by EXTRA macro
12754 int _end_col_offset = _token->end_col_offset;
12755 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012756 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012757 if (_res == NULL && PyErr_Occurred()) {
12758 p->error_indicator = 1;
12759 D(p->level--);
12760 return NULL;
12761 }
12762 goto done;
12763 }
12764 p->mark = _mark;
12765 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12767 }
12768 { // '~' factor
12769 if (p->error_indicator) {
12770 D(p->level--);
12771 return NULL;
12772 }
12773 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12774 Token * _literal;
12775 expr_ty a;
12776 if (
12777 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12778 &&
12779 (a = factor_rule(p)) // factor
12780 )
12781 {
12782 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12784 if (_token == NULL) {
12785 D(p->level--);
12786 return NULL;
12787 }
12788 int _end_lineno = _token->end_lineno;
12789 UNUSED(_end_lineno); // Only used by EXTRA macro
12790 int _end_col_offset = _token->end_col_offset;
12791 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012792 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012793 if (_res == NULL && PyErr_Occurred()) {
12794 p->error_indicator = 1;
12795 D(p->level--);
12796 return NULL;
12797 }
12798 goto done;
12799 }
12800 p->mark = _mark;
12801 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12803 }
12804 { // power
12805 if (p->error_indicator) {
12806 D(p->level--);
12807 return NULL;
12808 }
12809 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12810 expr_ty power_var;
12811 if (
12812 (power_var = power_rule(p)) // power
12813 )
12814 {
12815 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12816 _res = power_var;
12817 goto done;
12818 }
12819 p->mark = _mark;
12820 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12822 }
12823 _res = NULL;
12824 done:
12825 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12826 D(p->level--);
12827 return _res;
12828}
12829
12830// power: await_primary '**' factor | await_primary
12831static expr_ty
12832power_rule(Parser *p)
12833{
12834 D(p->level++);
12835 if (p->error_indicator) {
12836 D(p->level--);
12837 return NULL;
12838 }
12839 expr_ty _res = NULL;
12840 int _mark = p->mark;
12841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12842 p->error_indicator = 1;
12843 D(p->level--);
12844 return NULL;
12845 }
12846 int _start_lineno = p->tokens[_mark]->lineno;
12847 UNUSED(_start_lineno); // Only used by EXTRA macro
12848 int _start_col_offset = p->tokens[_mark]->col_offset;
12849 UNUSED(_start_col_offset); // Only used by EXTRA macro
12850 { // await_primary '**' factor
12851 if (p->error_indicator) {
12852 D(p->level--);
12853 return NULL;
12854 }
12855 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12856 Token * _literal;
12857 expr_ty a;
12858 expr_ty b;
12859 if (
12860 (a = await_primary_rule(p)) // await_primary
12861 &&
12862 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12863 &&
12864 (b = factor_rule(p)) // factor
12865 )
12866 {
12867 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12869 if (_token == NULL) {
12870 D(p->level--);
12871 return NULL;
12872 }
12873 int _end_lineno = _token->end_lineno;
12874 UNUSED(_end_lineno); // Only used by EXTRA macro
12875 int _end_col_offset = _token->end_col_offset;
12876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012877 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012878 if (_res == NULL && PyErr_Occurred()) {
12879 p->error_indicator = 1;
12880 D(p->level--);
12881 return NULL;
12882 }
12883 goto done;
12884 }
12885 p->mark = _mark;
12886 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12888 }
12889 { // await_primary
12890 if (p->error_indicator) {
12891 D(p->level--);
12892 return NULL;
12893 }
12894 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12895 expr_ty await_primary_var;
12896 if (
12897 (await_primary_var = await_primary_rule(p)) // await_primary
12898 )
12899 {
12900 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12901 _res = await_primary_var;
12902 goto done;
12903 }
12904 p->mark = _mark;
12905 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12907 }
12908 _res = NULL;
12909 done:
12910 D(p->level--);
12911 return _res;
12912}
12913
12914// await_primary: AWAIT primary | primary
12915static expr_ty
12916await_primary_rule(Parser *p)
12917{
12918 D(p->level++);
12919 if (p->error_indicator) {
12920 D(p->level--);
12921 return NULL;
12922 }
12923 expr_ty _res = NULL;
12924 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12925 D(p->level--);
12926 return _res;
12927 }
12928 int _mark = p->mark;
12929 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12930 p->error_indicator = 1;
12931 D(p->level--);
12932 return NULL;
12933 }
12934 int _start_lineno = p->tokens[_mark]->lineno;
12935 UNUSED(_start_lineno); // Only used by EXTRA macro
12936 int _start_col_offset = p->tokens[_mark]->col_offset;
12937 UNUSED(_start_col_offset); // Only used by EXTRA macro
12938 { // AWAIT primary
12939 if (p->error_indicator) {
12940 D(p->level--);
12941 return NULL;
12942 }
12943 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12944 expr_ty a;
12945 Token * await_var;
12946 if (
12947 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12948 &&
12949 (a = primary_rule(p)) // primary
12950 )
12951 {
12952 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12954 if (_token == NULL) {
12955 D(p->level--);
12956 return NULL;
12957 }
12958 int _end_lineno = _token->end_lineno;
12959 UNUSED(_end_lineno); // Only used by EXTRA macro
12960 int _end_col_offset = _token->end_col_offset;
12961 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012962 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012963 if (_res == NULL && PyErr_Occurred()) {
12964 p->error_indicator = 1;
12965 D(p->level--);
12966 return NULL;
12967 }
12968 goto done;
12969 }
12970 p->mark = _mark;
12971 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12973 }
12974 { // primary
12975 if (p->error_indicator) {
12976 D(p->level--);
12977 return NULL;
12978 }
12979 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12980 expr_ty primary_var;
12981 if (
12982 (primary_var = primary_rule(p)) // primary
12983 )
12984 {
12985 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12986 _res = primary_var;
12987 goto done;
12988 }
12989 p->mark = _mark;
12990 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12992 }
12993 _res = NULL;
12994 done:
12995 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12996 D(p->level--);
12997 return _res;
12998}
12999
13000// Left-recursive
13001// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013002// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013003// | primary '.' NAME
13004// | primary genexp
13005// | primary '(' arguments? ')'
13006// | primary '[' slices ']'
13007// | atom
13008static expr_ty primary_raw(Parser *);
13009static expr_ty
13010primary_rule(Parser *p)
13011{
13012 D(p->level++);
13013 expr_ty _res = NULL;
13014 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13015 D(p->level--);
13016 return _res;
13017 }
13018 int _mark = p->mark;
13019 int _resmark = p->mark;
13020 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013021 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13022 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013023 D(p->level--);
13024 return _res;
13025 }
13026 p->mark = _mark;
13027 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013028 if (p->error_indicator)
13029 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013030 if (_raw == NULL || p->mark <= _resmark)
13031 break;
13032 _resmark = p->mark;
13033 _res = _raw;
13034 }
13035 p->mark = _resmark;
13036 D(p->level--);
13037 return _res;
13038}
13039static expr_ty
13040primary_raw(Parser *p)
13041{
13042 D(p->level++);
13043 if (p->error_indicator) {
13044 D(p->level--);
13045 return NULL;
13046 }
13047 expr_ty _res = NULL;
13048 int _mark = p->mark;
13049 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13050 p->error_indicator = 1;
13051 D(p->level--);
13052 return NULL;
13053 }
13054 int _start_lineno = p->tokens[_mark]->lineno;
13055 UNUSED(_start_lineno); // Only used by EXTRA macro
13056 int _start_col_offset = p->tokens[_mark]->col_offset;
13057 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013058 if (p->call_invalid_rules) { // invalid_primary
13059 if (p->error_indicator) {
13060 D(p->level--);
13061 return NULL;
13062 }
13063 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13064 void *invalid_primary_var;
13065 if (
13066 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13067 )
13068 {
13069 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13070 _res = invalid_primary_var;
13071 goto done;
13072 }
13073 p->mark = _mark;
13074 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13076 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013077 { // primary '.' NAME
13078 if (p->error_indicator) {
13079 D(p->level--);
13080 return NULL;
13081 }
13082 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13083 Token * _literal;
13084 expr_ty a;
13085 expr_ty b;
13086 if (
13087 (a = primary_rule(p)) // primary
13088 &&
13089 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13090 &&
13091 (b = _PyPegen_name_token(p)) // NAME
13092 )
13093 {
13094 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13096 if (_token == NULL) {
13097 D(p->level--);
13098 return NULL;
13099 }
13100 int _end_lineno = _token->end_lineno;
13101 UNUSED(_end_lineno); // Only used by EXTRA macro
13102 int _end_col_offset = _token->end_col_offset;
13103 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013104 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013105 if (_res == NULL && PyErr_Occurred()) {
13106 p->error_indicator = 1;
13107 D(p->level--);
13108 return NULL;
13109 }
13110 goto done;
13111 }
13112 p->mark = _mark;
13113 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13115 }
13116 { // primary genexp
13117 if (p->error_indicator) {
13118 D(p->level--);
13119 return NULL;
13120 }
13121 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13122 expr_ty a;
13123 expr_ty b;
13124 if (
13125 (a = primary_rule(p)) // primary
13126 &&
13127 (b = genexp_rule(p)) // genexp
13128 )
13129 {
13130 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13131 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13132 if (_token == NULL) {
13133 D(p->level--);
13134 return NULL;
13135 }
13136 int _end_lineno = _token->end_lineno;
13137 UNUSED(_end_lineno); // Only used by EXTRA macro
13138 int _end_col_offset = _token->end_col_offset;
13139 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013140 _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 +010013141 if (_res == NULL && PyErr_Occurred()) {
13142 p->error_indicator = 1;
13143 D(p->level--);
13144 return NULL;
13145 }
13146 goto done;
13147 }
13148 p->mark = _mark;
13149 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13151 }
13152 { // primary '(' arguments? ')'
13153 if (p->error_indicator) {
13154 D(p->level--);
13155 return NULL;
13156 }
13157 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13158 Token * _literal;
13159 Token * _literal_1;
13160 expr_ty a;
13161 void *b;
13162 if (
13163 (a = primary_rule(p)) // primary
13164 &&
13165 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13166 &&
13167 (b = arguments_rule(p), 1) // arguments?
13168 &&
13169 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13170 )
13171 {
13172 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13174 if (_token == NULL) {
13175 D(p->level--);
13176 return NULL;
13177 }
13178 int _end_lineno = _token->end_lineno;
13179 UNUSED(_end_lineno); // Only used by EXTRA macro
13180 int _end_col_offset = _token->end_col_offset;
13181 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013182 _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 +010013183 if (_res == NULL && PyErr_Occurred()) {
13184 p->error_indicator = 1;
13185 D(p->level--);
13186 return NULL;
13187 }
13188 goto done;
13189 }
13190 p->mark = _mark;
13191 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13193 }
13194 { // primary '[' slices ']'
13195 if (p->error_indicator) {
13196 D(p->level--);
13197 return NULL;
13198 }
13199 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13200 Token * _literal;
13201 Token * _literal_1;
13202 expr_ty a;
13203 expr_ty b;
13204 if (
13205 (a = primary_rule(p)) // primary
13206 &&
13207 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13208 &&
13209 (b = slices_rule(p)) // slices
13210 &&
13211 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13212 )
13213 {
13214 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13215 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13216 if (_token == NULL) {
13217 D(p->level--);
13218 return NULL;
13219 }
13220 int _end_lineno = _token->end_lineno;
13221 UNUSED(_end_lineno); // Only used by EXTRA macro
13222 int _end_col_offset = _token->end_col_offset;
13223 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013224 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013225 if (_res == NULL && PyErr_Occurred()) {
13226 p->error_indicator = 1;
13227 D(p->level--);
13228 return NULL;
13229 }
13230 goto done;
13231 }
13232 p->mark = _mark;
13233 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13235 }
13236 { // atom
13237 if (p->error_indicator) {
13238 D(p->level--);
13239 return NULL;
13240 }
13241 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13242 expr_ty atom_var;
13243 if (
13244 (atom_var = atom_rule(p)) // atom
13245 )
13246 {
13247 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13248 _res = atom_var;
13249 goto done;
13250 }
13251 p->mark = _mark;
13252 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13254 }
13255 _res = NULL;
13256 done:
13257 D(p->level--);
13258 return _res;
13259}
13260
13261// slices: slice !',' | ','.slice+ ','?
13262static expr_ty
13263slices_rule(Parser *p)
13264{
13265 D(p->level++);
13266 if (p->error_indicator) {
13267 D(p->level--);
13268 return NULL;
13269 }
13270 expr_ty _res = NULL;
13271 int _mark = p->mark;
13272 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13273 p->error_indicator = 1;
13274 D(p->level--);
13275 return NULL;
13276 }
13277 int _start_lineno = p->tokens[_mark]->lineno;
13278 UNUSED(_start_lineno); // Only used by EXTRA macro
13279 int _start_col_offset = p->tokens[_mark]->col_offset;
13280 UNUSED(_start_col_offset); // Only used by EXTRA macro
13281 { // slice !','
13282 if (p->error_indicator) {
13283 D(p->level--);
13284 return NULL;
13285 }
13286 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13287 expr_ty a;
13288 if (
13289 (a = slice_rule(p)) // slice
13290 &&
13291 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13292 )
13293 {
13294 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13295 _res = a;
13296 if (_res == NULL && PyErr_Occurred()) {
13297 p->error_indicator = 1;
13298 D(p->level--);
13299 return NULL;
13300 }
13301 goto done;
13302 }
13303 p->mark = _mark;
13304 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13306 }
13307 { // ','.slice+ ','?
13308 if (p->error_indicator) {
13309 D(p->level--);
13310 return NULL;
13311 }
13312 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13313 void *_opt_var;
13314 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013315 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013316 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013317 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013318 &&
13319 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13320 )
13321 {
13322 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13323 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13324 if (_token == NULL) {
13325 D(p->level--);
13326 return NULL;
13327 }
13328 int _end_lineno = _token->end_lineno;
13329 UNUSED(_end_lineno); // Only used by EXTRA macro
13330 int _end_col_offset = _token->end_col_offset;
13331 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013332 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013333 if (_res == NULL && PyErr_Occurred()) {
13334 p->error_indicator = 1;
13335 D(p->level--);
13336 return NULL;
13337 }
13338 goto done;
13339 }
13340 p->mark = _mark;
13341 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13343 }
13344 _res = NULL;
13345 done:
13346 D(p->level--);
13347 return _res;
13348}
13349
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013350// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013351static expr_ty
13352slice_rule(Parser *p)
13353{
13354 D(p->level++);
13355 if (p->error_indicator) {
13356 D(p->level--);
13357 return NULL;
13358 }
13359 expr_ty _res = NULL;
13360 int _mark = p->mark;
13361 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13362 p->error_indicator = 1;
13363 D(p->level--);
13364 return NULL;
13365 }
13366 int _start_lineno = p->tokens[_mark]->lineno;
13367 UNUSED(_start_lineno); // Only used by EXTRA macro
13368 int _start_col_offset = p->tokens[_mark]->col_offset;
13369 UNUSED(_start_col_offset); // Only used by EXTRA macro
13370 { // expression? ':' expression? [':' expression?]
13371 if (p->error_indicator) {
13372 D(p->level--);
13373 return NULL;
13374 }
13375 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13376 Token * _literal;
13377 void *a;
13378 void *b;
13379 void *c;
13380 if (
13381 (a = expression_rule(p), 1) // expression?
13382 &&
13383 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13384 &&
13385 (b = expression_rule(p), 1) // expression?
13386 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013387 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013388 )
13389 {
13390 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13391 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13392 if (_token == NULL) {
13393 D(p->level--);
13394 return NULL;
13395 }
13396 int _end_lineno = _token->end_lineno;
13397 UNUSED(_end_lineno); // Only used by EXTRA macro
13398 int _end_col_offset = _token->end_col_offset;
13399 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013400 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013401 if (_res == NULL && PyErr_Occurred()) {
13402 p->error_indicator = 1;
13403 D(p->level--);
13404 return NULL;
13405 }
13406 goto done;
13407 }
13408 p->mark = _mark;
13409 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13411 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013412 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013413 if (p->error_indicator) {
13414 D(p->level--);
13415 return NULL;
13416 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013417 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013418 expr_ty a;
13419 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013420 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013421 )
13422 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013423 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013424 _res = a;
13425 if (_res == NULL && PyErr_Occurred()) {
13426 p->error_indicator = 1;
13427 D(p->level--);
13428 return NULL;
13429 }
13430 goto done;
13431 }
13432 p->mark = _mark;
13433 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013435 }
13436 _res = NULL;
13437 done:
13438 D(p->level--);
13439 return _res;
13440}
13441
13442// atom:
13443// | NAME
13444// | 'True'
13445// | 'False'
13446// | 'None'
13447// | &STRING strings
13448// | NUMBER
13449// | &'(' (tuple | group | genexp)
13450// | &'[' (list | listcomp)
13451// | &'{' (dict | set | dictcomp | setcomp)
13452// | '...'
13453static expr_ty
13454atom_rule(Parser *p)
13455{
13456 D(p->level++);
13457 if (p->error_indicator) {
13458 D(p->level--);
13459 return NULL;
13460 }
13461 expr_ty _res = NULL;
13462 int _mark = p->mark;
13463 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13464 p->error_indicator = 1;
13465 D(p->level--);
13466 return NULL;
13467 }
13468 int _start_lineno = p->tokens[_mark]->lineno;
13469 UNUSED(_start_lineno); // Only used by EXTRA macro
13470 int _start_col_offset = p->tokens[_mark]->col_offset;
13471 UNUSED(_start_col_offset); // Only used by EXTRA macro
13472 { // NAME
13473 if (p->error_indicator) {
13474 D(p->level--);
13475 return NULL;
13476 }
13477 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13478 expr_ty name_var;
13479 if (
13480 (name_var = _PyPegen_name_token(p)) // NAME
13481 )
13482 {
13483 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13484 _res = name_var;
13485 goto done;
13486 }
13487 p->mark = _mark;
13488 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13490 }
13491 { // 'True'
13492 if (p->error_indicator) {
13493 D(p->level--);
13494 return NULL;
13495 }
13496 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13497 Token * _keyword;
13498 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013499 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013500 )
13501 {
13502 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13504 if (_token == NULL) {
13505 D(p->level--);
13506 return NULL;
13507 }
13508 int _end_lineno = _token->end_lineno;
13509 UNUSED(_end_lineno); // Only used by EXTRA macro
13510 int _end_col_offset = _token->end_col_offset;
13511 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013512 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013513 if (_res == NULL && PyErr_Occurred()) {
13514 p->error_indicator = 1;
13515 D(p->level--);
13516 return NULL;
13517 }
13518 goto done;
13519 }
13520 p->mark = _mark;
13521 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13523 }
13524 { // 'False'
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13530 Token * _keyword;
13531 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013532 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013533 )
13534 {
13535 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13537 if (_token == NULL) {
13538 D(p->level--);
13539 return NULL;
13540 }
13541 int _end_lineno = _token->end_lineno;
13542 UNUSED(_end_lineno); // Only used by EXTRA macro
13543 int _end_col_offset = _token->end_col_offset;
13544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013545 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013546 if (_res == NULL && PyErr_Occurred()) {
13547 p->error_indicator = 1;
13548 D(p->level--);
13549 return NULL;
13550 }
13551 goto done;
13552 }
13553 p->mark = _mark;
13554 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13556 }
13557 { // 'None'
13558 if (p->error_indicator) {
13559 D(p->level--);
13560 return NULL;
13561 }
13562 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13563 Token * _keyword;
13564 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013565 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013566 )
13567 {
13568 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13569 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13570 if (_token == NULL) {
13571 D(p->level--);
13572 return NULL;
13573 }
13574 int _end_lineno = _token->end_lineno;
13575 UNUSED(_end_lineno); // Only used by EXTRA macro
13576 int _end_col_offset = _token->end_col_offset;
13577 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013578 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013579 if (_res == NULL && PyErr_Occurred()) {
13580 p->error_indicator = 1;
13581 D(p->level--);
13582 return NULL;
13583 }
13584 goto done;
13585 }
13586 p->mark = _mark;
13587 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13589 }
13590 { // &STRING strings
13591 if (p->error_indicator) {
13592 D(p->level--);
13593 return NULL;
13594 }
13595 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13596 expr_ty strings_var;
13597 if (
13598 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13599 &&
13600 (strings_var = strings_rule(p)) // strings
13601 )
13602 {
13603 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13604 _res = strings_var;
13605 goto done;
13606 }
13607 p->mark = _mark;
13608 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13610 }
13611 { // NUMBER
13612 if (p->error_indicator) {
13613 D(p->level--);
13614 return NULL;
13615 }
13616 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13617 expr_ty number_var;
13618 if (
13619 (number_var = _PyPegen_number_token(p)) // NUMBER
13620 )
13621 {
13622 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13623 _res = number_var;
13624 goto done;
13625 }
13626 p->mark = _mark;
13627 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13629 }
13630 { // &'(' (tuple | group | genexp)
13631 if (p->error_indicator) {
13632 D(p->level--);
13633 return NULL;
13634 }
13635 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013636 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013637 if (
13638 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13639 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013640 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013641 )
13642 {
13643 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 -080013644 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013645 goto done;
13646 }
13647 p->mark = _mark;
13648 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13650 }
13651 { // &'[' (list | listcomp)
13652 if (p->error_indicator) {
13653 D(p->level--);
13654 return NULL;
13655 }
13656 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013657 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013658 if (
13659 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13660 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013661 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013662 )
13663 {
13664 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013665 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013666 goto done;
13667 }
13668 p->mark = _mark;
13669 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13671 }
13672 { // &'{' (dict | set | dictcomp | setcomp)
13673 if (p->error_indicator) {
13674 D(p->level--);
13675 return NULL;
13676 }
13677 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 -080013678 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013679 if (
13680 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13681 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013682 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013683 )
13684 {
13685 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 -080013686 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013687 goto done;
13688 }
13689 p->mark = _mark;
13690 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13692 }
13693 { // '...'
13694 if (p->error_indicator) {
13695 D(p->level--);
13696 return NULL;
13697 }
13698 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13699 Token * _literal;
13700 if (
13701 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13702 )
13703 {
13704 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13705 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13706 if (_token == NULL) {
13707 D(p->level--);
13708 return NULL;
13709 }
13710 int _end_lineno = _token->end_lineno;
13711 UNUSED(_end_lineno); // Only used by EXTRA macro
13712 int _end_col_offset = _token->end_col_offset;
13713 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013714 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013715 if (_res == NULL && PyErr_Occurred()) {
13716 p->error_indicator = 1;
13717 D(p->level--);
13718 return NULL;
13719 }
13720 goto done;
13721 }
13722 p->mark = _mark;
13723 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13725 }
13726 _res = NULL;
13727 done:
13728 D(p->level--);
13729 return _res;
13730}
13731
13732// strings: STRING+
13733static expr_ty
13734strings_rule(Parser *p)
13735{
13736 D(p->level++);
13737 if (p->error_indicator) {
13738 D(p->level--);
13739 return NULL;
13740 }
13741 expr_ty _res = NULL;
13742 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13743 D(p->level--);
13744 return _res;
13745 }
13746 int _mark = p->mark;
13747 { // STRING+
13748 if (p->error_indicator) {
13749 D(p->level--);
13750 return NULL;
13751 }
13752 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13753 asdl_seq * a;
13754 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013755 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013756 )
13757 {
13758 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13759 _res = _PyPegen_concatenate_strings ( p , a );
13760 if (_res == NULL && PyErr_Occurred()) {
13761 p->error_indicator = 1;
13762 D(p->level--);
13763 return NULL;
13764 }
13765 goto done;
13766 }
13767 p->mark = _mark;
13768 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13770 }
13771 _res = NULL;
13772 done:
13773 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13774 D(p->level--);
13775 return _res;
13776}
13777
13778// list: '[' star_named_expressions? ']'
13779static expr_ty
13780list_rule(Parser *p)
13781{
13782 D(p->level++);
13783 if (p->error_indicator) {
13784 D(p->level--);
13785 return NULL;
13786 }
13787 expr_ty _res = NULL;
13788 int _mark = p->mark;
13789 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13790 p->error_indicator = 1;
13791 D(p->level--);
13792 return NULL;
13793 }
13794 int _start_lineno = p->tokens[_mark]->lineno;
13795 UNUSED(_start_lineno); // Only used by EXTRA macro
13796 int _start_col_offset = p->tokens[_mark]->col_offset;
13797 UNUSED(_start_col_offset); // Only used by EXTRA macro
13798 { // '[' star_named_expressions? ']'
13799 if (p->error_indicator) {
13800 D(p->level--);
13801 return NULL;
13802 }
13803 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13804 Token * _literal;
13805 Token * _literal_1;
13806 void *a;
13807 if (
13808 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13809 &&
13810 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13811 &&
13812 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13813 )
13814 {
13815 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13817 if (_token == NULL) {
13818 D(p->level--);
13819 return NULL;
13820 }
13821 int _end_lineno = _token->end_lineno;
13822 UNUSED(_end_lineno); // Only used by EXTRA macro
13823 int _end_col_offset = _token->end_col_offset;
13824 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013825 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013826 if (_res == NULL && PyErr_Occurred()) {
13827 p->error_indicator = 1;
13828 D(p->level--);
13829 return NULL;
13830 }
13831 goto done;
13832 }
13833 p->mark = _mark;
13834 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13836 }
13837 _res = NULL;
13838 done:
13839 D(p->level--);
13840 return _res;
13841}
13842
Pablo Galindo835f14f2021-01-31 22:52:56 +000013843// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013844static expr_ty
13845listcomp_rule(Parser *p)
13846{
13847 D(p->level++);
13848 if (p->error_indicator) {
13849 D(p->level--);
13850 return NULL;
13851 }
13852 expr_ty _res = NULL;
13853 int _mark = p->mark;
13854 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13855 p->error_indicator = 1;
13856 D(p->level--);
13857 return NULL;
13858 }
13859 int _start_lineno = p->tokens[_mark]->lineno;
13860 UNUSED(_start_lineno); // Only used by EXTRA macro
13861 int _start_col_offset = p->tokens[_mark]->col_offset;
13862 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013863 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013864 if (p->error_indicator) {
13865 D(p->level--);
13866 return NULL;
13867 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013868 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 +010013869 Token * _literal;
13870 Token * _literal_1;
13871 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013872 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013873 if (
13874 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13875 &&
13876 (a = named_expression_rule(p)) // named_expression
13877 &&
13878 (b = for_if_clauses_rule(p)) // for_if_clauses
13879 &&
13880 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13881 )
13882 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013883 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 +010013884 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13885 if (_token == NULL) {
13886 D(p->level--);
13887 return NULL;
13888 }
13889 int _end_lineno = _token->end_lineno;
13890 UNUSED(_end_lineno); // Only used by EXTRA macro
13891 int _end_col_offset = _token->end_col_offset;
13892 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013893 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013894 if (_res == NULL && PyErr_Occurred()) {
13895 p->error_indicator = 1;
13896 D(p->level--);
13897 return NULL;
13898 }
13899 goto done;
13900 }
13901 p->mark = _mark;
13902 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013904 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013905 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013906 if (p->error_indicator) {
13907 D(p->level--);
13908 return NULL;
13909 }
13910 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13911 void *invalid_comprehension_var;
13912 if (
13913 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13914 )
13915 {
13916 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13917 _res = invalid_comprehension_var;
13918 goto done;
13919 }
13920 p->mark = _mark;
13921 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13923 }
13924 _res = NULL;
13925 done:
13926 D(p->level--);
13927 return _res;
13928}
13929
13930// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13931static expr_ty
13932tuple_rule(Parser *p)
13933{
13934 D(p->level++);
13935 if (p->error_indicator) {
13936 D(p->level--);
13937 return NULL;
13938 }
13939 expr_ty _res = NULL;
13940 int _mark = p->mark;
13941 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13942 p->error_indicator = 1;
13943 D(p->level--);
13944 return NULL;
13945 }
13946 int _start_lineno = p->tokens[_mark]->lineno;
13947 UNUSED(_start_lineno); // Only used by EXTRA macro
13948 int _start_col_offset = p->tokens[_mark]->col_offset;
13949 UNUSED(_start_col_offset); // Only used by EXTRA macro
13950 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13951 if (p->error_indicator) {
13952 D(p->level--);
13953 return NULL;
13954 }
13955 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13956 Token * _literal;
13957 Token * _literal_1;
13958 void *a;
13959 if (
13960 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13961 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013962 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013963 &&
13964 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13965 )
13966 {
13967 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13968 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13969 if (_token == NULL) {
13970 D(p->level--);
13971 return NULL;
13972 }
13973 int _end_lineno = _token->end_lineno;
13974 UNUSED(_end_lineno); // Only used by EXTRA macro
13975 int _end_col_offset = _token->end_col_offset;
13976 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013977 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013978 if (_res == NULL && PyErr_Occurred()) {
13979 p->error_indicator = 1;
13980 D(p->level--);
13981 return NULL;
13982 }
13983 goto done;
13984 }
13985 p->mark = _mark;
13986 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13988 }
13989 _res = NULL;
13990 done:
13991 D(p->level--);
13992 return _res;
13993}
13994
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013995// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013996static expr_ty
13997group_rule(Parser *p)
13998{
13999 D(p->level++);
14000 if (p->error_indicator) {
14001 D(p->level--);
14002 return NULL;
14003 }
14004 expr_ty _res = NULL;
14005 int _mark = p->mark;
14006 { // '(' (yield_expr | named_expression) ')'
14007 if (p->error_indicator) {
14008 D(p->level--);
14009 return NULL;
14010 }
14011 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14012 Token * _literal;
14013 Token * _literal_1;
14014 void *a;
14015 if (
14016 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14017 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014018 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014019 &&
14020 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14021 )
14022 {
14023 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14024 _res = a;
14025 if (_res == NULL && PyErr_Occurred()) {
14026 p->error_indicator = 1;
14027 D(p->level--);
14028 return NULL;
14029 }
14030 goto done;
14031 }
14032 p->mark = _mark;
14033 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14035 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014036 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014037 if (p->error_indicator) {
14038 D(p->level--);
14039 return NULL;
14040 }
14041 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14042 void *invalid_group_var;
14043 if (
14044 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14045 )
14046 {
14047 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14048 _res = invalid_group_var;
14049 goto done;
14050 }
14051 p->mark = _mark;
14052 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14054 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014055 _res = NULL;
14056 done:
14057 D(p->level--);
14058 return _res;
14059}
14060
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014061// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014062static expr_ty
14063genexp_rule(Parser *p)
14064{
14065 D(p->level++);
14066 if (p->error_indicator) {
14067 D(p->level--);
14068 return NULL;
14069 }
14070 expr_ty _res = NULL;
14071 int _mark = p->mark;
14072 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14073 p->error_indicator = 1;
14074 D(p->level--);
14075 return NULL;
14076 }
14077 int _start_lineno = p->tokens[_mark]->lineno;
14078 UNUSED(_start_lineno); // Only used by EXTRA macro
14079 int _start_col_offset = p->tokens[_mark]->col_offset;
14080 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014081 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014082 if (p->error_indicator) {
14083 D(p->level--);
14084 return NULL;
14085 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014086 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014087 Token * _literal;
14088 Token * _literal_1;
14089 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014090 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014091 if (
14092 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14093 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014094 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014095 &&
14096 (b = for_if_clauses_rule(p)) // for_if_clauses
14097 &&
14098 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14099 )
14100 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014101 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14103 if (_token == NULL) {
14104 D(p->level--);
14105 return NULL;
14106 }
14107 int _end_lineno = _token->end_lineno;
14108 UNUSED(_end_lineno); // Only used by EXTRA macro
14109 int _end_col_offset = _token->end_col_offset;
14110 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014111 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014112 if (_res == NULL && PyErr_Occurred()) {
14113 p->error_indicator = 1;
14114 D(p->level--);
14115 return NULL;
14116 }
14117 goto done;
14118 }
14119 p->mark = _mark;
14120 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014122 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014123 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014124 if (p->error_indicator) {
14125 D(p->level--);
14126 return NULL;
14127 }
14128 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14129 void *invalid_comprehension_var;
14130 if (
14131 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14132 )
14133 {
14134 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14135 _res = invalid_comprehension_var;
14136 goto done;
14137 }
14138 p->mark = _mark;
14139 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14141 }
14142 _res = NULL;
14143 done:
14144 D(p->level--);
14145 return _res;
14146}
14147
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014148// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014149static expr_ty
14150set_rule(Parser *p)
14151{
14152 D(p->level++);
14153 if (p->error_indicator) {
14154 D(p->level--);
14155 return NULL;
14156 }
14157 expr_ty _res = NULL;
14158 int _mark = p->mark;
14159 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14160 p->error_indicator = 1;
14161 D(p->level--);
14162 return NULL;
14163 }
14164 int _start_lineno = p->tokens[_mark]->lineno;
14165 UNUSED(_start_lineno); // Only used by EXTRA macro
14166 int _start_col_offset = p->tokens[_mark]->col_offset;
14167 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014168 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014169 if (p->error_indicator) {
14170 D(p->level--);
14171 return NULL;
14172 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014173 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014174 Token * _literal;
14175 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014176 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014177 if (
14178 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14179 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014180 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014181 &&
14182 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14183 )
14184 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014185 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 +010014186 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14187 if (_token == NULL) {
14188 D(p->level--);
14189 return NULL;
14190 }
14191 int _end_lineno = _token->end_lineno;
14192 UNUSED(_end_lineno); // Only used by EXTRA macro
14193 int _end_col_offset = _token->end_col_offset;
14194 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014195 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014196 if (_res == NULL && PyErr_Occurred()) {
14197 p->error_indicator = 1;
14198 D(p->level--);
14199 return NULL;
14200 }
14201 goto done;
14202 }
14203 p->mark = _mark;
14204 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014206 }
14207 _res = NULL;
14208 done:
14209 D(p->level--);
14210 return _res;
14211}
14212
Pablo Galindo835f14f2021-01-31 22:52:56 +000014213// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014214static expr_ty
14215setcomp_rule(Parser *p)
14216{
14217 D(p->level++);
14218 if (p->error_indicator) {
14219 D(p->level--);
14220 return NULL;
14221 }
14222 expr_ty _res = NULL;
14223 int _mark = p->mark;
14224 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14225 p->error_indicator = 1;
14226 D(p->level--);
14227 return NULL;
14228 }
14229 int _start_lineno = p->tokens[_mark]->lineno;
14230 UNUSED(_start_lineno); // Only used by EXTRA macro
14231 int _start_col_offset = p->tokens[_mark]->col_offset;
14232 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014233 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014234 if (p->error_indicator) {
14235 D(p->level--);
14236 return NULL;
14237 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014238 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 +010014239 Token * _literal;
14240 Token * _literal_1;
14241 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014242 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014243 if (
14244 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14245 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014246 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014247 &&
14248 (b = for_if_clauses_rule(p)) // for_if_clauses
14249 &&
14250 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14251 )
14252 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014253 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 +010014254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14255 if (_token == NULL) {
14256 D(p->level--);
14257 return NULL;
14258 }
14259 int _end_lineno = _token->end_lineno;
14260 UNUSED(_end_lineno); // Only used by EXTRA macro
14261 int _end_col_offset = _token->end_col_offset;
14262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014263 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014264 if (_res == NULL && PyErr_Occurred()) {
14265 p->error_indicator = 1;
14266 D(p->level--);
14267 return NULL;
14268 }
14269 goto done;
14270 }
14271 p->mark = _mark;
14272 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014274 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014275 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014276 if (p->error_indicator) {
14277 D(p->level--);
14278 return NULL;
14279 }
14280 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14281 void *invalid_comprehension_var;
14282 if (
14283 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14284 )
14285 {
14286 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14287 _res = invalid_comprehension_var;
14288 goto done;
14289 }
14290 p->mark = _mark;
14291 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14293 }
14294 _res = NULL;
14295 done:
14296 D(p->level--);
14297 return _res;
14298}
14299
Pablo Galindoda743502021-04-15 14:06:39 +010014300// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014301static expr_ty
14302dict_rule(Parser *p)
14303{
14304 D(p->level++);
14305 if (p->error_indicator) {
14306 D(p->level--);
14307 return NULL;
14308 }
14309 expr_ty _res = NULL;
14310 int _mark = p->mark;
14311 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14312 p->error_indicator = 1;
14313 D(p->level--);
14314 return NULL;
14315 }
14316 int _start_lineno = p->tokens[_mark]->lineno;
14317 UNUSED(_start_lineno); // Only used by EXTRA macro
14318 int _start_col_offset = p->tokens[_mark]->col_offset;
14319 UNUSED(_start_col_offset); // Only used by EXTRA macro
14320 { // '{' double_starred_kvpairs? '}'
14321 if (p->error_indicator) {
14322 D(p->level--);
14323 return NULL;
14324 }
14325 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14326 Token * _literal;
14327 Token * _literal_1;
14328 void *a;
14329 if (
14330 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14331 &&
14332 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14333 &&
14334 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14335 )
14336 {
14337 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14338 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14339 if (_token == NULL) {
14340 D(p->level--);
14341 return NULL;
14342 }
14343 int _end_lineno = _token->end_lineno;
14344 UNUSED(_end_lineno); // Only used by EXTRA macro
14345 int _end_col_offset = _token->end_col_offset;
14346 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014347 _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 +010014348 if (_res == NULL && PyErr_Occurred()) {
14349 p->error_indicator = 1;
14350 D(p->level--);
14351 return NULL;
14352 }
14353 goto done;
14354 }
14355 p->mark = _mark;
14356 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14358 }
Pablo Galindoda743502021-04-15 14:06:39 +010014359 { // '{' invalid_double_starred_kvpairs '}'
14360 if (p->error_indicator) {
14361 D(p->level--);
14362 return NULL;
14363 }
14364 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14365 Token * _literal;
14366 Token * _literal_1;
14367 void *invalid_double_starred_kvpairs_var;
14368 if (
14369 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14370 &&
14371 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
14372 &&
14373 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14374 )
14375 {
14376 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14377 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
14378 goto done;
14379 }
14380 p->mark = _mark;
14381 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
14383 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014384 _res = NULL;
14385 done:
14386 D(p->level--);
14387 return _res;
14388}
14389
14390// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14391static expr_ty
14392dictcomp_rule(Parser *p)
14393{
14394 D(p->level++);
14395 if (p->error_indicator) {
14396 D(p->level--);
14397 return NULL;
14398 }
14399 expr_ty _res = NULL;
14400 int _mark = p->mark;
14401 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14402 p->error_indicator = 1;
14403 D(p->level--);
14404 return NULL;
14405 }
14406 int _start_lineno = p->tokens[_mark]->lineno;
14407 UNUSED(_start_lineno); // Only used by EXTRA macro
14408 int _start_col_offset = p->tokens[_mark]->col_offset;
14409 UNUSED(_start_col_offset); // Only used by EXTRA macro
14410 { // '{' kvpair for_if_clauses '}'
14411 if (p->error_indicator) {
14412 D(p->level--);
14413 return NULL;
14414 }
14415 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14416 Token * _literal;
14417 Token * _literal_1;
14418 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014419 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014420 if (
14421 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14422 &&
14423 (a = kvpair_rule(p)) // kvpair
14424 &&
14425 (b = for_if_clauses_rule(p)) // for_if_clauses
14426 &&
14427 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14428 )
14429 {
14430 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14431 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14432 if (_token == NULL) {
14433 D(p->level--);
14434 return NULL;
14435 }
14436 int _end_lineno = _token->end_lineno;
14437 UNUSED(_end_lineno); // Only used by EXTRA macro
14438 int _end_col_offset = _token->end_col_offset;
14439 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014440 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014441 if (_res == NULL && PyErr_Occurred()) {
14442 p->error_indicator = 1;
14443 D(p->level--);
14444 return NULL;
14445 }
14446 goto done;
14447 }
14448 p->mark = _mark;
14449 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14451 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014452 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014453 if (p->error_indicator) {
14454 D(p->level--);
14455 return NULL;
14456 }
14457 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14458 void *invalid_dict_comprehension_var;
14459 if (
14460 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14461 )
14462 {
14463 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14464 _res = invalid_dict_comprehension_var;
14465 goto done;
14466 }
14467 p->mark = _mark;
14468 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14470 }
14471 _res = NULL;
14472 done:
14473 D(p->level--);
14474 return _res;
14475}
14476
14477// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14478static asdl_seq*
14479double_starred_kvpairs_rule(Parser *p)
14480{
14481 D(p->level++);
14482 if (p->error_indicator) {
14483 D(p->level--);
14484 return NULL;
14485 }
14486 asdl_seq* _res = NULL;
14487 int _mark = p->mark;
14488 { // ','.double_starred_kvpair+ ','?
14489 if (p->error_indicator) {
14490 D(p->level--);
14491 return NULL;
14492 }
14493 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14494 void *_opt_var;
14495 UNUSED(_opt_var); // Silence compiler warnings
14496 asdl_seq * a;
14497 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014498 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014499 &&
14500 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14501 )
14502 {
14503 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14504 _res = a;
14505 if (_res == NULL && PyErr_Occurred()) {
14506 p->error_indicator = 1;
14507 D(p->level--);
14508 return NULL;
14509 }
14510 goto done;
14511 }
14512 p->mark = _mark;
14513 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14515 }
14516 _res = NULL;
14517 done:
14518 D(p->level--);
14519 return _res;
14520}
14521
14522// double_starred_kvpair: '**' bitwise_or | kvpair
14523static KeyValuePair*
14524double_starred_kvpair_rule(Parser *p)
14525{
14526 D(p->level++);
14527 if (p->error_indicator) {
14528 D(p->level--);
14529 return NULL;
14530 }
14531 KeyValuePair* _res = NULL;
14532 int _mark = p->mark;
14533 { // '**' bitwise_or
14534 if (p->error_indicator) {
14535 D(p->level--);
14536 return NULL;
14537 }
14538 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14539 Token * _literal;
14540 expr_ty a;
14541 if (
14542 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14543 &&
14544 (a = bitwise_or_rule(p)) // bitwise_or
14545 )
14546 {
14547 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14548 _res = _PyPegen_key_value_pair ( p , NULL , a );
14549 if (_res == NULL && PyErr_Occurred()) {
14550 p->error_indicator = 1;
14551 D(p->level--);
14552 return NULL;
14553 }
14554 goto done;
14555 }
14556 p->mark = _mark;
14557 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14559 }
14560 { // kvpair
14561 if (p->error_indicator) {
14562 D(p->level--);
14563 return NULL;
14564 }
14565 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14566 KeyValuePair* kvpair_var;
14567 if (
14568 (kvpair_var = kvpair_rule(p)) // kvpair
14569 )
14570 {
14571 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14572 _res = kvpair_var;
14573 goto done;
14574 }
14575 p->mark = _mark;
14576 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14578 }
14579 _res = NULL;
14580 done:
14581 D(p->level--);
14582 return _res;
14583}
14584
14585// kvpair: expression ':' expression
14586static KeyValuePair*
14587kvpair_rule(Parser *p)
14588{
14589 D(p->level++);
14590 if (p->error_indicator) {
14591 D(p->level--);
14592 return NULL;
14593 }
14594 KeyValuePair* _res = NULL;
14595 int _mark = p->mark;
14596 { // expression ':' expression
14597 if (p->error_indicator) {
14598 D(p->level--);
14599 return NULL;
14600 }
14601 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14602 Token * _literal;
14603 expr_ty a;
14604 expr_ty b;
14605 if (
14606 (a = expression_rule(p)) // expression
14607 &&
14608 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14609 &&
14610 (b = expression_rule(p)) // expression
14611 )
14612 {
14613 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14614 _res = _PyPegen_key_value_pair ( p , a , b );
14615 if (_res == NULL && PyErr_Occurred()) {
14616 p->error_indicator = 1;
14617 D(p->level--);
14618 return NULL;
14619 }
14620 goto done;
14621 }
14622 p->mark = _mark;
14623 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14625 }
14626 _res = NULL;
14627 done:
14628 D(p->level--);
14629 return _res;
14630}
14631
14632// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014633static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014634for_if_clauses_rule(Parser *p)
14635{
14636 D(p->level++);
14637 if (p->error_indicator) {
14638 D(p->level--);
14639 return NULL;
14640 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014641 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014642 int _mark = p->mark;
14643 { // for_if_clause+
14644 if (p->error_indicator) {
14645 D(p->level--);
14646 return NULL;
14647 }
14648 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 +010014649 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014650 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014651 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014652 )
14653 {
14654 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 +010014655 _res = a;
14656 if (_res == NULL && PyErr_Occurred()) {
14657 p->error_indicator = 1;
14658 D(p->level--);
14659 return NULL;
14660 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014661 goto done;
14662 }
14663 p->mark = _mark;
14664 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14666 }
14667 _res = NULL;
14668 done:
14669 D(p->level--);
14670 return _res;
14671}
14672
14673// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014674// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14675// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14676// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014677static comprehension_ty
14678for_if_clause_rule(Parser *p)
14679{
14680 D(p->level++);
14681 if (p->error_indicator) {
14682 D(p->level--);
14683 return NULL;
14684 }
14685 comprehension_ty _res = NULL;
14686 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014687 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014688 if (p->error_indicator) {
14689 D(p->level--);
14690 return NULL;
14691 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014692 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14693 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014694 Token * _keyword;
14695 Token * _keyword_1;
14696 expr_ty a;
14697 Token * async_var;
14698 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014699 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014700 if (
14701 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14702 &&
14703 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14704 &&
14705 (a = star_targets_rule(p)) // star_targets
14706 &&
14707 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14708 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014709 (_cut_var = 1)
14710 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014711 (b = disjunction_rule(p)) // disjunction
14712 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014713 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014714 )
14715 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014716 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 +020014717 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014718 if (_res == NULL && PyErr_Occurred()) {
14719 p->error_indicator = 1;
14720 D(p->level--);
14721 return NULL;
14722 }
14723 goto done;
14724 }
14725 p->mark = _mark;
14726 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14728 if (_cut_var) {
14729 D(p->level--);
14730 return NULL;
14731 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014732 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014733 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014734 if (p->error_indicator) {
14735 D(p->level--);
14736 return NULL;
14737 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014738 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14739 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014740 Token * _keyword;
14741 Token * _keyword_1;
14742 expr_ty a;
14743 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014744 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014745 if (
14746 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14747 &&
14748 (a = star_targets_rule(p)) // star_targets
14749 &&
14750 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14751 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014752 (_cut_var = 1)
14753 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 (b = disjunction_rule(p)) // disjunction
14755 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014756 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014757 )
14758 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014759 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 +020014760 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014761 if (_res == NULL && PyErr_Occurred()) {
14762 p->error_indicator = 1;
14763 D(p->level--);
14764 return NULL;
14765 }
14766 goto done;
14767 }
14768 p->mark = _mark;
14769 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14771 if (_cut_var) {
14772 D(p->level--);
14773 return NULL;
14774 }
14775 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014776 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014777 if (p->error_indicator) {
14778 D(p->level--);
14779 return NULL;
14780 }
14781 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14782 void *invalid_for_target_var;
14783 if (
14784 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14785 )
14786 {
14787 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14788 _res = invalid_for_target_var;
14789 goto done;
14790 }
14791 p->mark = _mark;
14792 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014794 }
14795 _res = NULL;
14796 done:
14797 D(p->level--);
14798 return _res;
14799}
14800
14801// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14802static expr_ty
14803yield_expr_rule(Parser *p)
14804{
14805 D(p->level++);
14806 if (p->error_indicator) {
14807 D(p->level--);
14808 return NULL;
14809 }
14810 expr_ty _res = NULL;
14811 int _mark = p->mark;
14812 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14813 p->error_indicator = 1;
14814 D(p->level--);
14815 return NULL;
14816 }
14817 int _start_lineno = p->tokens[_mark]->lineno;
14818 UNUSED(_start_lineno); // Only used by EXTRA macro
14819 int _start_col_offset = p->tokens[_mark]->col_offset;
14820 UNUSED(_start_col_offset); // Only used by EXTRA macro
14821 { // 'yield' 'from' expression
14822 if (p->error_indicator) {
14823 D(p->level--);
14824 return NULL;
14825 }
14826 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14827 Token * _keyword;
14828 Token * _keyword_1;
14829 expr_ty a;
14830 if (
14831 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14832 &&
14833 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14834 &&
14835 (a = expression_rule(p)) // expression
14836 )
14837 {
14838 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14840 if (_token == NULL) {
14841 D(p->level--);
14842 return NULL;
14843 }
14844 int _end_lineno = _token->end_lineno;
14845 UNUSED(_end_lineno); // Only used by EXTRA macro
14846 int _end_col_offset = _token->end_col_offset;
14847 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014848 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014849 if (_res == NULL && PyErr_Occurred()) {
14850 p->error_indicator = 1;
14851 D(p->level--);
14852 return NULL;
14853 }
14854 goto done;
14855 }
14856 p->mark = _mark;
14857 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14859 }
14860 { // 'yield' star_expressions?
14861 if (p->error_indicator) {
14862 D(p->level--);
14863 return NULL;
14864 }
14865 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14866 Token * _keyword;
14867 void *a;
14868 if (
14869 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14870 &&
14871 (a = star_expressions_rule(p), 1) // star_expressions?
14872 )
14873 {
14874 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14876 if (_token == NULL) {
14877 D(p->level--);
14878 return NULL;
14879 }
14880 int _end_lineno = _token->end_lineno;
14881 UNUSED(_end_lineno); // Only used by EXTRA macro
14882 int _end_col_offset = _token->end_col_offset;
14883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014884 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014885 if (_res == NULL && PyErr_Occurred()) {
14886 p->error_indicator = 1;
14887 D(p->level--);
14888 return NULL;
14889 }
14890 goto done;
14891 }
14892 p->mark = _mark;
14893 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14895 }
14896 _res = NULL;
14897 done:
14898 D(p->level--);
14899 return _res;
14900}
14901
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014902// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014903static expr_ty
14904arguments_rule(Parser *p)
14905{
14906 D(p->level++);
14907 if (p->error_indicator) {
14908 D(p->level--);
14909 return NULL;
14910 }
14911 expr_ty _res = NULL;
14912 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14913 D(p->level--);
14914 return _res;
14915 }
14916 int _mark = p->mark;
14917 { // args ','? &')'
14918 if (p->error_indicator) {
14919 D(p->level--);
14920 return NULL;
14921 }
14922 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14923 void *_opt_var;
14924 UNUSED(_opt_var); // Silence compiler warnings
14925 expr_ty a;
14926 if (
14927 (a = args_rule(p)) // args
14928 &&
14929 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14930 &&
14931 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14932 )
14933 {
14934 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14935 _res = a;
14936 if (_res == NULL && PyErr_Occurred()) {
14937 p->error_indicator = 1;
14938 D(p->level--);
14939 return NULL;
14940 }
14941 goto done;
14942 }
14943 p->mark = _mark;
14944 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14946 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014947 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014948 if (p->error_indicator) {
14949 D(p->level--);
14950 return NULL;
14951 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014952 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14953 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014954 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014955 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014956 )
14957 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014958 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14959 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014960 goto done;
14961 }
14962 p->mark = _mark;
14963 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014965 }
14966 _res = NULL;
14967 done:
14968 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14969 D(p->level--);
14970 return _res;
14971}
14972
Pablo Galindod9151cb2021-04-13 02:32:33 +010014973// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014974static expr_ty
14975args_rule(Parser *p)
14976{
14977 D(p->level++);
14978 if (p->error_indicator) {
14979 D(p->level--);
14980 return NULL;
14981 }
14982 expr_ty _res = NULL;
14983 int _mark = p->mark;
14984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14985 p->error_indicator = 1;
14986 D(p->level--);
14987 return NULL;
14988 }
14989 int _start_lineno = p->tokens[_mark]->lineno;
14990 UNUSED(_start_lineno); // Only used by EXTRA macro
14991 int _start_col_offset = p->tokens[_mark]->col_offset;
14992 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010014993 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014994 if (p->error_indicator) {
14995 D(p->level--);
14996 return NULL;
14997 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010014998 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010014999 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015000 void *b;
15001 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015002 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015003 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015004 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015005 )
15006 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015007 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15009 if (_token == NULL) {
15010 D(p->level--);
15011 return NULL;
15012 }
15013 int _end_lineno = _token->end_lineno;
15014 UNUSED(_end_lineno); // Only used by EXTRA macro
15015 int _end_col_offset = _token->end_col_offset;
15016 UNUSED(_end_col_offset); // Only used by EXTRA macro
15017 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015018 if (_res == NULL && PyErr_Occurred()) {
15019 p->error_indicator = 1;
15020 D(p->level--);
15021 return NULL;
15022 }
15023 goto done;
15024 }
15025 p->mark = _mark;
15026 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015028 }
15029 { // kwargs
15030 if (p->error_indicator) {
15031 D(p->level--);
15032 return NULL;
15033 }
15034 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15035 asdl_seq* a;
15036 if (
15037 (a = kwargs_rule(p)) // kwargs
15038 )
15039 {
15040 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15042 if (_token == NULL) {
15043 D(p->level--);
15044 return NULL;
15045 }
15046 int _end_lineno = _token->end_lineno;
15047 UNUSED(_end_lineno); // Only used by EXTRA macro
15048 int _end_col_offset = _token->end_col_offset;
15049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015050 _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 +010015051 if (_res == NULL && PyErr_Occurred()) {
15052 p->error_indicator = 1;
15053 D(p->level--);
15054 return NULL;
15055 }
15056 goto done;
15057 }
15058 p->mark = _mark;
15059 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15061 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015062 _res = NULL;
15063 done:
15064 D(p->level--);
15065 return _res;
15066}
15067
15068// kwargs:
15069// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15070// | ','.kwarg_or_starred+
15071// | ','.kwarg_or_double_starred+
15072static asdl_seq*
15073kwargs_rule(Parser *p)
15074{
15075 D(p->level++);
15076 if (p->error_indicator) {
15077 D(p->level--);
15078 return NULL;
15079 }
15080 asdl_seq* _res = NULL;
15081 int _mark = p->mark;
15082 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15083 if (p->error_indicator) {
15084 D(p->level--);
15085 return NULL;
15086 }
15087 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15088 Token * _literal;
15089 asdl_seq * a;
15090 asdl_seq * b;
15091 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015092 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015093 &&
15094 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15095 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015096 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015097 )
15098 {
15099 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15100 _res = _PyPegen_join_sequences ( p , a , b );
15101 if (_res == NULL && PyErr_Occurred()) {
15102 p->error_indicator = 1;
15103 D(p->level--);
15104 return NULL;
15105 }
15106 goto done;
15107 }
15108 p->mark = _mark;
15109 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15111 }
15112 { // ','.kwarg_or_starred+
15113 if (p->error_indicator) {
15114 D(p->level--);
15115 return NULL;
15116 }
15117 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015118 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015119 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015120 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015121 )
15122 {
15123 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015124 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015125 goto done;
15126 }
15127 p->mark = _mark;
15128 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15130 }
15131 { // ','.kwarg_or_double_starred+
15132 if (p->error_indicator) {
15133 D(p->level--);
15134 return NULL;
15135 }
15136 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015137 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015138 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015139 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015140 )
15141 {
15142 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015143 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015144 goto done;
15145 }
15146 p->mark = _mark;
15147 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15149 }
15150 _res = NULL;
15151 done:
15152 D(p->level--);
15153 return _res;
15154}
15155
15156// starred_expression: '*' expression
15157static expr_ty
15158starred_expression_rule(Parser *p)
15159{
15160 D(p->level++);
15161 if (p->error_indicator) {
15162 D(p->level--);
15163 return NULL;
15164 }
15165 expr_ty _res = NULL;
15166 int _mark = p->mark;
15167 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15168 p->error_indicator = 1;
15169 D(p->level--);
15170 return NULL;
15171 }
15172 int _start_lineno = p->tokens[_mark]->lineno;
15173 UNUSED(_start_lineno); // Only used by EXTRA macro
15174 int _start_col_offset = p->tokens[_mark]->col_offset;
15175 UNUSED(_start_col_offset); // Only used by EXTRA macro
15176 { // '*' expression
15177 if (p->error_indicator) {
15178 D(p->level--);
15179 return NULL;
15180 }
15181 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15182 Token * _literal;
15183 expr_ty a;
15184 if (
15185 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15186 &&
15187 (a = expression_rule(p)) // expression
15188 )
15189 {
15190 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15192 if (_token == NULL) {
15193 D(p->level--);
15194 return NULL;
15195 }
15196 int _end_lineno = _token->end_lineno;
15197 UNUSED(_end_lineno); // Only used by EXTRA macro
15198 int _end_col_offset = _token->end_col_offset;
15199 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015200 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015201 if (_res == NULL && PyErr_Occurred()) {
15202 p->error_indicator = 1;
15203 D(p->level--);
15204 return NULL;
15205 }
15206 goto done;
15207 }
15208 p->mark = _mark;
15209 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
15210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
15211 }
15212 _res = NULL;
15213 done:
15214 D(p->level--);
15215 return _res;
15216}
15217
15218// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
15219static KeywordOrStarred*
15220kwarg_or_starred_rule(Parser *p)
15221{
15222 D(p->level++);
15223 if (p->error_indicator) {
15224 D(p->level--);
15225 return NULL;
15226 }
15227 KeywordOrStarred* _res = NULL;
15228 int _mark = p->mark;
15229 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15230 p->error_indicator = 1;
15231 D(p->level--);
15232 return NULL;
15233 }
15234 int _start_lineno = p->tokens[_mark]->lineno;
15235 UNUSED(_start_lineno); // Only used by EXTRA macro
15236 int _start_col_offset = p->tokens[_mark]->col_offset;
15237 UNUSED(_start_col_offset); // Only used by EXTRA macro
15238 { // NAME '=' expression
15239 if (p->error_indicator) {
15240 D(p->level--);
15241 return NULL;
15242 }
15243 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15244 Token * _literal;
15245 expr_ty a;
15246 expr_ty b;
15247 if (
15248 (a = _PyPegen_name_token(p)) // NAME
15249 &&
15250 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15251 &&
15252 (b = expression_rule(p)) // expression
15253 )
15254 {
15255 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15256 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15257 if (_token == NULL) {
15258 D(p->level--);
15259 return NULL;
15260 }
15261 int _end_lineno = _token->end_lineno;
15262 UNUSED(_end_lineno); // Only used by EXTRA macro
15263 int _end_col_offset = _token->end_col_offset;
15264 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015265 _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 +010015266 if (_res == NULL && PyErr_Occurred()) {
15267 p->error_indicator = 1;
15268 D(p->level--);
15269 return NULL;
15270 }
15271 goto done;
15272 }
15273 p->mark = _mark;
15274 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15276 }
15277 { // starred_expression
15278 if (p->error_indicator) {
15279 D(p->level--);
15280 return NULL;
15281 }
15282 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15283 expr_ty a;
15284 if (
15285 (a = starred_expression_rule(p)) // starred_expression
15286 )
15287 {
15288 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15289 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15290 if (_res == NULL && PyErr_Occurred()) {
15291 p->error_indicator = 1;
15292 D(p->level--);
15293 return NULL;
15294 }
15295 goto done;
15296 }
15297 p->mark = _mark;
15298 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15300 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015301 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015302 if (p->error_indicator) {
15303 D(p->level--);
15304 return NULL;
15305 }
15306 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15307 void *invalid_kwarg_var;
15308 if (
15309 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15310 )
15311 {
15312 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15313 _res = invalid_kwarg_var;
15314 goto done;
15315 }
15316 p->mark = _mark;
15317 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15319 }
15320 _res = NULL;
15321 done:
15322 D(p->level--);
15323 return _res;
15324}
15325
15326// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15327static KeywordOrStarred*
15328kwarg_or_double_starred_rule(Parser *p)
15329{
15330 D(p->level++);
15331 if (p->error_indicator) {
15332 D(p->level--);
15333 return NULL;
15334 }
15335 KeywordOrStarred* _res = NULL;
15336 int _mark = p->mark;
15337 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15338 p->error_indicator = 1;
15339 D(p->level--);
15340 return NULL;
15341 }
15342 int _start_lineno = p->tokens[_mark]->lineno;
15343 UNUSED(_start_lineno); // Only used by EXTRA macro
15344 int _start_col_offset = p->tokens[_mark]->col_offset;
15345 UNUSED(_start_col_offset); // Only used by EXTRA macro
15346 { // NAME '=' expression
15347 if (p->error_indicator) {
15348 D(p->level--);
15349 return NULL;
15350 }
15351 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15352 Token * _literal;
15353 expr_ty a;
15354 expr_ty b;
15355 if (
15356 (a = _PyPegen_name_token(p)) // NAME
15357 &&
15358 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15359 &&
15360 (b = expression_rule(p)) // expression
15361 )
15362 {
15363 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15364 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15365 if (_token == NULL) {
15366 D(p->level--);
15367 return NULL;
15368 }
15369 int _end_lineno = _token->end_lineno;
15370 UNUSED(_end_lineno); // Only used by EXTRA macro
15371 int _end_col_offset = _token->end_col_offset;
15372 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015373 _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 +010015374 if (_res == NULL && PyErr_Occurred()) {
15375 p->error_indicator = 1;
15376 D(p->level--);
15377 return NULL;
15378 }
15379 goto done;
15380 }
15381 p->mark = _mark;
15382 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15384 }
15385 { // '**' expression
15386 if (p->error_indicator) {
15387 D(p->level--);
15388 return NULL;
15389 }
15390 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15391 Token * _literal;
15392 expr_ty a;
15393 if (
15394 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15395 &&
15396 (a = expression_rule(p)) // expression
15397 )
15398 {
15399 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15401 if (_token == NULL) {
15402 D(p->level--);
15403 return NULL;
15404 }
15405 int _end_lineno = _token->end_lineno;
15406 UNUSED(_end_lineno); // Only used by EXTRA macro
15407 int _end_col_offset = _token->end_col_offset;
15408 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015409 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015410 if (_res == NULL && PyErr_Occurred()) {
15411 p->error_indicator = 1;
15412 D(p->level--);
15413 return NULL;
15414 }
15415 goto done;
15416 }
15417 p->mark = _mark;
15418 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15420 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015421 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015422 if (p->error_indicator) {
15423 D(p->level--);
15424 return NULL;
15425 }
15426 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15427 void *invalid_kwarg_var;
15428 if (
15429 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15430 )
15431 {
15432 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15433 _res = invalid_kwarg_var;
15434 goto done;
15435 }
15436 p->mark = _mark;
15437 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15439 }
15440 _res = NULL;
15441 done:
15442 D(p->level--);
15443 return _res;
15444}
15445
15446// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15447static expr_ty
15448star_targets_rule(Parser *p)
15449{
15450 D(p->level++);
15451 if (p->error_indicator) {
15452 D(p->level--);
15453 return NULL;
15454 }
15455 expr_ty _res = NULL;
15456 int _mark = p->mark;
15457 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15458 p->error_indicator = 1;
15459 D(p->level--);
15460 return NULL;
15461 }
15462 int _start_lineno = p->tokens[_mark]->lineno;
15463 UNUSED(_start_lineno); // Only used by EXTRA macro
15464 int _start_col_offset = p->tokens[_mark]->col_offset;
15465 UNUSED(_start_col_offset); // Only used by EXTRA macro
15466 { // star_target !','
15467 if (p->error_indicator) {
15468 D(p->level--);
15469 return NULL;
15470 }
15471 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15472 expr_ty a;
15473 if (
15474 (a = star_target_rule(p)) // star_target
15475 &&
15476 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15477 )
15478 {
15479 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15480 _res = a;
15481 if (_res == NULL && PyErr_Occurred()) {
15482 p->error_indicator = 1;
15483 D(p->level--);
15484 return NULL;
15485 }
15486 goto done;
15487 }
15488 p->mark = _mark;
15489 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15491 }
15492 { // star_target ((',' star_target))* ','?
15493 if (p->error_indicator) {
15494 D(p->level--);
15495 return NULL;
15496 }
15497 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15498 void *_opt_var;
15499 UNUSED(_opt_var); // Silence compiler warnings
15500 expr_ty a;
15501 asdl_seq * b;
15502 if (
15503 (a = star_target_rule(p)) // star_target
15504 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015505 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015506 &&
15507 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15508 )
15509 {
15510 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15511 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15512 if (_token == NULL) {
15513 D(p->level--);
15514 return NULL;
15515 }
15516 int _end_lineno = _token->end_lineno;
15517 UNUSED(_end_lineno); // Only used by EXTRA macro
15518 int _end_col_offset = _token->end_col_offset;
15519 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015520 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015521 if (_res == NULL && PyErr_Occurred()) {
15522 p->error_indicator = 1;
15523 D(p->level--);
15524 return NULL;
15525 }
15526 goto done;
15527 }
15528 p->mark = _mark;
15529 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15531 }
15532 _res = NULL;
15533 done:
15534 D(p->level--);
15535 return _res;
15536}
15537
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015538// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015539static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015540star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015541{
15542 D(p->level++);
15543 if (p->error_indicator) {
15544 D(p->level--);
15545 return NULL;
15546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015547 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015548 int _mark = p->mark;
15549 { // ','.star_target+ ','?
15550 if (p->error_indicator) {
15551 D(p->level--);
15552 return NULL;
15553 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015554 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 +010015555 void *_opt_var;
15556 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015557 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015558 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015559 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015560 &&
15561 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15562 )
15563 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015564 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 +010015565 _res = a;
15566 if (_res == NULL && PyErr_Occurred()) {
15567 p->error_indicator = 1;
15568 D(p->level--);
15569 return NULL;
15570 }
15571 goto done;
15572 }
15573 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015574 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15576 }
15577 _res = NULL;
15578 done:
15579 D(p->level--);
15580 return _res;
15581}
15582
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015583// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15584static asdl_expr_seq*
15585star_targets_tuple_seq_rule(Parser *p)
15586{
15587 D(p->level++);
15588 if (p->error_indicator) {
15589 D(p->level--);
15590 return NULL;
15591 }
15592 asdl_expr_seq* _res = NULL;
15593 int _mark = p->mark;
15594 { // star_target ((',' star_target))+ ','?
15595 if (p->error_indicator) {
15596 D(p->level--);
15597 return NULL;
15598 }
15599 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15600 void *_opt_var;
15601 UNUSED(_opt_var); // Silence compiler warnings
15602 expr_ty a;
15603 asdl_seq * b;
15604 if (
15605 (a = star_target_rule(p)) // star_target
15606 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015607 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015608 &&
15609 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15610 )
15611 {
15612 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15613 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15614 if (_res == NULL && PyErr_Occurred()) {
15615 p->error_indicator = 1;
15616 D(p->level--);
15617 return NULL;
15618 }
15619 goto done;
15620 }
15621 p->mark = _mark;
15622 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15624 }
15625 { // star_target ','
15626 if (p->error_indicator) {
15627 D(p->level--);
15628 return NULL;
15629 }
15630 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15631 Token * _literal;
15632 expr_ty a;
15633 if (
15634 (a = star_target_rule(p)) // star_target
15635 &&
15636 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15637 )
15638 {
15639 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15640 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15641 if (_res == NULL && PyErr_Occurred()) {
15642 p->error_indicator = 1;
15643 D(p->level--);
15644 return NULL;
15645 }
15646 goto done;
15647 }
15648 p->mark = _mark;
15649 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15651 }
15652 _res = NULL;
15653 done:
15654 D(p->level--);
15655 return _res;
15656}
15657
15658// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015659static expr_ty
15660star_target_rule(Parser *p)
15661{
15662 D(p->level++);
15663 if (p->error_indicator) {
15664 D(p->level--);
15665 return NULL;
15666 }
15667 expr_ty _res = NULL;
15668 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15669 D(p->level--);
15670 return _res;
15671 }
15672 int _mark = p->mark;
15673 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15674 p->error_indicator = 1;
15675 D(p->level--);
15676 return NULL;
15677 }
15678 int _start_lineno = p->tokens[_mark]->lineno;
15679 UNUSED(_start_lineno); // Only used by EXTRA macro
15680 int _start_col_offset = p->tokens[_mark]->col_offset;
15681 UNUSED(_start_col_offset); // Only used by EXTRA macro
15682 { // '*' (!'*' star_target)
15683 if (p->error_indicator) {
15684 D(p->level--);
15685 return NULL;
15686 }
15687 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15688 Token * _literal;
15689 void *a;
15690 if (
15691 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15692 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015693 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015694 )
15695 {
15696 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15698 if (_token == NULL) {
15699 D(p->level--);
15700 return NULL;
15701 }
15702 int _end_lineno = _token->end_lineno;
15703 UNUSED(_end_lineno); // Only used by EXTRA macro
15704 int _end_col_offset = _token->end_col_offset;
15705 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015706 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015707 if (_res == NULL && PyErr_Occurred()) {
15708 p->error_indicator = 1;
15709 D(p->level--);
15710 return NULL;
15711 }
15712 goto done;
15713 }
15714 p->mark = _mark;
15715 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15717 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015718 { // target_with_star_atom
15719 if (p->error_indicator) {
15720 D(p->level--);
15721 return NULL;
15722 }
15723 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15724 expr_ty target_with_star_atom_var;
15725 if (
15726 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15727 )
15728 {
15729 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15730 _res = target_with_star_atom_var;
15731 goto done;
15732 }
15733 p->mark = _mark;
15734 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15736 }
15737 _res = NULL;
15738 done:
15739 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15740 D(p->level--);
15741 return _res;
15742}
15743
15744// target_with_star_atom:
15745// | t_primary '.' NAME !t_lookahead
15746// | t_primary '[' slices ']' !t_lookahead
15747// | star_atom
15748static expr_ty
15749target_with_star_atom_rule(Parser *p)
15750{
15751 D(p->level++);
15752 if (p->error_indicator) {
15753 D(p->level--);
15754 return NULL;
15755 }
15756 expr_ty _res = NULL;
15757 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15758 D(p->level--);
15759 return _res;
15760 }
15761 int _mark = p->mark;
15762 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15763 p->error_indicator = 1;
15764 D(p->level--);
15765 return NULL;
15766 }
15767 int _start_lineno = p->tokens[_mark]->lineno;
15768 UNUSED(_start_lineno); // Only used by EXTRA macro
15769 int _start_col_offset = p->tokens[_mark]->col_offset;
15770 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015771 { // t_primary '.' NAME !t_lookahead
15772 if (p->error_indicator) {
15773 D(p->level--);
15774 return NULL;
15775 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015776 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 +010015777 Token * _literal;
15778 expr_ty a;
15779 expr_ty b;
15780 if (
15781 (a = t_primary_rule(p)) // t_primary
15782 &&
15783 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15784 &&
15785 (b = _PyPegen_name_token(p)) // NAME
15786 &&
15787 _PyPegen_lookahead(0, t_lookahead_rule, p)
15788 )
15789 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015790 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 +010015791 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15792 if (_token == NULL) {
15793 D(p->level--);
15794 return NULL;
15795 }
15796 int _end_lineno = _token->end_lineno;
15797 UNUSED(_end_lineno); // Only used by EXTRA macro
15798 int _end_col_offset = _token->end_col_offset;
15799 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015800 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015801 if (_res == NULL && PyErr_Occurred()) {
15802 p->error_indicator = 1;
15803 D(p->level--);
15804 return NULL;
15805 }
15806 goto done;
15807 }
15808 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015809 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15811 }
15812 { // t_primary '[' slices ']' !t_lookahead
15813 if (p->error_indicator) {
15814 D(p->level--);
15815 return NULL;
15816 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015817 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 +010015818 Token * _literal;
15819 Token * _literal_1;
15820 expr_ty a;
15821 expr_ty b;
15822 if (
15823 (a = t_primary_rule(p)) // t_primary
15824 &&
15825 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15826 &&
15827 (b = slices_rule(p)) // slices
15828 &&
15829 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15830 &&
15831 _PyPegen_lookahead(0, t_lookahead_rule, p)
15832 )
15833 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015834 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 +010015835 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15836 if (_token == NULL) {
15837 D(p->level--);
15838 return NULL;
15839 }
15840 int _end_lineno = _token->end_lineno;
15841 UNUSED(_end_lineno); // Only used by EXTRA macro
15842 int _end_col_offset = _token->end_col_offset;
15843 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015844 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015845 if (_res == NULL && PyErr_Occurred()) {
15846 p->error_indicator = 1;
15847 D(p->level--);
15848 return NULL;
15849 }
15850 goto done;
15851 }
15852 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015853 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15855 }
15856 { // star_atom
15857 if (p->error_indicator) {
15858 D(p->level--);
15859 return NULL;
15860 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015861 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 +010015862 expr_ty star_atom_var;
15863 if (
15864 (star_atom_var = star_atom_rule(p)) // star_atom
15865 )
15866 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015867 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 +010015868 _res = star_atom_var;
15869 goto done;
15870 }
15871 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015872 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15874 }
15875 _res = NULL;
15876 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015877 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015878 D(p->level--);
15879 return _res;
15880}
15881
15882// star_atom:
15883// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015884// | '(' target_with_star_atom ')'
15885// | '(' star_targets_tuple_seq? ')'
15886// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015887static expr_ty
15888star_atom_rule(Parser *p)
15889{
15890 D(p->level++);
15891 if (p->error_indicator) {
15892 D(p->level--);
15893 return NULL;
15894 }
15895 expr_ty _res = NULL;
15896 int _mark = p->mark;
15897 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15898 p->error_indicator = 1;
15899 D(p->level--);
15900 return NULL;
15901 }
15902 int _start_lineno = p->tokens[_mark]->lineno;
15903 UNUSED(_start_lineno); // Only used by EXTRA macro
15904 int _start_col_offset = p->tokens[_mark]->col_offset;
15905 UNUSED(_start_col_offset); // Only used by EXTRA macro
15906 { // NAME
15907 if (p->error_indicator) {
15908 D(p->level--);
15909 return NULL;
15910 }
15911 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15912 expr_ty a;
15913 if (
15914 (a = _PyPegen_name_token(p)) // NAME
15915 )
15916 {
15917 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15918 _res = _PyPegen_set_expr_context ( p , a , Store );
15919 if (_res == NULL && PyErr_Occurred()) {
15920 p->error_indicator = 1;
15921 D(p->level--);
15922 return NULL;
15923 }
15924 goto done;
15925 }
15926 p->mark = _mark;
15927 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15929 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015930 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015931 if (p->error_indicator) {
15932 D(p->level--);
15933 return NULL;
15934 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015935 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 +010015936 Token * _literal;
15937 Token * _literal_1;
15938 expr_ty a;
15939 if (
15940 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15941 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015942 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015943 &&
15944 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15945 )
15946 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015947 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 +010015948 _res = _PyPegen_set_expr_context ( p , a , Store );
15949 if (_res == NULL && PyErr_Occurred()) {
15950 p->error_indicator = 1;
15951 D(p->level--);
15952 return NULL;
15953 }
15954 goto done;
15955 }
15956 p->mark = _mark;
15957 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015960 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 if (p->error_indicator) {
15962 D(p->level--);
15963 return NULL;
15964 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015965 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 +010015966 Token * _literal;
15967 Token * _literal_1;
15968 void *a;
15969 if (
15970 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15971 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015972 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015973 &&
15974 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15975 )
15976 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015977 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 +010015978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15979 if (_token == NULL) {
15980 D(p->level--);
15981 return NULL;
15982 }
15983 int _end_lineno = _token->end_lineno;
15984 UNUSED(_end_lineno); // Only used by EXTRA macro
15985 int _end_col_offset = _token->end_col_offset;
15986 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015987 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015988 if (_res == NULL && PyErr_Occurred()) {
15989 p->error_indicator = 1;
15990 D(p->level--);
15991 return NULL;
15992 }
15993 goto done;
15994 }
15995 p->mark = _mark;
15996 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015998 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015999 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016000 if (p->error_indicator) {
16001 D(p->level--);
16002 return NULL;
16003 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016004 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 +010016005 Token * _literal;
16006 Token * _literal_1;
16007 void *a;
16008 if (
16009 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16010 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016011 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016012 &&
16013 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16014 )
16015 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016016 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 +010016017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16018 if (_token == NULL) {
16019 D(p->level--);
16020 return NULL;
16021 }
16022 int _end_lineno = _token->end_lineno;
16023 UNUSED(_end_lineno); // Only used by EXTRA macro
16024 int _end_col_offset = _token->end_col_offset;
16025 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016026 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016027 if (_res == NULL && PyErr_Occurred()) {
16028 p->error_indicator = 1;
16029 D(p->level--);
16030 return NULL;
16031 }
16032 goto done;
16033 }
16034 p->mark = _mark;
16035 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016037 }
16038 _res = NULL;
16039 done:
16040 D(p->level--);
16041 return _res;
16042}
16043
16044// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16045static expr_ty
16046single_target_rule(Parser *p)
16047{
16048 D(p->level++);
16049 if (p->error_indicator) {
16050 D(p->level--);
16051 return NULL;
16052 }
16053 expr_ty _res = NULL;
16054 int _mark = p->mark;
16055 { // single_subscript_attribute_target
16056 if (p->error_indicator) {
16057 D(p->level--);
16058 return NULL;
16059 }
16060 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16061 expr_ty single_subscript_attribute_target_var;
16062 if (
16063 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16064 )
16065 {
16066 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16067 _res = single_subscript_attribute_target_var;
16068 goto done;
16069 }
16070 p->mark = _mark;
16071 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16073 }
16074 { // NAME
16075 if (p->error_indicator) {
16076 D(p->level--);
16077 return NULL;
16078 }
16079 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16080 expr_ty a;
16081 if (
16082 (a = _PyPegen_name_token(p)) // NAME
16083 )
16084 {
16085 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16086 _res = _PyPegen_set_expr_context ( p , a , Store );
16087 if (_res == NULL && PyErr_Occurred()) {
16088 p->error_indicator = 1;
16089 D(p->level--);
16090 return NULL;
16091 }
16092 goto done;
16093 }
16094 p->mark = _mark;
16095 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16097 }
16098 { // '(' single_target ')'
16099 if (p->error_indicator) {
16100 D(p->level--);
16101 return NULL;
16102 }
16103 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16104 Token * _literal;
16105 Token * _literal_1;
16106 expr_ty a;
16107 if (
16108 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16109 &&
16110 (a = single_target_rule(p)) // single_target
16111 &&
16112 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16113 )
16114 {
16115 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16116 _res = a;
16117 if (_res == NULL && PyErr_Occurred()) {
16118 p->error_indicator = 1;
16119 D(p->level--);
16120 return NULL;
16121 }
16122 goto done;
16123 }
16124 p->mark = _mark;
16125 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16127 }
16128 _res = NULL;
16129 done:
16130 D(p->level--);
16131 return _res;
16132}
16133
16134// single_subscript_attribute_target:
16135// | t_primary '.' NAME !t_lookahead
16136// | t_primary '[' slices ']' !t_lookahead
16137static expr_ty
16138single_subscript_attribute_target_rule(Parser *p)
16139{
16140 D(p->level++);
16141 if (p->error_indicator) {
16142 D(p->level--);
16143 return NULL;
16144 }
16145 expr_ty _res = NULL;
16146 int _mark = p->mark;
16147 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16148 p->error_indicator = 1;
16149 D(p->level--);
16150 return NULL;
16151 }
16152 int _start_lineno = p->tokens[_mark]->lineno;
16153 UNUSED(_start_lineno); // Only used by EXTRA macro
16154 int _start_col_offset = p->tokens[_mark]->col_offset;
16155 UNUSED(_start_col_offset); // Only used by EXTRA macro
16156 { // t_primary '.' NAME !t_lookahead
16157 if (p->error_indicator) {
16158 D(p->level--);
16159 return NULL;
16160 }
16161 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16162 Token * _literal;
16163 expr_ty a;
16164 expr_ty b;
16165 if (
16166 (a = t_primary_rule(p)) // t_primary
16167 &&
16168 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16169 &&
16170 (b = _PyPegen_name_token(p)) // NAME
16171 &&
16172 _PyPegen_lookahead(0, t_lookahead_rule, p)
16173 )
16174 {
16175 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16176 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16177 if (_token == NULL) {
16178 D(p->level--);
16179 return NULL;
16180 }
16181 int _end_lineno = _token->end_lineno;
16182 UNUSED(_end_lineno); // Only used by EXTRA macro
16183 int _end_col_offset = _token->end_col_offset;
16184 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016185 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016186 if (_res == NULL && PyErr_Occurred()) {
16187 p->error_indicator = 1;
16188 D(p->level--);
16189 return NULL;
16190 }
16191 goto done;
16192 }
16193 p->mark = _mark;
16194 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16196 }
16197 { // t_primary '[' slices ']' !t_lookahead
16198 if (p->error_indicator) {
16199 D(p->level--);
16200 return NULL;
16201 }
16202 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16203 Token * _literal;
16204 Token * _literal_1;
16205 expr_ty a;
16206 expr_ty b;
16207 if (
16208 (a = t_primary_rule(p)) // t_primary
16209 &&
16210 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16211 &&
16212 (b = slices_rule(p)) // slices
16213 &&
16214 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16215 &&
16216 _PyPegen_lookahead(0, t_lookahead_rule, p)
16217 )
16218 {
16219 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16220 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16221 if (_token == NULL) {
16222 D(p->level--);
16223 return NULL;
16224 }
16225 int _end_lineno = _token->end_lineno;
16226 UNUSED(_end_lineno); // Only used by EXTRA macro
16227 int _end_col_offset = _token->end_col_offset;
16228 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016229 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016230 if (_res == NULL && PyErr_Occurred()) {
16231 p->error_indicator = 1;
16232 D(p->level--);
16233 return NULL;
16234 }
16235 goto done;
16236 }
16237 p->mark = _mark;
16238 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16240 }
16241 _res = NULL;
16242 done:
16243 D(p->level--);
16244 return _res;
16245}
16246
16247// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016248static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016249del_targets_rule(Parser *p)
16250{
16251 D(p->level++);
16252 if (p->error_indicator) {
16253 D(p->level--);
16254 return NULL;
16255 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016256 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016257 int _mark = p->mark;
16258 { // ','.del_target+ ','?
16259 if (p->error_indicator) {
16260 D(p->level--);
16261 return NULL;
16262 }
16263 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16264 void *_opt_var;
16265 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016266 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016267 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016268 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016269 &&
16270 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16271 )
16272 {
16273 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16274 _res = a;
16275 if (_res == NULL && PyErr_Occurred()) {
16276 p->error_indicator = 1;
16277 D(p->level--);
16278 return NULL;
16279 }
16280 goto done;
16281 }
16282 p->mark = _mark;
16283 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16285 }
16286 _res = NULL;
16287 done:
16288 D(p->level--);
16289 return _res;
16290}
16291
16292// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016293// | t_primary '.' NAME !t_lookahead
16294// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016295// | del_t_atom
16296static expr_ty
16297del_target_rule(Parser *p)
16298{
16299 D(p->level++);
16300 if (p->error_indicator) {
16301 D(p->level--);
16302 return NULL;
16303 }
16304 expr_ty _res = NULL;
16305 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16306 D(p->level--);
16307 return _res;
16308 }
16309 int _mark = p->mark;
16310 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16311 p->error_indicator = 1;
16312 D(p->level--);
16313 return NULL;
16314 }
16315 int _start_lineno = p->tokens[_mark]->lineno;
16316 UNUSED(_start_lineno); // Only used by EXTRA macro
16317 int _start_col_offset = p->tokens[_mark]->col_offset;
16318 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016319 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016320 if (p->error_indicator) {
16321 D(p->level--);
16322 return NULL;
16323 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016324 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 +010016325 Token * _literal;
16326 expr_ty a;
16327 expr_ty b;
16328 if (
16329 (a = t_primary_rule(p)) // t_primary
16330 &&
16331 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16332 &&
16333 (b = _PyPegen_name_token(p)) // NAME
16334 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016335 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016336 )
16337 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016338 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 +010016339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16340 if (_token == NULL) {
16341 D(p->level--);
16342 return NULL;
16343 }
16344 int _end_lineno = _token->end_lineno;
16345 UNUSED(_end_lineno); // Only used by EXTRA macro
16346 int _end_col_offset = _token->end_col_offset;
16347 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016348 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016349 if (_res == NULL && PyErr_Occurred()) {
16350 p->error_indicator = 1;
16351 D(p->level--);
16352 return NULL;
16353 }
16354 goto done;
16355 }
16356 p->mark = _mark;
16357 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016359 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016360 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016361 if (p->error_indicator) {
16362 D(p->level--);
16363 return NULL;
16364 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016365 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 +010016366 Token * _literal;
16367 Token * _literal_1;
16368 expr_ty a;
16369 expr_ty b;
16370 if (
16371 (a = t_primary_rule(p)) // t_primary
16372 &&
16373 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16374 &&
16375 (b = slices_rule(p)) // slices
16376 &&
16377 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16378 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016379 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016380 )
16381 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016382 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 +010016383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16384 if (_token == NULL) {
16385 D(p->level--);
16386 return NULL;
16387 }
16388 int _end_lineno = _token->end_lineno;
16389 UNUSED(_end_lineno); // Only used by EXTRA macro
16390 int _end_col_offset = _token->end_col_offset;
16391 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016392 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016393 if (_res == NULL && PyErr_Occurred()) {
16394 p->error_indicator = 1;
16395 D(p->level--);
16396 return NULL;
16397 }
16398 goto done;
16399 }
16400 p->mark = _mark;
16401 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016403 }
16404 { // del_t_atom
16405 if (p->error_indicator) {
16406 D(p->level--);
16407 return NULL;
16408 }
16409 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16410 expr_ty del_t_atom_var;
16411 if (
16412 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16413 )
16414 {
16415 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16416 _res = del_t_atom_var;
16417 goto done;
16418 }
16419 p->mark = _mark;
16420 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16422 }
16423 _res = NULL;
16424 done:
16425 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16426 D(p->level--);
16427 return _res;
16428}
16429
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016430// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016431static expr_ty
16432del_t_atom_rule(Parser *p)
16433{
16434 D(p->level++);
16435 if (p->error_indicator) {
16436 D(p->level--);
16437 return NULL;
16438 }
16439 expr_ty _res = NULL;
16440 int _mark = p->mark;
16441 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16442 p->error_indicator = 1;
16443 D(p->level--);
16444 return NULL;
16445 }
16446 int _start_lineno = p->tokens[_mark]->lineno;
16447 UNUSED(_start_lineno); // Only used by EXTRA macro
16448 int _start_col_offset = p->tokens[_mark]->col_offset;
16449 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016450 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016451 if (p->error_indicator) {
16452 D(p->level--);
16453 return NULL;
16454 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016455 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016456 expr_ty a;
16457 if (
16458 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016459 )
16460 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016461 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 +010016462 _res = _PyPegen_set_expr_context ( p , a , Del );
16463 if (_res == NULL && PyErr_Occurred()) {
16464 p->error_indicator = 1;
16465 D(p->level--);
16466 return NULL;
16467 }
16468 goto done;
16469 }
16470 p->mark = _mark;
16471 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016473 }
16474 { // '(' del_target ')'
16475 if (p->error_indicator) {
16476 D(p->level--);
16477 return NULL;
16478 }
16479 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16480 Token * _literal;
16481 Token * _literal_1;
16482 expr_ty a;
16483 if (
16484 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16485 &&
16486 (a = del_target_rule(p)) // del_target
16487 &&
16488 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16489 )
16490 {
16491 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16492 _res = _PyPegen_set_expr_context ( p , a , Del );
16493 if (_res == NULL && PyErr_Occurred()) {
16494 p->error_indicator = 1;
16495 D(p->level--);
16496 return NULL;
16497 }
16498 goto done;
16499 }
16500 p->mark = _mark;
16501 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16503 }
16504 { // '(' del_targets? ')'
16505 if (p->error_indicator) {
16506 D(p->level--);
16507 return NULL;
16508 }
16509 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16510 Token * _literal;
16511 Token * _literal_1;
16512 void *a;
16513 if (
16514 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16515 &&
16516 (a = del_targets_rule(p), 1) // del_targets?
16517 &&
16518 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16519 )
16520 {
16521 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16523 if (_token == NULL) {
16524 D(p->level--);
16525 return NULL;
16526 }
16527 int _end_lineno = _token->end_lineno;
16528 UNUSED(_end_lineno); // Only used by EXTRA macro
16529 int _end_col_offset = _token->end_col_offset;
16530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016531 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016532 if (_res == NULL && PyErr_Occurred()) {
16533 p->error_indicator = 1;
16534 D(p->level--);
16535 return NULL;
16536 }
16537 goto done;
16538 }
16539 p->mark = _mark;
16540 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16542 }
16543 { // '[' del_targets? ']'
16544 if (p->error_indicator) {
16545 D(p->level--);
16546 return NULL;
16547 }
16548 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16549 Token * _literal;
16550 Token * _literal_1;
16551 void *a;
16552 if (
16553 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16554 &&
16555 (a = del_targets_rule(p), 1) // del_targets?
16556 &&
16557 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16558 )
16559 {
16560 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16562 if (_token == NULL) {
16563 D(p->level--);
16564 return NULL;
16565 }
16566 int _end_lineno = _token->end_lineno;
16567 UNUSED(_end_lineno); // Only used by EXTRA macro
16568 int _end_col_offset = _token->end_col_offset;
16569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016570 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016571 if (_res == NULL && PyErr_Occurred()) {
16572 p->error_indicator = 1;
16573 D(p->level--);
16574 return NULL;
16575 }
16576 goto done;
16577 }
16578 p->mark = _mark;
16579 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16581 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016582 _res = NULL;
16583 done:
16584 D(p->level--);
16585 return _res;
16586}
16587
16588// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016589static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016590targets_rule(Parser *p)
16591{
16592 D(p->level++);
16593 if (p->error_indicator) {
16594 D(p->level--);
16595 return NULL;
16596 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016597 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016598 int _mark = p->mark;
16599 { // ','.target+ ','?
16600 if (p->error_indicator) {
16601 D(p->level--);
16602 return NULL;
16603 }
16604 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16605 void *_opt_var;
16606 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016607 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016608 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016609 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016610 &&
16611 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16612 )
16613 {
16614 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16615 _res = a;
16616 if (_res == NULL && PyErr_Occurred()) {
16617 p->error_indicator = 1;
16618 D(p->level--);
16619 return NULL;
16620 }
16621 goto done;
16622 }
16623 p->mark = _mark;
16624 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16626 }
16627 _res = NULL;
16628 done:
16629 D(p->level--);
16630 return _res;
16631}
16632
16633// target:
16634// | t_primary '.' NAME !t_lookahead
16635// | t_primary '[' slices ']' !t_lookahead
16636// | t_atom
16637static expr_ty
16638target_rule(Parser *p)
16639{
16640 D(p->level++);
16641 if (p->error_indicator) {
16642 D(p->level--);
16643 return NULL;
16644 }
16645 expr_ty _res = NULL;
16646 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16647 D(p->level--);
16648 return _res;
16649 }
16650 int _mark = p->mark;
16651 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16652 p->error_indicator = 1;
16653 D(p->level--);
16654 return NULL;
16655 }
16656 int _start_lineno = p->tokens[_mark]->lineno;
16657 UNUSED(_start_lineno); // Only used by EXTRA macro
16658 int _start_col_offset = p->tokens[_mark]->col_offset;
16659 UNUSED(_start_col_offset); // Only used by EXTRA macro
16660 { // t_primary '.' NAME !t_lookahead
16661 if (p->error_indicator) {
16662 D(p->level--);
16663 return NULL;
16664 }
16665 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16666 Token * _literal;
16667 expr_ty a;
16668 expr_ty b;
16669 if (
16670 (a = t_primary_rule(p)) // t_primary
16671 &&
16672 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16673 &&
16674 (b = _PyPegen_name_token(p)) // NAME
16675 &&
16676 _PyPegen_lookahead(0, t_lookahead_rule, p)
16677 )
16678 {
16679 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16680 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16681 if (_token == NULL) {
16682 D(p->level--);
16683 return NULL;
16684 }
16685 int _end_lineno = _token->end_lineno;
16686 UNUSED(_end_lineno); // Only used by EXTRA macro
16687 int _end_col_offset = _token->end_col_offset;
16688 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016689 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016690 if (_res == NULL && PyErr_Occurred()) {
16691 p->error_indicator = 1;
16692 D(p->level--);
16693 return NULL;
16694 }
16695 goto done;
16696 }
16697 p->mark = _mark;
16698 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16700 }
16701 { // t_primary '[' slices ']' !t_lookahead
16702 if (p->error_indicator) {
16703 D(p->level--);
16704 return NULL;
16705 }
16706 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16707 Token * _literal;
16708 Token * _literal_1;
16709 expr_ty a;
16710 expr_ty b;
16711 if (
16712 (a = t_primary_rule(p)) // t_primary
16713 &&
16714 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16715 &&
16716 (b = slices_rule(p)) // slices
16717 &&
16718 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16719 &&
16720 _PyPegen_lookahead(0, t_lookahead_rule, p)
16721 )
16722 {
16723 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16724 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16725 if (_token == NULL) {
16726 D(p->level--);
16727 return NULL;
16728 }
16729 int _end_lineno = _token->end_lineno;
16730 UNUSED(_end_lineno); // Only used by EXTRA macro
16731 int _end_col_offset = _token->end_col_offset;
16732 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016733 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016734 if (_res == NULL && PyErr_Occurred()) {
16735 p->error_indicator = 1;
16736 D(p->level--);
16737 return NULL;
16738 }
16739 goto done;
16740 }
16741 p->mark = _mark;
16742 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16744 }
16745 { // t_atom
16746 if (p->error_indicator) {
16747 D(p->level--);
16748 return NULL;
16749 }
16750 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16751 expr_ty t_atom_var;
16752 if (
16753 (t_atom_var = t_atom_rule(p)) // t_atom
16754 )
16755 {
16756 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16757 _res = t_atom_var;
16758 goto done;
16759 }
16760 p->mark = _mark;
16761 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16763 }
16764 _res = NULL;
16765 done:
16766 _PyPegen_insert_memo(p, _mark, target_type, _res);
16767 D(p->level--);
16768 return _res;
16769}
16770
16771// Left-recursive
16772// t_primary:
16773// | t_primary '.' NAME &t_lookahead
16774// | t_primary '[' slices ']' &t_lookahead
16775// | t_primary genexp &t_lookahead
16776// | t_primary '(' arguments? ')' &t_lookahead
16777// | atom &t_lookahead
16778static expr_ty t_primary_raw(Parser *);
16779static expr_ty
16780t_primary_rule(Parser *p)
16781{
16782 D(p->level++);
16783 expr_ty _res = NULL;
16784 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16785 D(p->level--);
16786 return _res;
16787 }
16788 int _mark = p->mark;
16789 int _resmark = p->mark;
16790 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016791 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16792 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 D(p->level--);
16794 return _res;
16795 }
16796 p->mark = _mark;
16797 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016798 if (p->error_indicator)
16799 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016800 if (_raw == NULL || p->mark <= _resmark)
16801 break;
16802 _resmark = p->mark;
16803 _res = _raw;
16804 }
16805 p->mark = _resmark;
16806 D(p->level--);
16807 return _res;
16808}
16809static expr_ty
16810t_primary_raw(Parser *p)
16811{
16812 D(p->level++);
16813 if (p->error_indicator) {
16814 D(p->level--);
16815 return NULL;
16816 }
16817 expr_ty _res = NULL;
16818 int _mark = p->mark;
16819 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16820 p->error_indicator = 1;
16821 D(p->level--);
16822 return NULL;
16823 }
16824 int _start_lineno = p->tokens[_mark]->lineno;
16825 UNUSED(_start_lineno); // Only used by EXTRA macro
16826 int _start_col_offset = p->tokens[_mark]->col_offset;
16827 UNUSED(_start_col_offset); // Only used by EXTRA macro
16828 { // t_primary '.' NAME &t_lookahead
16829 if (p->error_indicator) {
16830 D(p->level--);
16831 return NULL;
16832 }
16833 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16834 Token * _literal;
16835 expr_ty a;
16836 expr_ty b;
16837 if (
16838 (a = t_primary_rule(p)) // t_primary
16839 &&
16840 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16841 &&
16842 (b = _PyPegen_name_token(p)) // NAME
16843 &&
16844 _PyPegen_lookahead(1, t_lookahead_rule, p)
16845 )
16846 {
16847 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16848 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16849 if (_token == NULL) {
16850 D(p->level--);
16851 return NULL;
16852 }
16853 int _end_lineno = _token->end_lineno;
16854 UNUSED(_end_lineno); // Only used by EXTRA macro
16855 int _end_col_offset = _token->end_col_offset;
16856 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016857 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016858 if (_res == NULL && PyErr_Occurred()) {
16859 p->error_indicator = 1;
16860 D(p->level--);
16861 return NULL;
16862 }
16863 goto done;
16864 }
16865 p->mark = _mark;
16866 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16868 }
16869 { // t_primary '[' slices ']' &t_lookahead
16870 if (p->error_indicator) {
16871 D(p->level--);
16872 return NULL;
16873 }
16874 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16875 Token * _literal;
16876 Token * _literal_1;
16877 expr_ty a;
16878 expr_ty b;
16879 if (
16880 (a = t_primary_rule(p)) // t_primary
16881 &&
16882 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16883 &&
16884 (b = slices_rule(p)) // slices
16885 &&
16886 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16887 &&
16888 _PyPegen_lookahead(1, t_lookahead_rule, p)
16889 )
16890 {
16891 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16893 if (_token == NULL) {
16894 D(p->level--);
16895 return NULL;
16896 }
16897 int _end_lineno = _token->end_lineno;
16898 UNUSED(_end_lineno); // Only used by EXTRA macro
16899 int _end_col_offset = _token->end_col_offset;
16900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016901 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016902 if (_res == NULL && PyErr_Occurred()) {
16903 p->error_indicator = 1;
16904 D(p->level--);
16905 return NULL;
16906 }
16907 goto done;
16908 }
16909 p->mark = _mark;
16910 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16912 }
16913 { // t_primary genexp &t_lookahead
16914 if (p->error_indicator) {
16915 D(p->level--);
16916 return NULL;
16917 }
16918 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16919 expr_ty a;
16920 expr_ty b;
16921 if (
16922 (a = t_primary_rule(p)) // t_primary
16923 &&
16924 (b = genexp_rule(p)) // genexp
16925 &&
16926 _PyPegen_lookahead(1, t_lookahead_rule, p)
16927 )
16928 {
16929 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16931 if (_token == NULL) {
16932 D(p->level--);
16933 return NULL;
16934 }
16935 int _end_lineno = _token->end_lineno;
16936 UNUSED(_end_lineno); // Only used by EXTRA macro
16937 int _end_col_offset = _token->end_col_offset;
16938 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016939 _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 +010016940 if (_res == NULL && PyErr_Occurred()) {
16941 p->error_indicator = 1;
16942 D(p->level--);
16943 return NULL;
16944 }
16945 goto done;
16946 }
16947 p->mark = _mark;
16948 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16950 }
16951 { // t_primary '(' arguments? ')' &t_lookahead
16952 if (p->error_indicator) {
16953 D(p->level--);
16954 return NULL;
16955 }
16956 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16957 Token * _literal;
16958 Token * _literal_1;
16959 expr_ty a;
16960 void *b;
16961 if (
16962 (a = t_primary_rule(p)) // t_primary
16963 &&
16964 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16965 &&
16966 (b = arguments_rule(p), 1) // arguments?
16967 &&
16968 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16969 &&
16970 _PyPegen_lookahead(1, t_lookahead_rule, p)
16971 )
16972 {
16973 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16975 if (_token == NULL) {
16976 D(p->level--);
16977 return NULL;
16978 }
16979 int _end_lineno = _token->end_lineno;
16980 UNUSED(_end_lineno); // Only used by EXTRA macro
16981 int _end_col_offset = _token->end_col_offset;
16982 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016983 _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 +010016984 if (_res == NULL && PyErr_Occurred()) {
16985 p->error_indicator = 1;
16986 D(p->level--);
16987 return NULL;
16988 }
16989 goto done;
16990 }
16991 p->mark = _mark;
16992 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16994 }
16995 { // atom &t_lookahead
16996 if (p->error_indicator) {
16997 D(p->level--);
16998 return NULL;
16999 }
17000 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17001 expr_ty a;
17002 if (
17003 (a = atom_rule(p)) // atom
17004 &&
17005 _PyPegen_lookahead(1, t_lookahead_rule, p)
17006 )
17007 {
17008 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17009 _res = a;
17010 if (_res == NULL && PyErr_Occurred()) {
17011 p->error_indicator = 1;
17012 D(p->level--);
17013 return NULL;
17014 }
17015 goto done;
17016 }
17017 p->mark = _mark;
17018 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17020 }
17021 _res = NULL;
17022 done:
17023 D(p->level--);
17024 return _res;
17025}
17026
17027// t_lookahead: '(' | '[' | '.'
17028static void *
17029t_lookahead_rule(Parser *p)
17030{
17031 D(p->level++);
17032 if (p->error_indicator) {
17033 D(p->level--);
17034 return NULL;
17035 }
17036 void * _res = NULL;
17037 int _mark = p->mark;
17038 { // '('
17039 if (p->error_indicator) {
17040 D(p->level--);
17041 return NULL;
17042 }
17043 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17044 Token * _literal;
17045 if (
17046 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17047 )
17048 {
17049 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17050 _res = _literal;
17051 goto done;
17052 }
17053 p->mark = _mark;
17054 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17056 }
17057 { // '['
17058 if (p->error_indicator) {
17059 D(p->level--);
17060 return NULL;
17061 }
17062 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17063 Token * _literal;
17064 if (
17065 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17066 )
17067 {
17068 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17069 _res = _literal;
17070 goto done;
17071 }
17072 p->mark = _mark;
17073 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17075 }
17076 { // '.'
17077 if (p->error_indicator) {
17078 D(p->level--);
17079 return NULL;
17080 }
17081 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17082 Token * _literal;
17083 if (
17084 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17085 )
17086 {
17087 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17088 _res = _literal;
17089 goto done;
17090 }
17091 p->mark = _mark;
17092 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17094 }
17095 _res = NULL;
17096 done:
17097 D(p->level--);
17098 return _res;
17099}
17100
17101// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17102static expr_ty
17103t_atom_rule(Parser *p)
17104{
17105 D(p->level++);
17106 if (p->error_indicator) {
17107 D(p->level--);
17108 return NULL;
17109 }
17110 expr_ty _res = NULL;
17111 int _mark = p->mark;
17112 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17113 p->error_indicator = 1;
17114 D(p->level--);
17115 return NULL;
17116 }
17117 int _start_lineno = p->tokens[_mark]->lineno;
17118 UNUSED(_start_lineno); // Only used by EXTRA macro
17119 int _start_col_offset = p->tokens[_mark]->col_offset;
17120 UNUSED(_start_col_offset); // Only used by EXTRA macro
17121 { // NAME
17122 if (p->error_indicator) {
17123 D(p->level--);
17124 return NULL;
17125 }
17126 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17127 expr_ty a;
17128 if (
17129 (a = _PyPegen_name_token(p)) // NAME
17130 )
17131 {
17132 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17133 _res = _PyPegen_set_expr_context ( p , a , Store );
17134 if (_res == NULL && PyErr_Occurred()) {
17135 p->error_indicator = 1;
17136 D(p->level--);
17137 return NULL;
17138 }
17139 goto done;
17140 }
17141 p->mark = _mark;
17142 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17144 }
17145 { // '(' target ')'
17146 if (p->error_indicator) {
17147 D(p->level--);
17148 return NULL;
17149 }
17150 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17151 Token * _literal;
17152 Token * _literal_1;
17153 expr_ty a;
17154 if (
17155 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17156 &&
17157 (a = target_rule(p)) // target
17158 &&
17159 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17160 )
17161 {
17162 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17163 _res = _PyPegen_set_expr_context ( p , a , Store );
17164 if (_res == NULL && PyErr_Occurred()) {
17165 p->error_indicator = 1;
17166 D(p->level--);
17167 return NULL;
17168 }
17169 goto done;
17170 }
17171 p->mark = _mark;
17172 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
17174 }
17175 { // '(' targets? ')'
17176 if (p->error_indicator) {
17177 D(p->level--);
17178 return NULL;
17179 }
17180 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17181 Token * _literal;
17182 Token * _literal_1;
17183 void *b;
17184 if (
17185 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17186 &&
17187 (b = targets_rule(p), 1) // targets?
17188 &&
17189 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17190 )
17191 {
17192 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
17193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17194 if (_token == NULL) {
17195 D(p->level--);
17196 return NULL;
17197 }
17198 int _end_lineno = _token->end_lineno;
17199 UNUSED(_end_lineno); // Only used by EXTRA macro
17200 int _end_col_offset = _token->end_col_offset;
17201 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017202 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017203 if (_res == NULL && PyErr_Occurred()) {
17204 p->error_indicator = 1;
17205 D(p->level--);
17206 return NULL;
17207 }
17208 goto done;
17209 }
17210 p->mark = _mark;
17211 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
17213 }
17214 { // '[' targets? ']'
17215 if (p->error_indicator) {
17216 D(p->level--);
17217 return NULL;
17218 }
17219 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17220 Token * _literal;
17221 Token * _literal_1;
17222 void *b;
17223 if (
17224 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17225 &&
17226 (b = targets_rule(p), 1) // targets?
17227 &&
17228 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17229 )
17230 {
17231 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
17232 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17233 if (_token == NULL) {
17234 D(p->level--);
17235 return NULL;
17236 }
17237 int _end_lineno = _token->end_lineno;
17238 UNUSED(_end_lineno); // Only used by EXTRA macro
17239 int _end_col_offset = _token->end_col_offset;
17240 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017241 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017242 if (_res == NULL && PyErr_Occurred()) {
17243 p->error_indicator = 1;
17244 D(p->level--);
17245 return NULL;
17246 }
17247 goto done;
17248 }
17249 p->mark = _mark;
17250 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17252 }
17253 _res = NULL;
17254 done:
17255 D(p->level--);
17256 return _res;
17257}
17258
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017259// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017260// | args ',' '*'
17261// | expression for_if_clauses ',' [args | expression for_if_clauses]
17262// | args for_if_clauses
17263// | args ',' expression for_if_clauses
17264// | args ',' args
17265static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017266invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017267{
17268 D(p->level++);
17269 if (p->error_indicator) {
17270 D(p->level--);
17271 return NULL;
17272 }
17273 void * _res = NULL;
17274 int _mark = p->mark;
17275 { // args ',' '*'
17276 if (p->error_indicator) {
17277 D(p->level--);
17278 return NULL;
17279 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017280 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017281 Token * _literal;
17282 Token * _literal_1;
17283 expr_ty args_var;
17284 if (
17285 (args_var = args_rule(p)) // args
17286 &&
17287 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17288 &&
17289 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17290 )
17291 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017292 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017293 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17294 if (_res == NULL && PyErr_Occurred()) {
17295 p->error_indicator = 1;
17296 D(p->level--);
17297 return NULL;
17298 }
17299 goto done;
17300 }
17301 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017302 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17304 }
17305 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17306 if (p->error_indicator) {
17307 D(p->level--);
17308 return NULL;
17309 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017310 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 +010017311 Token * _literal;
17312 void *_opt_var;
17313 UNUSED(_opt_var); // Silence compiler warnings
17314 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017315 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017316 if (
17317 (a = expression_rule(p)) // expression
17318 &&
17319 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17320 &&
17321 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17322 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017323 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017324 )
17325 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017326 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 Galindo1ed83ad2020-06-11 17:30:46 +010017327 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17328 if (_res == NULL && PyErr_Occurred()) {
17329 p->error_indicator = 1;
17330 D(p->level--);
17331 return NULL;
17332 }
17333 goto done;
17334 }
17335 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017336 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17338 }
17339 { // args for_if_clauses
17340 if (p->error_indicator) {
17341 D(p->level--);
17342 return NULL;
17343 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017344 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 +010017345 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017346 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017347 if (
17348 (a = args_rule(p)) // args
17349 &&
17350 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17351 )
17352 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017353 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 +010017354 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
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;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017363 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17365 }
17366 { // args ',' expression for_if_clauses
17367 if (p->error_indicator) {
17368 D(p->level--);
17369 return NULL;
17370 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017371 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 +010017372 Token * _literal;
17373 expr_ty a;
17374 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017375 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017376 if (
17377 (args_var = args_rule(p)) // args
17378 &&
17379 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17380 &&
17381 (a = expression_rule(p)) // expression
17382 &&
17383 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17384 )
17385 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017386 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017387 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17388 if (_res == NULL && PyErr_Occurred()) {
17389 p->error_indicator = 1;
17390 D(p->level--);
17391 return NULL;
17392 }
17393 goto done;
17394 }
17395 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017396 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17398 }
17399 { // args ',' args
17400 if (p->error_indicator) {
17401 D(p->level--);
17402 return NULL;
17403 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017404 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017405 Token * _literal;
17406 expr_ty a;
17407 expr_ty args_var;
17408 if (
17409 (a = args_rule(p)) // args
17410 &&
17411 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17412 &&
17413 (args_var = args_rule(p)) // args
17414 )
17415 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017416 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 +010017417 _res = _PyPegen_arguments_parsing_error ( p , a );
17418 if (_res == NULL && PyErr_Occurred()) {
17419 p->error_indicator = 1;
17420 D(p->level--);
17421 return NULL;
17422 }
17423 goto done;
17424 }
17425 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017426 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17428 }
17429 _res = NULL;
17430 done:
17431 D(p->level--);
17432 return _res;
17433}
17434
17435// invalid_kwarg: expression '='
17436static void *
17437invalid_kwarg_rule(Parser *p)
17438{
17439 D(p->level++);
17440 if (p->error_indicator) {
17441 D(p->level--);
17442 return NULL;
17443 }
17444 void * _res = NULL;
17445 int _mark = p->mark;
17446 { // expression '='
17447 if (p->error_indicator) {
17448 D(p->level--);
17449 return NULL;
17450 }
17451 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017452 Token * a;
17453 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017454 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017455 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017456 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017457 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017458 )
17459 {
17460 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17461 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17462 if (_res == NULL && PyErr_Occurred()) {
17463 p->error_indicator = 1;
17464 D(p->level--);
17465 return NULL;
17466 }
17467 goto done;
17468 }
17469 p->mark = _mark;
17470 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17472 }
17473 _res = NULL;
17474 done:
17475 D(p->level--);
17476 return _res;
17477}
17478
Pablo Galindob2802482021-04-15 21:38:45 +010017479// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
17480static void *
17481invalid_expression_rule(Parser *p)
17482{
17483 D(p->level++);
17484 if (p->error_indicator) {
17485 D(p->level--);
17486 return NULL;
17487 }
17488 void * _res = NULL;
17489 int _mark = p->mark;
17490 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
17491 if (p->error_indicator) {
17492 D(p->level--);
17493 return NULL;
17494 }
17495 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17496 expr_ty a;
17497 expr_ty expression_var;
17498 if (
17499 _PyPegen_lookahead(0, _tmp_143_rule, p)
17500 &&
17501 (a = disjunction_rule(p)) // disjunction
17502 &&
17503 (expression_var = expression_rule(p)) // expression
17504 )
17505 {
17506 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17507 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , "invalid syntax. Perhaps you forgot a comma?" );
17508 if (_res == NULL && PyErr_Occurred()) {
17509 p->error_indicator = 1;
17510 D(p->level--);
17511 return NULL;
17512 }
17513 goto done;
17514 }
17515 p->mark = _mark;
17516 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
17517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
17518 }
17519 _res = NULL;
17520 done:
17521 D(p->level--);
17522 return _res;
17523}
17524
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017525// invalid_named_expression:
17526// | expression ':=' expression
17527// | NAME '=' bitwise_or !('=' | ':=' | ',')
17528// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017529static void *
17530invalid_named_expression_rule(Parser *p)
17531{
17532 D(p->level++);
17533 if (p->error_indicator) {
17534 D(p->level--);
17535 return NULL;
17536 }
17537 void * _res = NULL;
17538 int _mark = p->mark;
17539 { // expression ':=' expression
17540 if (p->error_indicator) {
17541 D(p->level--);
17542 return NULL;
17543 }
17544 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17545 Token * _literal;
17546 expr_ty a;
17547 expr_ty expression_var;
17548 if (
17549 (a = expression_rule(p)) // expression
17550 &&
17551 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17552 &&
17553 (expression_var = expression_rule(p)) // expression
17554 )
17555 {
17556 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17557 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17558 if (_res == NULL && PyErr_Occurred()) {
17559 p->error_indicator = 1;
17560 D(p->level--);
17561 return NULL;
17562 }
17563 goto done;
17564 }
17565 p->mark = _mark;
17566 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17568 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017569 { // NAME '=' bitwise_or !('=' | ':=' | ',')
17570 if (p->error_indicator) {
17571 D(p->level--);
17572 return NULL;
17573 }
17574 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17575 expr_ty a;
17576 Token * b;
17577 expr_ty bitwise_or_var;
17578 if (
17579 (a = _PyPegen_name_token(p)) // NAME
17580 &&
17581 (b = _PyPegen_expect_token(p, 22)) // token='='
17582 &&
17583 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17584 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017585 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017586 )
17587 {
17588 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17589 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17590 if (_res == NULL && PyErr_Occurred()) {
17591 p->error_indicator = 1;
17592 D(p->level--);
17593 return NULL;
17594 }
17595 goto done;
17596 }
17597 p->mark = _mark;
17598 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
17600 }
17601 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
17602 if (p->error_indicator) {
17603 D(p->level--);
17604 return NULL;
17605 }
17606 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 !('=' | ':=' | ',')"));
17607 expr_ty a;
17608 Token * b;
17609 expr_ty bitwise_or_var;
17610 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017611 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017612 &&
17613 (a = bitwise_or_rule(p)) // bitwise_or
17614 &&
17615 (b = _PyPegen_expect_token(p, 22)) // token='='
17616 &&
17617 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17618 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017619 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010017620 )
17621 {
17622 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 !('=' | ':=' | ',')"));
17623 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
17624 if (_res == NULL && PyErr_Occurred()) {
17625 p->error_indicator = 1;
17626 D(p->level--);
17627 return NULL;
17628 }
17629 goto done;
17630 }
17631 p->mark = _mark;
17632 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
17634 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017635 _res = NULL;
17636 done:
17637 D(p->level--);
17638 return _res;
17639}
17640
17641// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017642// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017643// | star_named_expression ',' star_named_expressions* ':' expression
17644// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017645// | ((star_targets '='))* star_expressions '='
17646// | ((star_targets '='))* yield_expr '='
17647// | star_expressions augassign (yield_expr | star_expressions)
17648static void *
17649invalid_assignment_rule(Parser *p)
17650{
17651 D(p->level++);
17652 if (p->error_indicator) {
17653 D(p->level--);
17654 return NULL;
17655 }
17656 void * _res = NULL;
17657 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017658 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017659 if (p->error_indicator) {
17660 D(p->level--);
17661 return NULL;
17662 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017663 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 +010017664 Token * _literal;
17665 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017666 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017667 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017668 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017669 &&
17670 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017671 &&
17672 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017673 )
17674 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017675 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17676 _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 +010017677 if (_res == NULL && PyErr_Occurred()) {
17678 p->error_indicator = 1;
17679 D(p->level--);
17680 return NULL;
17681 }
17682 goto done;
17683 }
17684 p->mark = _mark;
17685 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017687 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017688 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017689 if (p->error_indicator) {
17690 D(p->level--);
17691 return NULL;
17692 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017693 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 +010017694 Token * _literal;
17695 Token * _literal_1;
Pablo Galindob2802482021-04-15 21:38:45 +010017696 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017697 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017698 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017699 if (
17700 (a = star_named_expression_rule(p)) // star_named_expression
17701 &&
17702 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17703 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017704 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017705 &&
17706 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017707 &&
17708 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017709 )
17710 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017711 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 +010017712 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17713 if (_res == NULL && PyErr_Occurred()) {
17714 p->error_indicator = 1;
17715 D(p->level--);
17716 return NULL;
17717 }
17718 goto done;
17719 }
17720 p->mark = _mark;
17721 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017723 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017724 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017725 if (p->error_indicator) {
17726 D(p->level--);
17727 return NULL;
17728 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017729 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017730 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017731 expr_ty a;
17732 expr_ty expression_var;
17733 if (
17734 (a = expression_rule(p)) // expression
17735 &&
17736 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17737 &&
17738 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017739 )
17740 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017741 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 +010017742 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17743 if (_res == NULL && PyErr_Occurred()) {
17744 p->error_indicator = 1;
17745 D(p->level--);
17746 return NULL;
17747 }
17748 goto done;
17749 }
17750 p->mark = _mark;
17751 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017753 }
17754 { // ((star_targets '='))* star_expressions '='
17755 if (p->error_indicator) {
17756 D(p->level--);
17757 return NULL;
17758 }
17759 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17760 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017761 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017762 expr_ty a;
17763 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017764 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017765 &&
17766 (a = star_expressions_rule(p)) // star_expressions
17767 &&
17768 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17769 )
17770 {
17771 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 +030017772 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017773 if (_res == NULL && PyErr_Occurred()) {
17774 p->error_indicator = 1;
17775 D(p->level--);
17776 return NULL;
17777 }
17778 goto done;
17779 }
17780 p->mark = _mark;
17781 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17783 }
17784 { // ((star_targets '='))* yield_expr '='
17785 if (p->error_indicator) {
17786 D(p->level--);
17787 return NULL;
17788 }
17789 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17790 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010017791 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017792 expr_ty a;
17793 if (
Pablo Galindob2802482021-04-15 21:38:45 +010017794 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017795 &&
17796 (a = yield_expr_rule(p)) // yield_expr
17797 &&
17798 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17799 )
17800 {
17801 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17802 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17803 if (_res == NULL && PyErr_Occurred()) {
17804 p->error_indicator = 1;
17805 D(p->level--);
17806 return NULL;
17807 }
17808 goto done;
17809 }
17810 p->mark = _mark;
17811 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17813 }
17814 { // star_expressions augassign (yield_expr | star_expressions)
17815 if (p->error_indicator) {
17816 D(p->level--);
17817 return NULL;
17818 }
17819 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob2802482021-04-15 21:38:45 +010017820 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017821 expr_ty a;
17822 AugOperator* augassign_var;
17823 if (
17824 (a = star_expressions_rule(p)) // star_expressions
17825 &&
17826 (augassign_var = augassign_rule(p)) // augassign
17827 &&
Pablo Galindob2802482021-04-15 21:38:45 +010017828 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017829 )
17830 {
17831 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17832 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17833 if (_res == NULL && PyErr_Occurred()) {
17834 p->error_indicator = 1;
17835 D(p->level--);
17836 return NULL;
17837 }
17838 goto done;
17839 }
17840 p->mark = _mark;
17841 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17843 }
17844 _res = NULL;
17845 done:
17846 D(p->level--);
17847 return _res;
17848}
17849
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017850// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17851static expr_ty
17852invalid_ann_assign_target_rule(Parser *p)
17853{
17854 D(p->level++);
17855 if (p->error_indicator) {
17856 D(p->level--);
17857 return NULL;
17858 }
17859 expr_ty _res = NULL;
17860 int _mark = p->mark;
17861 { // list
17862 if (p->error_indicator) {
17863 D(p->level--);
17864 return NULL;
17865 }
17866 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17867 expr_ty list_var;
17868 if (
17869 (list_var = list_rule(p)) // list
17870 )
17871 {
17872 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17873 _res = list_var;
17874 goto done;
17875 }
17876 p->mark = _mark;
17877 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17879 }
17880 { // tuple
17881 if (p->error_indicator) {
17882 D(p->level--);
17883 return NULL;
17884 }
17885 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17886 expr_ty tuple_var;
17887 if (
17888 (tuple_var = tuple_rule(p)) // tuple
17889 )
17890 {
17891 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17892 _res = tuple_var;
17893 goto done;
17894 }
17895 p->mark = _mark;
17896 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17898 }
17899 { // '(' invalid_ann_assign_target ')'
17900 if (p->error_indicator) {
17901 D(p->level--);
17902 return NULL;
17903 }
17904 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17905 Token * _literal;
17906 Token * _literal_1;
17907 expr_ty a;
17908 if (
17909 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17910 &&
17911 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17912 &&
17913 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17914 )
17915 {
17916 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17917 _res = a;
17918 if (_res == NULL && PyErr_Occurred()) {
17919 p->error_indicator = 1;
17920 D(p->level--);
17921 return NULL;
17922 }
17923 goto done;
17924 }
17925 p->mark = _mark;
17926 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17928 }
17929 _res = NULL;
17930 done:
17931 D(p->level--);
17932 return _res;
17933}
17934
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017935// invalid_del_stmt: 'del' star_expressions
17936static void *
17937invalid_del_stmt_rule(Parser *p)
17938{
17939 D(p->level++);
17940 if (p->error_indicator) {
17941 D(p->level--);
17942 return NULL;
17943 }
17944 void * _res = NULL;
17945 int _mark = p->mark;
17946 { // 'del' star_expressions
17947 if (p->error_indicator) {
17948 D(p->level--);
17949 return NULL;
17950 }
17951 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17952 Token * _keyword;
17953 expr_ty a;
17954 if (
17955 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17956 &&
17957 (a = star_expressions_rule(p)) // star_expressions
17958 )
17959 {
17960 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 +030017961 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017962 if (_res == NULL && PyErr_Occurred()) {
17963 p->error_indicator = 1;
17964 D(p->level--);
17965 return NULL;
17966 }
17967 goto done;
17968 }
17969 p->mark = _mark;
17970 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17972 }
17973 _res = NULL;
17974 done:
17975 D(p->level--);
17976 return _res;
17977}
17978
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017979// invalid_block: NEWLINE !INDENT
17980static void *
17981invalid_block_rule(Parser *p)
17982{
17983 D(p->level++);
17984 if (p->error_indicator) {
17985 D(p->level--);
17986 return NULL;
17987 }
17988 void * _res = NULL;
17989 int _mark = p->mark;
17990 { // NEWLINE !INDENT
17991 if (p->error_indicator) {
17992 D(p->level--);
17993 return NULL;
17994 }
17995 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17996 Token * newline_var;
17997 if (
17998 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17999 &&
18000 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18001 )
18002 {
18003 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18004 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18005 if (_res == NULL && PyErr_Occurred()) {
18006 p->error_indicator = 1;
18007 D(p->level--);
18008 return NULL;
18009 }
18010 goto done;
18011 }
18012 p->mark = _mark;
18013 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18015 }
18016 _res = NULL;
18017 done:
18018 D(p->level--);
18019 return _res;
18020}
18021
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018022// Left-recursive
18023// invalid_primary: primary '{'
18024static void *
18025invalid_primary_rule(Parser *p)
18026{
18027 D(p->level++);
18028 if (p->error_indicator) {
18029 D(p->level--);
18030 return NULL;
18031 }
18032 void * _res = NULL;
18033 int _mark = p->mark;
18034 { // primary '{'
18035 if (p->error_indicator) {
18036 D(p->level--);
18037 return NULL;
18038 }
18039 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18040 Token * a;
18041 expr_ty primary_var;
18042 if (
18043 (primary_var = primary_rule(p)) // primary
18044 &&
18045 (a = _PyPegen_expect_token(p, 25)) // token='{'
18046 )
18047 {
18048 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18049 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18050 if (_res == NULL && PyErr_Occurred()) {
18051 p->error_indicator = 1;
18052 D(p->level--);
18053 return NULL;
18054 }
18055 goto done;
18056 }
18057 p->mark = _mark;
18058 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18060 }
18061 _res = NULL;
18062 done:
18063 D(p->level--);
18064 return _res;
18065}
18066
Pablo Galindo835f14f2021-01-31 22:52:56 +000018067// invalid_comprehension:
18068// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018069// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018070static void *
18071invalid_comprehension_rule(Parser *p)
18072{
18073 D(p->level++);
18074 if (p->error_indicator) {
18075 D(p->level--);
18076 return NULL;
18077 }
18078 void * _res = NULL;
18079 int _mark = p->mark;
18080 { // ('[' | '(' | '{') starred_expression for_if_clauses
18081 if (p->error_indicator) {
18082 D(p->level--);
18083 return NULL;
18084 }
18085 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob2802482021-04-15 21:38:45 +010018086 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018087 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018088 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018089 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018090 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018091 &&
18092 (a = starred_expression_rule(p)) // starred_expression
18093 &&
18094 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18095 )
18096 {
18097 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18098 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18099 if (_res == NULL && PyErr_Occurred()) {
18100 p->error_indicator = 1;
18101 D(p->level--);
18102 return NULL;
18103 }
18104 goto done;
18105 }
18106 p->mark = _mark;
18107 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18109 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018110 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018111 if (p->error_indicator) {
18112 D(p->level--);
18113 return NULL;
18114 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018115 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 +000018116 Token * _literal;
18117 void *_opt_var;
18118 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindob2802482021-04-15 21:38:45 +010018119 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018120 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018121 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018122 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018123 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018124 &&
18125 (a = star_named_expression_rule(p)) // star_named_expression
18126 &&
18127 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18128 &&
18129 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018130 &&
18131 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018132 )
18133 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018134 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"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018135 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
18136 if (_res == NULL && PyErr_Occurred()) {
18137 p->error_indicator = 1;
18138 D(p->level--);
18139 return NULL;
18140 }
18141 goto done;
18142 }
18143 p->mark = _mark;
18144 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018146 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018147 _res = NULL;
18148 done:
18149 D(p->level--);
18150 return _res;
18151}
18152
18153// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18154static void *
18155invalid_dict_comprehension_rule(Parser *p)
18156{
18157 D(p->level++);
18158 if (p->error_indicator) {
18159 D(p->level--);
18160 return NULL;
18161 }
18162 void * _res = NULL;
18163 int _mark = p->mark;
18164 { // '{' '**' bitwise_or for_if_clauses '}'
18165 if (p->error_indicator) {
18166 D(p->level--);
18167 return NULL;
18168 }
18169 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18170 Token * _literal;
18171 Token * _literal_1;
18172 Token * a;
18173 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018174 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018175 if (
18176 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18177 &&
18178 (a = _PyPegen_expect_token(p, 35)) // token='**'
18179 &&
18180 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18181 &&
18182 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18183 &&
18184 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18185 )
18186 {
18187 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18188 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18189 if (_res == NULL && PyErr_Occurred()) {
18190 p->error_indicator = 1;
18191 D(p->level--);
18192 return NULL;
18193 }
18194 goto done;
18195 }
18196 p->mark = _mark;
18197 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18199 }
18200 _res = NULL;
18201 done:
18202 D(p->level--);
18203 return _res;
18204}
18205
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018206// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018207static void *
18208invalid_parameters_rule(Parser *p)
18209{
18210 D(p->level++);
18211 if (p->error_indicator) {
18212 D(p->level--);
18213 return NULL;
18214 }
18215 void * _res = NULL;
18216 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018217 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018218 if (p->error_indicator) {
18219 D(p->level--);
18220 return NULL;
18221 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018222 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindob2802482021-04-15 21:38:45 +010018223 asdl_seq * _loop0_153_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018224 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018225 arg_ty param_no_default_var;
18226 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018227 (_loop0_153_var = _loop0_153_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018228 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018229 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018230 &&
18231 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18232 )
18233 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018234 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 Galindo1ed83ad2020-06-11 17:30:46 +010018235 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18236 if (_res == NULL && PyErr_Occurred()) {
18237 p->error_indicator = 1;
18238 D(p->level--);
18239 return NULL;
18240 }
18241 goto done;
18242 }
18243 p->mark = _mark;
18244 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18246 }
18247 _res = NULL;
18248 done:
18249 D(p->level--);
18250 return _res;
18251}
18252
18253// invalid_parameters_helper: slash_with_default | param_with_default+
18254static void *
18255invalid_parameters_helper_rule(Parser *p)
18256{
18257 D(p->level++);
18258 if (p->error_indicator) {
18259 D(p->level--);
18260 return NULL;
18261 }
18262 void * _res = NULL;
18263 int _mark = p->mark;
18264 { // slash_with_default
18265 if (p->error_indicator) {
18266 D(p->level--);
18267 return NULL;
18268 }
18269 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18270 SlashWithDefault* a;
18271 if (
18272 (a = slash_with_default_rule(p)) // slash_with_default
18273 )
18274 {
18275 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18276 _res = _PyPegen_singleton_seq ( p , a );
18277 if (_res == NULL && PyErr_Occurred()) {
18278 p->error_indicator = 1;
18279 D(p->level--);
18280 return NULL;
18281 }
18282 goto done;
18283 }
18284 p->mark = _mark;
18285 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18287 }
18288 { // param_with_default+
18289 if (p->error_indicator) {
18290 D(p->level--);
18291 return NULL;
18292 }
18293 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018294 asdl_seq * _loop1_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018295 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018296 (_loop1_154_var = _loop1_154_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018297 )
18298 {
18299 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018300 _res = _loop1_154_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018301 goto done;
18302 }
18303 p->mark = _mark;
18304 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018306 }
18307 _res = NULL;
18308 done:
18309 D(p->level--);
18310 return _res;
18311}
18312
18313// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018314// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018315static void *
18316invalid_lambda_parameters_rule(Parser *p)
18317{
18318 D(p->level++);
18319 if (p->error_indicator) {
18320 D(p->level--);
18321 return NULL;
18322 }
18323 void * _res = NULL;
18324 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018325 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018326 if (p->error_indicator) {
18327 D(p->level--);
18328 return NULL;
18329 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018330 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindob2802482021-04-15 21:38:45 +010018331 asdl_seq * _loop0_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018332 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018333 arg_ty lambda_param_no_default_var;
18334 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018335 (_loop0_155_var = _loop0_155_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018336 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018337 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018338 &&
18339 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
18340 )
18341 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018342 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 Galindo1ed83ad2020-06-11 17:30:46 +010018343 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
18344 if (_res == NULL && PyErr_Occurred()) {
18345 p->error_indicator = 1;
18346 D(p->level--);
18347 return NULL;
18348 }
18349 goto done;
18350 }
18351 p->mark = _mark;
18352 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18354 }
18355 _res = NULL;
18356 done:
18357 D(p->level--);
18358 return _res;
18359}
18360
18361// invalid_lambda_parameters_helper:
18362// | lambda_slash_with_default
18363// | lambda_param_with_default+
18364static void *
18365invalid_lambda_parameters_helper_rule(Parser *p)
18366{
18367 D(p->level++);
18368 if (p->error_indicator) {
18369 D(p->level--);
18370 return NULL;
18371 }
18372 void * _res = NULL;
18373 int _mark = p->mark;
18374 { // lambda_slash_with_default
18375 if (p->error_indicator) {
18376 D(p->level--);
18377 return NULL;
18378 }
18379 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18380 SlashWithDefault* a;
18381 if (
18382 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18383 )
18384 {
18385 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18386 _res = _PyPegen_singleton_seq ( p , a );
18387 if (_res == NULL && PyErr_Occurred()) {
18388 p->error_indicator = 1;
18389 D(p->level--);
18390 return NULL;
18391 }
18392 goto done;
18393 }
18394 p->mark = _mark;
18395 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18397 }
18398 { // lambda_param_with_default+
18399 if (p->error_indicator) {
18400 D(p->level--);
18401 return NULL;
18402 }
18403 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018404 asdl_seq * _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018405 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018406 (_loop1_156_var = _loop1_156_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018407 )
18408 {
18409 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindob2802482021-04-15 21:38:45 +010018410 _res = _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018411 goto done;
18412 }
18413 p->mark = _mark;
18414 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018416 }
18417 _res = NULL;
18418 done:
18419 D(p->level--);
18420 return _res;
18421}
18422
18423// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18424static void *
18425invalid_star_etc_rule(Parser *p)
18426{
18427 D(p->level++);
18428 if (p->error_indicator) {
18429 D(p->level--);
18430 return NULL;
18431 }
18432 void * _res = NULL;
18433 int _mark = p->mark;
18434 { // '*' (')' | ',' (')' | '**'))
18435 if (p->error_indicator) {
18436 D(p->level--);
18437 return NULL;
18438 }
18439 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18440 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018441 void *_tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018442 if (
18443 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18444 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018445 (_tmp_157_var = _tmp_157_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018446 )
18447 {
18448 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18449 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18450 if (_res == NULL && PyErr_Occurred()) {
18451 p->error_indicator = 1;
18452 D(p->level--);
18453 return NULL;
18454 }
18455 goto done;
18456 }
18457 p->mark = _mark;
18458 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18460 }
18461 { // '*' ',' TYPE_COMMENT
18462 if (p->error_indicator) {
18463 D(p->level--);
18464 return NULL;
18465 }
18466 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18467 Token * _literal;
18468 Token * _literal_1;
18469 Token * type_comment_var;
18470 if (
18471 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18472 &&
18473 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18474 &&
18475 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18476 )
18477 {
18478 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18479 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18480 if (_res == NULL && PyErr_Occurred()) {
18481 p->error_indicator = 1;
18482 D(p->level--);
18483 return NULL;
18484 }
18485 goto done;
18486 }
18487 p->mark = _mark;
18488 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18490 }
18491 _res = NULL;
18492 done:
18493 D(p->level--);
18494 return _res;
18495}
18496
18497// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18498static void *
18499invalid_lambda_star_etc_rule(Parser *p)
18500{
18501 D(p->level++);
18502 if (p->error_indicator) {
18503 D(p->level--);
18504 return NULL;
18505 }
18506 void * _res = NULL;
18507 int _mark = p->mark;
18508 { // '*' (':' | ',' (':' | '**'))
18509 if (p->error_indicator) {
18510 D(p->level--);
18511 return NULL;
18512 }
18513 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18514 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018515 void *_tmp_158_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018516 if (
18517 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18518 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018519 (_tmp_158_var = _tmp_158_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018520 )
18521 {
18522 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18523 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18524 if (_res == NULL && PyErr_Occurred()) {
18525 p->error_indicator = 1;
18526 D(p->level--);
18527 return NULL;
18528 }
18529 goto done;
18530 }
18531 p->mark = _mark;
18532 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18534 }
18535 _res = NULL;
18536 done:
18537 D(p->level--);
18538 return _res;
18539}
18540
18541// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18542static void *
18543invalid_double_type_comments_rule(Parser *p)
18544{
18545 D(p->level++);
18546 if (p->error_indicator) {
18547 D(p->level--);
18548 return NULL;
18549 }
18550 void * _res = NULL;
18551 int _mark = p->mark;
18552 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18553 if (p->error_indicator) {
18554 D(p->level--);
18555 return NULL;
18556 }
18557 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18558 Token * indent_var;
18559 Token * newline_var;
18560 Token * newline_var_1;
18561 Token * type_comment_var;
18562 Token * type_comment_var_1;
18563 if (
18564 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18565 &&
18566 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18567 &&
18568 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18569 &&
18570 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18571 &&
18572 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18573 )
18574 {
18575 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"));
18576 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18577 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_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18587 }
18588 _res = NULL;
18589 done:
18590 D(p->level--);
18591 return _res;
18592}
18593
Pablo Galindo58fb1562021-02-02 19:54:22 +000018594// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018595static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018596invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018597{
18598 D(p->level++);
18599 if (p->error_indicator) {
18600 D(p->level--);
18601 return NULL;
18602 }
18603 void * _res = NULL;
18604 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018605 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018606 if (p->error_indicator) {
18607 D(p->level--);
18608 return NULL;
18609 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018610 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 +030018611 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018612 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018613 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018614 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018615 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018616 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018617 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18618 &&
18619 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018620 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018621 _PyPegen_lookahead(1, _tmp_159_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018622 )
18623 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018624 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 +030018625 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018626 if (_res == NULL && PyErr_Occurred()) {
18627 p->error_indicator = 1;
18628 D(p->level--);
18629 return NULL;
18630 }
18631 goto done;
18632 }
18633 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018634 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018636 }
18637 _res = NULL;
18638 done:
18639 D(p->level--);
18640 return _res;
18641}
18642
18643// invalid_for_target: ASYNC? 'for' star_expressions
18644static void *
18645invalid_for_target_rule(Parser *p)
18646{
18647 D(p->level++);
18648 if (p->error_indicator) {
18649 D(p->level--);
18650 return NULL;
18651 }
18652 void * _res = NULL;
18653 int _mark = p->mark;
18654 { // ASYNC? 'for' star_expressions
18655 if (p->error_indicator) {
18656 D(p->level--);
18657 return NULL;
18658 }
18659 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18660 Token * _keyword;
18661 void *_opt_var;
18662 UNUSED(_opt_var); // Silence compiler warnings
18663 expr_ty a;
18664 if (
18665 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18666 &&
18667 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18668 &&
18669 (a = star_expressions_rule(p)) // star_expressions
18670 )
18671 {
18672 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 +030018673 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018674 if (_res == NULL && PyErr_Occurred()) {
18675 p->error_indicator = 1;
18676 D(p->level--);
18677 return NULL;
18678 }
18679 goto done;
18680 }
18681 p->mark = _mark;
18682 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18684 }
18685 _res = NULL;
18686 done:
18687 D(p->level--);
18688 return _res;
18689}
18690
Pablo Galindo8efad612021-03-24 19:34:17 +000018691// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018692static void *
18693invalid_group_rule(Parser *p)
18694{
18695 D(p->level++);
18696 if (p->error_indicator) {
18697 D(p->level--);
18698 return NULL;
18699 }
18700 void * _res = NULL;
18701 int _mark = p->mark;
18702 { // '(' starred_expression ')'
18703 if (p->error_indicator) {
18704 D(p->level--);
18705 return NULL;
18706 }
18707 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18708 Token * _literal;
18709 Token * _literal_1;
18710 expr_ty a;
18711 if (
18712 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18713 &&
18714 (a = starred_expression_rule(p)) // starred_expression
18715 &&
18716 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18717 )
18718 {
18719 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 +010018720 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018721 if (_res == NULL && PyErr_Occurred()) {
18722 p->error_indicator = 1;
18723 D(p->level--);
18724 return NULL;
18725 }
18726 goto done;
18727 }
18728 p->mark = _mark;
18729 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018731 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018732 { // '(' '**' expression ')'
18733 if (p->error_indicator) {
18734 D(p->level--);
18735 return NULL;
18736 }
18737 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18738 Token * _literal;
18739 Token * _literal_1;
18740 Token * a;
18741 expr_ty expression_var;
18742 if (
18743 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18744 &&
18745 (a = _PyPegen_expect_token(p, 35)) // token='**'
18746 &&
18747 (expression_var = expression_rule(p)) // expression
18748 &&
18749 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18750 )
18751 {
18752 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018753 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000018754 if (_res == NULL && PyErr_Occurred()) {
18755 p->error_indicator = 1;
18756 D(p->level--);
18757 return NULL;
18758 }
18759 goto done;
18760 }
18761 p->mark = _mark;
18762 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18764 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018765 _res = NULL;
18766 done:
18767 D(p->level--);
18768 return _res;
18769}
18770
18771// invalid_import_from_targets: import_from_as_names ','
18772static void *
18773invalid_import_from_targets_rule(Parser *p)
18774{
18775 D(p->level++);
18776 if (p->error_indicator) {
18777 D(p->level--);
18778 return NULL;
18779 }
18780 void * _res = NULL;
18781 int _mark = p->mark;
18782 { // import_from_as_names ','
18783 if (p->error_indicator) {
18784 D(p->level--);
18785 return NULL;
18786 }
18787 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18788 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018789 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018790 if (
18791 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18792 &&
18793 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18794 )
18795 {
18796 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18797 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18798 if (_res == NULL && PyErr_Occurred()) {
18799 p->error_indicator = 1;
18800 D(p->level--);
18801 return NULL;
18802 }
18803 goto done;
18804 }
18805 p->mark = _mark;
18806 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18808 }
18809 _res = NULL;
18810 done:
18811 D(p->level--);
18812 return _res;
18813}
18814
Pablo Galindo58fb1562021-02-02 19:54:22 +000018815// invalid_with_stmt:
18816// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18817// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18818static void *
18819invalid_with_stmt_rule(Parser *p)
18820{
18821 D(p->level++);
18822 if (p->error_indicator) {
18823 D(p->level--);
18824 return NULL;
18825 }
18826 void * _res = NULL;
18827 int _mark = p->mark;
18828 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18829 if (p->error_indicator) {
18830 D(p->level--);
18831 return NULL;
18832 }
18833 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010018834 asdl_seq * _gather_160_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018835 Token * _keyword;
18836 Token * _literal;
18837 void *_opt_var;
18838 UNUSED(_opt_var); // Silence compiler warnings
18839 if (
18840 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18841 &&
18842 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18843 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018844 (_gather_160_var = _gather_160_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018845 &&
18846 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18847 )
18848 {
18849 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010018850 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_160_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018851 goto done;
18852 }
18853 p->mark = _mark;
18854 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18856 }
18857 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18858 if (p->error_indicator) {
18859 D(p->level--);
18860 return NULL;
18861 }
18862 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010018863 asdl_seq * _gather_162_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018864 Token * _keyword;
18865 Token * _literal;
18866 Token * _literal_1;
18867 Token * _literal_2;
18868 void *_opt_var;
18869 UNUSED(_opt_var); // Silence compiler warnings
18870 void *_opt_var_1;
18871 UNUSED(_opt_var_1); // Silence compiler warnings
18872 if (
18873 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18874 &&
18875 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18876 &&
18877 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18878 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018879 (_gather_162_var = _gather_162_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018880 &&
18881 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18882 &&
18883 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18884 &&
18885 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18886 )
18887 {
18888 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindob2802482021-04-15 21:38:45 +010018889 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_162_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018890 goto done;
18891 }
18892 p->mark = _mark;
18893 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18895 }
18896 _res = NULL;
18897 done:
18898 D(p->level--);
18899 return _res;
18900}
18901
Pablo Galindo206cbda2021-02-07 18:42:21 +000018902// invalid_except_block:
18903// | 'except' expression ',' expressions ['as' NAME] ':'
18904// | 'except' expression ['as' NAME] &&':'
18905// | 'except' &&':'
18906static void *
18907invalid_except_block_rule(Parser *p)
18908{
18909 D(p->level++);
18910 if (p->error_indicator) {
18911 D(p->level--);
18912 return NULL;
18913 }
18914 void * _res = NULL;
18915 int _mark = p->mark;
18916 { // 'except' expression ',' expressions ['as' NAME] ':'
18917 if (p->error_indicator) {
18918 D(p->level--);
18919 return NULL;
18920 }
18921 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18922 Token * _keyword;
18923 Token * _literal;
18924 Token * _literal_1;
18925 void *_opt_var;
18926 UNUSED(_opt_var); // Silence compiler warnings
18927 expr_ty a;
18928 expr_ty expressions_var;
18929 if (
18930 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18931 &&
18932 (a = expression_rule(p)) // expression
18933 &&
18934 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18935 &&
18936 (expressions_var = expressions_rule(p)) // expressions
18937 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018938 (_opt_var = _tmp_164_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018939 &&
18940 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18941 )
18942 {
18943 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18944 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18945 if (_res == NULL && PyErr_Occurred()) {
18946 p->error_indicator = 1;
18947 D(p->level--);
18948 return NULL;
18949 }
18950 goto done;
18951 }
18952 p->mark = _mark;
18953 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18955 }
18956 { // 'except' expression ['as' NAME] &&':'
18957 if (p->error_indicator) {
18958 D(p->level--);
18959 return NULL;
18960 }
18961 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18962 Token * _keyword;
18963 Token * _literal;
18964 void *_opt_var;
18965 UNUSED(_opt_var); // Silence compiler warnings
18966 expr_ty expression_var;
18967 if (
18968 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18969 &&
18970 (expression_var = expression_rule(p)) // expression
18971 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018972 (_opt_var = _tmp_165_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018973 &&
18974 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18975 )
18976 {
18977 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18978 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18979 goto done;
18980 }
18981 p->mark = _mark;
18982 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18984 }
18985 { // 'except' &&':'
18986 if (p->error_indicator) {
18987 D(p->level--);
18988 return NULL;
18989 }
18990 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18991 Token * _keyword;
18992 Token * _literal;
18993 if (
18994 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18995 &&
18996 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18997 )
18998 {
18999 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
19000 _res = _PyPegen_dummy_name(p, _keyword, _literal);
19001 goto done;
19002 }
19003 p->mark = _mark;
19004 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
19005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
19006 }
19007 _res = NULL;
19008 done:
19009 D(p->level--);
19010 return _res;
19011}
19012
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000019013// invalid_match_stmt: "match" subject_expr !':'
19014static void *
19015invalid_match_stmt_rule(Parser *p)
19016{
19017 D(p->level++);
19018 if (p->error_indicator) {
19019 D(p->level--);
19020 return NULL;
19021 }
19022 void * _res = NULL;
19023 int _mark = p->mark;
19024 { // "match" subject_expr !':'
19025 if (p->error_indicator) {
19026 D(p->level--);
19027 return NULL;
19028 }
19029 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19030 expr_ty _keyword;
19031 expr_ty subject_expr_var;
19032 if (
19033 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
19034 &&
19035 (subject_expr_var = subject_expr_rule(p)) // subject_expr
19036 &&
19037 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19038 )
19039 {
19040 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
19041 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
19042 if (_res == NULL && PyErr_Occurred()) {
19043 p->error_indicator = 1;
19044 D(p->level--);
19045 return NULL;
19046 }
19047 goto done;
19048 }
19049 p->mark = _mark;
19050 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
19052 }
19053 _res = NULL;
19054 done:
19055 D(p->level--);
19056 return _res;
19057}
19058
19059// invalid_case_block: "case" patterns guard? !':'
19060static void *
19061invalid_case_block_rule(Parser *p)
19062{
19063 D(p->level++);
19064 if (p->error_indicator) {
19065 D(p->level--);
19066 return NULL;
19067 }
19068 void * _res = NULL;
19069 int _mark = p->mark;
19070 { // "case" patterns guard? !':'
19071 if (p->error_indicator) {
19072 D(p->level--);
19073 return NULL;
19074 }
19075 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19076 expr_ty _keyword;
19077 void *_opt_var;
19078 UNUSED(_opt_var); // Silence compiler warnings
19079 expr_ty patterns_var;
19080 if (
19081 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
19082 &&
19083 (patterns_var = patterns_rule(p)) // patterns
19084 &&
19085 (_opt_var = guard_rule(p), 1) // guard?
19086 &&
19087 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
19088 )
19089 {
19090 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
19091 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19092 if (_res == NULL && PyErr_Occurred()) {
19093 p->error_indicator = 1;
19094 D(p->level--);
19095 return NULL;
19096 }
19097 goto done;
19098 }
19099 p->mark = _mark;
19100 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
19101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
19102 }
19103 _res = NULL;
19104 done:
19105 D(p->level--);
19106 return _res;
19107}
19108
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019109// invalid_if_stmt: 'if' named_expression NEWLINE
19110static void *
19111invalid_if_stmt_rule(Parser *p)
19112{
19113 D(p->level++);
19114 if (p->error_indicator) {
19115 D(p->level--);
19116 return NULL;
19117 }
19118 void * _res = NULL;
19119 int _mark = p->mark;
19120 { // 'if' named_expression NEWLINE
19121 if (p->error_indicator) {
19122 D(p->level--);
19123 return NULL;
19124 }
19125 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19126 Token * _keyword;
19127 expr_ty named_expression_var;
19128 Token * newline_var;
19129 if (
19130 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
19131 &&
19132 (named_expression_var = named_expression_rule(p)) // named_expression
19133 &&
19134 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19135 )
19136 {
19137 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
19138 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19139 if (_res == NULL && PyErr_Occurred()) {
19140 p->error_indicator = 1;
19141 D(p->level--);
19142 return NULL;
19143 }
19144 goto done;
19145 }
19146 p->mark = _mark;
19147 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
19149 }
19150 _res = NULL;
19151 done:
19152 D(p->level--);
19153 return _res;
19154}
19155
19156// invalid_elif_stmt: 'elif' named_expression NEWLINE
19157static void *
19158invalid_elif_stmt_rule(Parser *p)
19159{
19160 D(p->level++);
19161 if (p->error_indicator) {
19162 D(p->level--);
19163 return NULL;
19164 }
19165 void * _res = NULL;
19166 int _mark = p->mark;
19167 { // 'elif' named_expression NEWLINE
19168 if (p->error_indicator) {
19169 D(p->level--);
19170 return NULL;
19171 }
19172 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19173 Token * _keyword;
19174 expr_ty named_expression_var;
19175 Token * newline_var;
19176 if (
19177 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
19178 &&
19179 (named_expression_var = named_expression_rule(p)) // named_expression
19180 &&
19181 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19182 )
19183 {
19184 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
19185 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19186 if (_res == NULL && PyErr_Occurred()) {
19187 p->error_indicator = 1;
19188 D(p->level--);
19189 return NULL;
19190 }
19191 goto done;
19192 }
19193 p->mark = _mark;
19194 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
19196 }
19197 _res = NULL;
19198 done:
19199 D(p->level--);
19200 return _res;
19201}
19202
19203// invalid_while_stmt: 'while' named_expression NEWLINE
19204static void *
19205invalid_while_stmt_rule(Parser *p)
19206{
19207 D(p->level++);
19208 if (p->error_indicator) {
19209 D(p->level--);
19210 return NULL;
19211 }
19212 void * _res = NULL;
19213 int _mark = p->mark;
19214 { // 'while' named_expression NEWLINE
19215 if (p->error_indicator) {
19216 D(p->level--);
19217 return NULL;
19218 }
19219 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19220 Token * _keyword;
19221 expr_ty named_expression_var;
19222 Token * newline_var;
19223 if (
19224 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
19225 &&
19226 (named_expression_var = named_expression_rule(p)) // named_expression
19227 &&
19228 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19229 )
19230 {
19231 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
19232 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19233 if (_res == NULL && PyErr_Occurred()) {
19234 p->error_indicator = 1;
19235 D(p->level--);
19236 return NULL;
19237 }
19238 goto done;
19239 }
19240 p->mark = _mark;
19241 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
19243 }
19244 _res = NULL;
19245 done:
19246 D(p->level--);
19247 return _res;
19248}
19249
Pablo Galindoda743502021-04-15 14:06:39 +010019250// invalid_double_starred_kvpairs:
19251// | ','.double_starred_kvpair+ ',' invalid_kvpair
19252// | expression ':' '*' bitwise_or
19253// | expression ':' &('}' | ',')
19254static void *
19255invalid_double_starred_kvpairs_rule(Parser *p)
19256{
19257 D(p->level++);
19258 if (p->error_indicator) {
19259 D(p->level--);
19260 return NULL;
19261 }
19262 void * _res = NULL;
19263 int _mark = p->mark;
19264 { // ','.double_starred_kvpair+ ',' invalid_kvpair
19265 if (p->error_indicator) {
19266 D(p->level--);
19267 return NULL;
19268 }
19269 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindob2802482021-04-15 21:38:45 +010019270 asdl_seq * _gather_166_var;
Pablo Galindoda743502021-04-15 14:06:39 +010019271 Token * _literal;
19272 void *invalid_kvpair_var;
19273 if (
Pablo Galindob2802482021-04-15 21:38:45 +010019274 (_gather_166_var = _gather_166_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010019275 &&
19276 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19277 &&
19278 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
19279 )
19280 {
19281 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindob2802482021-04-15 21:38:45 +010019282 _res = _PyPegen_dummy_name(p, _gather_166_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010019283 goto done;
19284 }
19285 p->mark = _mark;
19286 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
19288 }
19289 { // expression ':' '*' bitwise_or
19290 if (p->error_indicator) {
19291 D(p->level--);
19292 return NULL;
19293 }
19294 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19295 Token * _literal;
19296 Token * a;
19297 expr_ty bitwise_or_var;
19298 expr_ty expression_var;
19299 if (
19300 (expression_var = expression_rule(p)) // expression
19301 &&
19302 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19303 &&
19304 (a = _PyPegen_expect_token(p, 16)) // token='*'
19305 &&
19306 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19307 )
19308 {
19309 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19310 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
19311 if (_res == NULL && PyErr_Occurred()) {
19312 p->error_indicator = 1;
19313 D(p->level--);
19314 return NULL;
19315 }
19316 goto done;
19317 }
19318 p->mark = _mark;
19319 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
19321 }
19322 { // expression ':' &('}' | ',')
19323 if (p->error_indicator) {
19324 D(p->level--);
19325 return NULL;
19326 }
19327 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
19328 Token * a;
19329 expr_ty expression_var;
19330 if (
19331 (expression_var = expression_rule(p)) // expression
19332 &&
19333 (a = _PyPegen_expect_token(p, 11)) // token=':'
19334 &&
Pablo Galindob2802482021-04-15 21:38:45 +010019335 _PyPegen_lookahead(1, _tmp_168_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010019336 )
19337 {
19338 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
19339 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
19340 if (_res == NULL && PyErr_Occurred()) {
19341 p->error_indicator = 1;
19342 D(p->level--);
19343 return NULL;
19344 }
19345 goto done;
19346 }
19347 p->mark = _mark;
19348 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
19349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
19350 }
19351 _res = NULL;
19352 done:
19353 D(p->level--);
19354 return _res;
19355}
19356
19357// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
19358static void *
19359invalid_kvpair_rule(Parser *p)
19360{
19361 D(p->level++);
19362 if (p->error_indicator) {
19363 D(p->level--);
19364 return NULL;
19365 }
19366 void * _res = NULL;
19367 int _mark = p->mark;
19368 { // expression !(':')
19369 if (p->error_indicator) {
19370 D(p->level--);
19371 return NULL;
19372 }
19373 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
19374 expr_ty a;
19375 if (
19376 (a = expression_rule(p)) // expression
19377 &&
19378 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
19379 )
19380 {
19381 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
19382 _res = RAISE_SYNTAX_ERROR ( "':' expected after dictionary key" );
19383 if (_res == NULL && PyErr_Occurred()) {
19384 p->error_indicator = 1;
19385 D(p->level--);
19386 return NULL;
19387 }
19388 goto done;
19389 }
19390 p->mark = _mark;
19391 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
19393 }
19394 { // expression ':' '*' bitwise_or
19395 if (p->error_indicator) {
19396 D(p->level--);
19397 return NULL;
19398 }
19399 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19400 Token * _literal;
19401 Token * a;
19402 expr_ty bitwise_or_var;
19403 expr_ty expression_var;
19404 if (
19405 (expression_var = expression_rule(p)) // expression
19406 &&
19407 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19408 &&
19409 (a = _PyPegen_expect_token(p, 16)) // token='*'
19410 &&
19411 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19412 )
19413 {
19414 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
19415 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use a starred expression in a dictionary value" );
19416 if (_res == NULL && PyErr_Occurred()) {
19417 p->error_indicator = 1;
19418 D(p->level--);
19419 return NULL;
19420 }
19421 goto done;
19422 }
19423 p->mark = _mark;
19424 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
19426 }
19427 { // expression ':'
19428 if (p->error_indicator) {
19429 D(p->level--);
19430 return NULL;
19431 }
19432 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
19433 Token * a;
19434 expr_ty expression_var;
19435 if (
19436 (expression_var = expression_rule(p)) // expression
19437 &&
19438 (a = _PyPegen_expect_token(p, 11)) // token=':'
19439 )
19440 {
19441 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
19442 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
19443 if (_res == NULL && PyErr_Occurred()) {
19444 p->error_indicator = 1;
19445 D(p->level--);
19446 return NULL;
19447 }
19448 goto done;
19449 }
19450 p->mark = _mark;
19451 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
19452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
19453 }
19454 _res = NULL;
19455 done:
19456 D(p->level--);
19457 return _res;
19458}
19459
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019460// _loop0_1: NEWLINE
19461static asdl_seq *
19462_loop0_1_rule(Parser *p)
19463{
19464 D(p->level++);
19465 if (p->error_indicator) {
19466 D(p->level--);
19467 return NULL;
19468 }
19469 void *_res = NULL;
19470 int _mark = p->mark;
19471 int _start_mark = p->mark;
19472 void **_children = PyMem_Malloc(sizeof(void *));
19473 if (!_children) {
19474 p->error_indicator = 1;
19475 PyErr_NoMemory();
19476 D(p->level--);
19477 return NULL;
19478 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019479 Py_ssize_t _children_capacity = 1;
19480 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019481 { // NEWLINE
19482 if (p->error_indicator) {
19483 D(p->level--);
19484 return NULL;
19485 }
19486 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19487 Token * newline_var;
19488 while (
19489 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19490 )
19491 {
19492 _res = newline_var;
19493 if (_n == _children_capacity) {
19494 _children_capacity *= 2;
19495 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19496 if (!_new_children) {
19497 p->error_indicator = 1;
19498 PyErr_NoMemory();
19499 D(p->level--);
19500 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019501 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019502 _children = _new_children;
19503 }
19504 _children[_n++] = _res;
19505 _mark = p->mark;
19506 }
19507 p->mark = _mark;
19508 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
19509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19510 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019511 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019512 if (!_seq) {
19513 PyMem_Free(_children);
19514 p->error_indicator = 1;
19515 PyErr_NoMemory();
19516 D(p->level--);
19517 return NULL;
19518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019519 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019520 PyMem_Free(_children);
19521 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
19522 D(p->level--);
19523 return _seq;
19524}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019525
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019526// _loop0_2: NEWLINE
19527static asdl_seq *
19528_loop0_2_rule(Parser *p)
19529{
19530 D(p->level++);
19531 if (p->error_indicator) {
19532 D(p->level--);
19533 return NULL;
19534 }
19535 void *_res = NULL;
19536 int _mark = p->mark;
19537 int _start_mark = p->mark;
19538 void **_children = PyMem_Malloc(sizeof(void *));
19539 if (!_children) {
19540 p->error_indicator = 1;
19541 PyErr_NoMemory();
19542 D(p->level--);
19543 return NULL;
19544 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019545 Py_ssize_t _children_capacity = 1;
19546 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019547 { // NEWLINE
19548 if (p->error_indicator) {
19549 D(p->level--);
19550 return NULL;
19551 }
19552 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
19553 Token * newline_var;
19554 while (
19555 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19556 )
19557 {
19558 _res = newline_var;
19559 if (_n == _children_capacity) {
19560 _children_capacity *= 2;
19561 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19562 if (!_new_children) {
19563 p->error_indicator = 1;
19564 PyErr_NoMemory();
19565 D(p->level--);
19566 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019567 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019568 _children = _new_children;
19569 }
19570 _children[_n++] = _res;
19571 _mark = p->mark;
19572 }
19573 p->mark = _mark;
19574 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
19575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
19576 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019577 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019578 if (!_seq) {
19579 PyMem_Free(_children);
19580 p->error_indicator = 1;
19581 PyErr_NoMemory();
19582 D(p->level--);
19583 return NULL;
19584 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019585 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019586 PyMem_Free(_children);
19587 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
19588 D(p->level--);
19589 return _seq;
19590}
19591
19592// _loop0_4: ',' expression
19593static asdl_seq *
19594_loop0_4_rule(Parser *p)
19595{
19596 D(p->level++);
19597 if (p->error_indicator) {
19598 D(p->level--);
19599 return NULL;
19600 }
19601 void *_res = NULL;
19602 int _mark = p->mark;
19603 int _start_mark = p->mark;
19604 void **_children = PyMem_Malloc(sizeof(void *));
19605 if (!_children) {
19606 p->error_indicator = 1;
19607 PyErr_NoMemory();
19608 D(p->level--);
19609 return NULL;
19610 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019611 Py_ssize_t _children_capacity = 1;
19612 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019613 { // ',' expression
19614 if (p->error_indicator) {
19615 D(p->level--);
19616 return NULL;
19617 }
19618 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19619 Token * _literal;
19620 expr_ty elem;
19621 while (
19622 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19623 &&
19624 (elem = expression_rule(p)) // expression
19625 )
19626 {
19627 _res = elem;
19628 if (_res == NULL && PyErr_Occurred()) {
19629 p->error_indicator = 1;
19630 PyMem_Free(_children);
19631 D(p->level--);
19632 return NULL;
19633 }
19634 if (_n == _children_capacity) {
19635 _children_capacity *= 2;
19636 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19637 if (!_new_children) {
19638 p->error_indicator = 1;
19639 PyErr_NoMemory();
19640 D(p->level--);
19641 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019642 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019643 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019644 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019645 _children[_n++] = _res;
19646 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019647 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019648 p->mark = _mark;
19649 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
19650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019651 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019652 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019653 if (!_seq) {
19654 PyMem_Free(_children);
19655 p->error_indicator = 1;
19656 PyErr_NoMemory();
19657 D(p->level--);
19658 return NULL;
19659 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019660 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019661 PyMem_Free(_children);
19662 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
19663 D(p->level--);
19664 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019665}
19666
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019667// _gather_3: expression _loop0_4
19668static asdl_seq *
19669_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019670{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019671 D(p->level++);
19672 if (p->error_indicator) {
19673 D(p->level--);
19674 return NULL;
19675 }
19676 asdl_seq * _res = NULL;
19677 int _mark = p->mark;
19678 { // expression _loop0_4
19679 if (p->error_indicator) {
19680 D(p->level--);
19681 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019682 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019683 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19684 expr_ty elem;
19685 asdl_seq * seq;
19686 if (
19687 (elem = expression_rule(p)) // expression
19688 &&
19689 (seq = _loop0_4_rule(p)) // _loop0_4
19690 )
19691 {
19692 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
19693 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19694 goto done;
19695 }
19696 p->mark = _mark;
19697 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
19698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019699 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019700 _res = NULL;
19701 done:
19702 D(p->level--);
19703 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019704}
19705
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019706// _loop0_6: ',' expression
19707static asdl_seq *
19708_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019709{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019710 D(p->level++);
19711 if (p->error_indicator) {
19712 D(p->level--);
19713 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019714 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019715 void *_res = NULL;
19716 int _mark = p->mark;
19717 int _start_mark = p->mark;
19718 void **_children = PyMem_Malloc(sizeof(void *));
19719 if (!_children) {
19720 p->error_indicator = 1;
19721 PyErr_NoMemory();
19722 D(p->level--);
19723 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019724 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019725 Py_ssize_t _children_capacity = 1;
19726 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019727 { // ',' expression
19728 if (p->error_indicator) {
19729 D(p->level--);
19730 return NULL;
19731 }
19732 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19733 Token * _literal;
19734 expr_ty elem;
19735 while (
19736 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19737 &&
19738 (elem = expression_rule(p)) // expression
19739 )
19740 {
19741 _res = elem;
19742 if (_res == NULL && PyErr_Occurred()) {
19743 p->error_indicator = 1;
19744 PyMem_Free(_children);
19745 D(p->level--);
19746 return NULL;
19747 }
19748 if (_n == _children_capacity) {
19749 _children_capacity *= 2;
19750 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19751 if (!_new_children) {
19752 p->error_indicator = 1;
19753 PyErr_NoMemory();
19754 D(p->level--);
19755 return NULL;
19756 }
19757 _children = _new_children;
19758 }
19759 _children[_n++] = _res;
19760 _mark = p->mark;
19761 }
19762 p->mark = _mark;
19763 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
19764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19765 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019766 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019767 if (!_seq) {
19768 PyMem_Free(_children);
19769 p->error_indicator = 1;
19770 PyErr_NoMemory();
19771 D(p->level--);
19772 return NULL;
19773 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019774 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019775 PyMem_Free(_children);
19776 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
19777 D(p->level--);
19778 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019779}
19780
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019781// _gather_5: expression _loop0_6
19782static asdl_seq *
19783_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019784{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019785 D(p->level++);
19786 if (p->error_indicator) {
19787 D(p->level--);
19788 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019789 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019790 asdl_seq * _res = NULL;
19791 int _mark = p->mark;
19792 { // expression _loop0_6
19793 if (p->error_indicator) {
19794 D(p->level--);
19795 return NULL;
19796 }
19797 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19798 expr_ty elem;
19799 asdl_seq * seq;
19800 if (
19801 (elem = expression_rule(p)) // expression
19802 &&
19803 (seq = _loop0_6_rule(p)) // _loop0_6
19804 )
19805 {
19806 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19807 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19808 goto done;
19809 }
19810 p->mark = _mark;
19811 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
19812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
19813 }
19814 _res = NULL;
19815 done:
19816 D(p->level--);
19817 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019818}
19819
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019820// _loop0_8: ',' expression
19821static asdl_seq *
19822_loop0_8_rule(Parser *p)
19823{
19824 D(p->level++);
19825 if (p->error_indicator) {
19826 D(p->level--);
19827 return NULL;
19828 }
19829 void *_res = NULL;
19830 int _mark = p->mark;
19831 int _start_mark = p->mark;
19832 void **_children = PyMem_Malloc(sizeof(void *));
19833 if (!_children) {
19834 p->error_indicator = 1;
19835 PyErr_NoMemory();
19836 D(p->level--);
19837 return NULL;
19838 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019839 Py_ssize_t _children_capacity = 1;
19840 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019841 { // ',' expression
19842 if (p->error_indicator) {
19843 D(p->level--);
19844 return NULL;
19845 }
19846 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19847 Token * _literal;
19848 expr_ty elem;
19849 while (
19850 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19851 &&
19852 (elem = expression_rule(p)) // expression
19853 )
19854 {
19855 _res = elem;
19856 if (_res == NULL && PyErr_Occurred()) {
19857 p->error_indicator = 1;
19858 PyMem_Free(_children);
19859 D(p->level--);
19860 return NULL;
19861 }
19862 if (_n == _children_capacity) {
19863 _children_capacity *= 2;
19864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19865 if (!_new_children) {
19866 p->error_indicator = 1;
19867 PyErr_NoMemory();
19868 D(p->level--);
19869 return NULL;
19870 }
19871 _children = _new_children;
19872 }
19873 _children[_n++] = _res;
19874 _mark = p->mark;
19875 }
19876 p->mark = _mark;
19877 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
19878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019880 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019881 if (!_seq) {
19882 PyMem_Free(_children);
19883 p->error_indicator = 1;
19884 PyErr_NoMemory();
19885 D(p->level--);
19886 return NULL;
19887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019888 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019889 PyMem_Free(_children);
19890 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
19891 D(p->level--);
19892 return _seq;
19893}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019894
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019895// _gather_7: expression _loop0_8
19896static asdl_seq *
19897_gather_7_rule(Parser *p)
19898{
19899 D(p->level++);
19900 if (p->error_indicator) {
19901 D(p->level--);
19902 return NULL;
19903 }
19904 asdl_seq * _res = NULL;
19905 int _mark = p->mark;
19906 { // expression _loop0_8
19907 if (p->error_indicator) {
19908 D(p->level--);
19909 return NULL;
19910 }
19911 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19912 expr_ty elem;
19913 asdl_seq * seq;
19914 if (
19915 (elem = expression_rule(p)) // expression
19916 &&
19917 (seq = _loop0_8_rule(p)) // _loop0_8
19918 )
19919 {
19920 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19921 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19922 goto done;
19923 }
19924 p->mark = _mark;
19925 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19927 }
19928 _res = NULL;
19929 done:
19930 D(p->level--);
19931 return _res;
19932}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019933
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019934// _loop0_10: ',' expression
19935static asdl_seq *
19936_loop0_10_rule(Parser *p)
19937{
19938 D(p->level++);
19939 if (p->error_indicator) {
19940 D(p->level--);
19941 return NULL;
19942 }
19943 void *_res = NULL;
19944 int _mark = p->mark;
19945 int _start_mark = p->mark;
19946 void **_children = PyMem_Malloc(sizeof(void *));
19947 if (!_children) {
19948 p->error_indicator = 1;
19949 PyErr_NoMemory();
19950 D(p->level--);
19951 return NULL;
19952 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019953 Py_ssize_t _children_capacity = 1;
19954 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019955 { // ',' expression
19956 if (p->error_indicator) {
19957 D(p->level--);
19958 return NULL;
19959 }
19960 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19961 Token * _literal;
19962 expr_ty elem;
19963 while (
19964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19965 &&
19966 (elem = expression_rule(p)) // expression
19967 )
19968 {
19969 _res = elem;
19970 if (_res == NULL && PyErr_Occurred()) {
19971 p->error_indicator = 1;
19972 PyMem_Free(_children);
19973 D(p->level--);
19974 return NULL;
19975 }
19976 if (_n == _children_capacity) {
19977 _children_capacity *= 2;
19978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19979 if (!_new_children) {
19980 p->error_indicator = 1;
19981 PyErr_NoMemory();
19982 D(p->level--);
19983 return NULL;
19984 }
19985 _children = _new_children;
19986 }
19987 _children[_n++] = _res;
19988 _mark = p->mark;
19989 }
19990 p->mark = _mark;
19991 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019994 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019995 if (!_seq) {
19996 PyMem_Free(_children);
19997 p->error_indicator = 1;
19998 PyErr_NoMemory();
19999 D(p->level--);
20000 return NULL;
20001 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020002 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020003 PyMem_Free(_children);
20004 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
20005 D(p->level--);
20006 return _seq;
20007}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020008
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020009// _gather_9: expression _loop0_10
20010static asdl_seq *
20011_gather_9_rule(Parser *p)
20012{
20013 D(p->level++);
20014 if (p->error_indicator) {
20015 D(p->level--);
20016 return NULL;
20017 }
20018 asdl_seq * _res = NULL;
20019 int _mark = p->mark;
20020 { // expression _loop0_10
20021 if (p->error_indicator) {
20022 D(p->level--);
20023 return NULL;
20024 }
20025 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20026 expr_ty elem;
20027 asdl_seq * seq;
20028 if (
20029 (elem = expression_rule(p)) // expression
20030 &&
20031 (seq = _loop0_10_rule(p)) // _loop0_10
20032 )
20033 {
20034 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
20035 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20036 goto done;
20037 }
20038 p->mark = _mark;
20039 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
20040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
20041 }
20042 _res = NULL;
20043 done:
20044 D(p->level--);
20045 return _res;
20046}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020047
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020048// _loop1_11: statement
20049static asdl_seq *
20050_loop1_11_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 int _start_mark = p->mark;
20060 void **_children = PyMem_Malloc(sizeof(void *));
20061 if (!_children) {
20062 p->error_indicator = 1;
20063 PyErr_NoMemory();
20064 D(p->level--);
20065 return NULL;
20066 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020067 Py_ssize_t _children_capacity = 1;
20068 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020069 { // statement
20070 if (p->error_indicator) {
20071 D(p->level--);
20072 return NULL;
20073 }
20074 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010020075 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020076 while (
20077 (statement_var = statement_rule(p)) // statement
20078 )
20079 {
20080 _res = statement_var;
20081 if (_n == _children_capacity) {
20082 _children_capacity *= 2;
20083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20084 if (!_new_children) {
20085 p->error_indicator = 1;
20086 PyErr_NoMemory();
20087 D(p->level--);
20088 return NULL;
20089 }
20090 _children = _new_children;
20091 }
20092 _children[_n++] = _res;
20093 _mark = p->mark;
20094 }
20095 p->mark = _mark;
20096 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
20097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
20098 }
20099 if (_n == 0 || p->error_indicator) {
20100 PyMem_Free(_children);
20101 D(p->level--);
20102 return NULL;
20103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020104 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020105 if (!_seq) {
20106 PyMem_Free(_children);
20107 p->error_indicator = 1;
20108 PyErr_NoMemory();
20109 D(p->level--);
20110 return NULL;
20111 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020112 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020113 PyMem_Free(_children);
20114 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
20115 D(p->level--);
20116 return _seq;
20117}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020118
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020119// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020120static asdl_seq *
20121_loop0_13_rule(Parser *p)
20122{
20123 D(p->level++);
20124 if (p->error_indicator) {
20125 D(p->level--);
20126 return NULL;
20127 }
20128 void *_res = NULL;
20129 int _mark = p->mark;
20130 int _start_mark = p->mark;
20131 void **_children = PyMem_Malloc(sizeof(void *));
20132 if (!_children) {
20133 p->error_indicator = 1;
20134 PyErr_NoMemory();
20135 D(p->level--);
20136 return NULL;
20137 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020138 Py_ssize_t _children_capacity = 1;
20139 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020140 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020141 if (p->error_indicator) {
20142 D(p->level--);
20143 return NULL;
20144 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020145 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020146 Token * _literal;
20147 stmt_ty elem;
20148 while (
20149 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
20150 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020151 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020152 )
20153 {
20154 _res = elem;
20155 if (_res == NULL && PyErr_Occurred()) {
20156 p->error_indicator = 1;
20157 PyMem_Free(_children);
20158 D(p->level--);
20159 return NULL;
20160 }
20161 if (_n == _children_capacity) {
20162 _children_capacity *= 2;
20163 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20164 if (!_new_children) {
20165 p->error_indicator = 1;
20166 PyErr_NoMemory();
20167 D(p->level--);
20168 return NULL;
20169 }
20170 _children = _new_children;
20171 }
20172 _children[_n++] = _res;
20173 _mark = p->mark;
20174 }
20175 p->mark = _mark;
20176 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020178 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020179 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020180 if (!_seq) {
20181 PyMem_Free(_children);
20182 p->error_indicator = 1;
20183 PyErr_NoMemory();
20184 D(p->level--);
20185 return NULL;
20186 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020187 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020188 PyMem_Free(_children);
20189 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
20190 D(p->level--);
20191 return _seq;
20192}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020193
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020194// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020195static asdl_seq *
20196_gather_12_rule(Parser *p)
20197{
20198 D(p->level++);
20199 if (p->error_indicator) {
20200 D(p->level--);
20201 return NULL;
20202 }
20203 asdl_seq * _res = NULL;
20204 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020205 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020206 if (p->error_indicator) {
20207 D(p->level--);
20208 return NULL;
20209 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020210 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 +010020211 stmt_ty elem;
20212 asdl_seq * seq;
20213 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020214 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020215 &&
20216 (seq = _loop0_13_rule(p)) // _loop0_13
20217 )
20218 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020219 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 +010020220 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20221 goto done;
20222 }
20223 p->mark = _mark;
20224 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000020225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020226 }
20227 _res = NULL;
20228 done:
20229 D(p->level--);
20230 return _res;
20231}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020232
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020233// _tmp_14: 'import' | 'from'
20234static void *
20235_tmp_14_rule(Parser *p)
20236{
20237 D(p->level++);
20238 if (p->error_indicator) {
20239 D(p->level--);
20240 return NULL;
20241 }
20242 void * _res = NULL;
20243 int _mark = p->mark;
20244 { // 'import'
20245 if (p->error_indicator) {
20246 D(p->level--);
20247 return NULL;
20248 }
20249 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
20250 Token * _keyword;
20251 if (
20252 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
20253 )
20254 {
20255 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
20256 _res = _keyword;
20257 goto done;
20258 }
20259 p->mark = _mark;
20260 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
20261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
20262 }
20263 { // 'from'
20264 if (p->error_indicator) {
20265 D(p->level--);
20266 return NULL;
20267 }
20268 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
20269 Token * _keyword;
20270 if (
20271 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
20272 )
20273 {
20274 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
20275 _res = _keyword;
20276 goto done;
20277 }
20278 p->mark = _mark;
20279 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
20280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
20281 }
20282 _res = NULL;
20283 done:
20284 D(p->level--);
20285 return _res;
20286}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020287
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020288// _tmp_15: 'def' | '@' | ASYNC
20289static void *
20290_tmp_15_rule(Parser *p)
20291{
20292 D(p->level++);
20293 if (p->error_indicator) {
20294 D(p->level--);
20295 return NULL;
20296 }
20297 void * _res = NULL;
20298 int _mark = p->mark;
20299 { // 'def'
20300 if (p->error_indicator) {
20301 D(p->level--);
20302 return NULL;
20303 }
20304 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
20305 Token * _keyword;
20306 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080020307 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020308 )
20309 {
20310 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
20311 _res = _keyword;
20312 goto done;
20313 }
20314 p->mark = _mark;
20315 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
20317 }
20318 { // '@'
20319 if (p->error_indicator) {
20320 D(p->level--);
20321 return NULL;
20322 }
20323 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20324 Token * _literal;
20325 if (
20326 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20327 )
20328 {
20329 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20330 _res = _literal;
20331 goto done;
20332 }
20333 p->mark = _mark;
20334 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20336 }
20337 { // ASYNC
20338 if (p->error_indicator) {
20339 D(p->level--);
20340 return NULL;
20341 }
20342 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20343 Token * async_var;
20344 if (
20345 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20346 )
20347 {
20348 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20349 _res = async_var;
20350 goto done;
20351 }
20352 p->mark = _mark;
20353 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
20354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20355 }
20356 _res = NULL;
20357 done:
20358 D(p->level--);
20359 return _res;
20360}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020361
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020362// _tmp_16: 'class' | '@'
20363static void *
20364_tmp_16_rule(Parser *p)
20365{
20366 D(p->level++);
20367 if (p->error_indicator) {
20368 D(p->level--);
20369 return NULL;
20370 }
20371 void * _res = NULL;
20372 int _mark = p->mark;
20373 { // 'class'
20374 if (p->error_indicator) {
20375 D(p->level--);
20376 return NULL;
20377 }
20378 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
20379 Token * _keyword;
20380 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080020381 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020382 )
20383 {
20384 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
20385 _res = _keyword;
20386 goto done;
20387 }
20388 p->mark = _mark;
20389 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
20391 }
20392 { // '@'
20393 if (p->error_indicator) {
20394 D(p->level--);
20395 return NULL;
20396 }
20397 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
20398 Token * _literal;
20399 if (
20400 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
20401 )
20402 {
20403 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
20404 _res = _literal;
20405 goto done;
20406 }
20407 p->mark = _mark;
20408 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
20409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
20410 }
20411 _res = NULL;
20412 done:
20413 D(p->level--);
20414 return _res;
20415}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020416
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020417// _tmp_17: 'with' | ASYNC
20418static void *
20419_tmp_17_rule(Parser *p)
20420{
20421 D(p->level++);
20422 if (p->error_indicator) {
20423 D(p->level--);
20424 return NULL;
20425 }
20426 void * _res = NULL;
20427 int _mark = p->mark;
20428 { // 'with'
20429 if (p->error_indicator) {
20430 D(p->level--);
20431 return NULL;
20432 }
20433 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
20434 Token * _keyword;
20435 if (
20436 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
20437 )
20438 {
20439 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
20440 _res = _keyword;
20441 goto done;
20442 }
20443 p->mark = _mark;
20444 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
20446 }
20447 { // ASYNC
20448 if (p->error_indicator) {
20449 D(p->level--);
20450 return NULL;
20451 }
20452 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20453 Token * async_var;
20454 if (
20455 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20456 )
20457 {
20458 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20459 _res = async_var;
20460 goto done;
20461 }
20462 p->mark = _mark;
20463 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
20464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20465 }
20466 _res = NULL;
20467 done:
20468 D(p->level--);
20469 return _res;
20470}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020471
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020472// _tmp_18: 'for' | ASYNC
20473static void *
20474_tmp_18_rule(Parser *p)
20475{
20476 D(p->level++);
20477 if (p->error_indicator) {
20478 D(p->level--);
20479 return NULL;
20480 }
20481 void * _res = NULL;
20482 int _mark = p->mark;
20483 { // 'for'
20484 if (p->error_indicator) {
20485 D(p->level--);
20486 return NULL;
20487 }
20488 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
20489 Token * _keyword;
20490 if (
20491 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
20492 )
20493 {
20494 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
20495 _res = _keyword;
20496 goto done;
20497 }
20498 p->mark = _mark;
20499 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
20501 }
20502 { // ASYNC
20503 if (p->error_indicator) {
20504 D(p->level--);
20505 return NULL;
20506 }
20507 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20508 Token * async_var;
20509 if (
20510 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
20511 )
20512 {
20513 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
20514 _res = async_var;
20515 goto done;
20516 }
20517 p->mark = _mark;
20518 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
20519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
20520 }
20521 _res = NULL;
20522 done:
20523 D(p->level--);
20524 return _res;
20525}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020526
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020527// _tmp_19: '=' annotated_rhs
20528static void *
20529_tmp_19_rule(Parser *p)
20530{
20531 D(p->level++);
20532 if (p->error_indicator) {
20533 D(p->level--);
20534 return NULL;
20535 }
20536 void * _res = NULL;
20537 int _mark = p->mark;
20538 { // '=' annotated_rhs
20539 if (p->error_indicator) {
20540 D(p->level--);
20541 return NULL;
20542 }
20543 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20544 Token * _literal;
20545 expr_ty d;
20546 if (
20547 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20548 &&
20549 (d = annotated_rhs_rule(p)) // annotated_rhs
20550 )
20551 {
20552 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20553 _res = d;
20554 if (_res == NULL && PyErr_Occurred()) {
20555 p->error_indicator = 1;
20556 D(p->level--);
20557 return NULL;
20558 }
20559 goto done;
20560 }
20561 p->mark = _mark;
20562 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
20563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20564 }
20565 _res = NULL;
20566 done:
20567 D(p->level--);
20568 return _res;
20569}
20570
20571// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
20572static void *
20573_tmp_20_rule(Parser *p)
20574{
20575 D(p->level++);
20576 if (p->error_indicator) {
20577 D(p->level--);
20578 return NULL;
20579 }
20580 void * _res = NULL;
20581 int _mark = p->mark;
20582 { // '(' single_target ')'
20583 if (p->error_indicator) {
20584 D(p->level--);
20585 return NULL;
20586 }
20587 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20588 Token * _literal;
20589 Token * _literal_1;
20590 expr_ty b;
20591 if (
20592 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20593 &&
20594 (b = single_target_rule(p)) // single_target
20595 &&
20596 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20597 )
20598 {
20599 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
20600 _res = b;
20601 if (_res == NULL && PyErr_Occurred()) {
20602 p->error_indicator = 1;
20603 D(p->level--);
20604 return NULL;
20605 }
20606 goto done;
20607 }
20608 p->mark = _mark;
20609 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
20611 }
20612 { // single_subscript_attribute_target
20613 if (p->error_indicator) {
20614 D(p->level--);
20615 return NULL;
20616 }
20617 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20618 expr_ty single_subscript_attribute_target_var;
20619 if (
20620 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
20621 )
20622 {
20623 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
20624 _res = single_subscript_attribute_target_var;
20625 goto done;
20626 }
20627 p->mark = _mark;
20628 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
20629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
20630 }
20631 _res = NULL;
20632 done:
20633 D(p->level--);
20634 return _res;
20635}
20636
20637// _tmp_21: '=' annotated_rhs
20638static void *
20639_tmp_21_rule(Parser *p)
20640{
20641 D(p->level++);
20642 if (p->error_indicator) {
20643 D(p->level--);
20644 return NULL;
20645 }
20646 void * _res = NULL;
20647 int _mark = p->mark;
20648 { // '=' annotated_rhs
20649 if (p->error_indicator) {
20650 D(p->level--);
20651 return NULL;
20652 }
20653 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20654 Token * _literal;
20655 expr_ty d;
20656 if (
20657 (_literal = _PyPegen_expect_token(p, 22)) // token='='
20658 &&
20659 (d = annotated_rhs_rule(p)) // annotated_rhs
20660 )
20661 {
20662 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
20663 _res = d;
20664 if (_res == NULL && PyErr_Occurred()) {
20665 p->error_indicator = 1;
20666 D(p->level--);
20667 return NULL;
20668 }
20669 goto done;
20670 }
20671 p->mark = _mark;
20672 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
20673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
20674 }
20675 _res = NULL;
20676 done:
20677 D(p->level--);
20678 return _res;
20679}
20680
20681// _loop1_22: (star_targets '=')
20682static asdl_seq *
20683_loop1_22_rule(Parser *p)
20684{
20685 D(p->level++);
20686 if (p->error_indicator) {
20687 D(p->level--);
20688 return NULL;
20689 }
20690 void *_res = NULL;
20691 int _mark = p->mark;
20692 int _start_mark = p->mark;
20693 void **_children = PyMem_Malloc(sizeof(void *));
20694 if (!_children) {
20695 p->error_indicator = 1;
20696 PyErr_NoMemory();
20697 D(p->level--);
20698 return NULL;
20699 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020700 Py_ssize_t _children_capacity = 1;
20701 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020702 { // (star_targets '=')
20703 if (p->error_indicator) {
20704 D(p->level--);
20705 return NULL;
20706 }
20707 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindob2802482021-04-15 21:38:45 +010020708 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020709 while (
Pablo Galindob2802482021-04-15 21:38:45 +010020710 (_tmp_169_var = _tmp_169_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020711 )
20712 {
Pablo Galindob2802482021-04-15 21:38:45 +010020713 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020714 if (_n == _children_capacity) {
20715 _children_capacity *= 2;
20716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20717 if (!_new_children) {
20718 p->error_indicator = 1;
20719 PyErr_NoMemory();
20720 D(p->level--);
20721 return NULL;
20722 }
20723 _children = _new_children;
20724 }
20725 _children[_n++] = _res;
20726 _mark = p->mark;
20727 }
20728 p->mark = _mark;
20729 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
20730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
20731 }
20732 if (_n == 0 || p->error_indicator) {
20733 PyMem_Free(_children);
20734 D(p->level--);
20735 return NULL;
20736 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020737 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020738 if (!_seq) {
20739 PyMem_Free(_children);
20740 p->error_indicator = 1;
20741 PyErr_NoMemory();
20742 D(p->level--);
20743 return NULL;
20744 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020745 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020746 PyMem_Free(_children);
20747 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
20748 D(p->level--);
20749 return _seq;
20750}
20751
20752// _tmp_23: yield_expr | star_expressions
20753static void *
20754_tmp_23_rule(Parser *p)
20755{
20756 D(p->level++);
20757 if (p->error_indicator) {
20758 D(p->level--);
20759 return NULL;
20760 }
20761 void * _res = NULL;
20762 int _mark = p->mark;
20763 { // yield_expr
20764 if (p->error_indicator) {
20765 D(p->level--);
20766 return NULL;
20767 }
20768 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20769 expr_ty yield_expr_var;
20770 if (
20771 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20772 )
20773 {
20774 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20775 _res = yield_expr_var;
20776 goto done;
20777 }
20778 p->mark = _mark;
20779 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20781 }
20782 { // star_expressions
20783 if (p->error_indicator) {
20784 D(p->level--);
20785 return NULL;
20786 }
20787 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20788 expr_ty star_expressions_var;
20789 if (
20790 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20791 )
20792 {
20793 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20794 _res = star_expressions_var;
20795 goto done;
20796 }
20797 p->mark = _mark;
20798 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20800 }
20801 _res = NULL;
20802 done:
20803 D(p->level--);
20804 return _res;
20805}
20806
20807// _tmp_24: yield_expr | star_expressions
20808static void *
20809_tmp_24_rule(Parser *p)
20810{
20811 D(p->level++);
20812 if (p->error_indicator) {
20813 D(p->level--);
20814 return NULL;
20815 }
20816 void * _res = NULL;
20817 int _mark = p->mark;
20818 { // yield_expr
20819 if (p->error_indicator) {
20820 D(p->level--);
20821 return NULL;
20822 }
20823 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20824 expr_ty yield_expr_var;
20825 if (
20826 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20827 )
20828 {
20829 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20830 _res = yield_expr_var;
20831 goto done;
20832 }
20833 p->mark = _mark;
20834 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20836 }
20837 { // star_expressions
20838 if (p->error_indicator) {
20839 D(p->level--);
20840 return NULL;
20841 }
20842 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20843 expr_ty star_expressions_var;
20844 if (
20845 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20846 )
20847 {
20848 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20849 _res = star_expressions_var;
20850 goto done;
20851 }
20852 p->mark = _mark;
20853 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20855 }
20856 _res = NULL;
20857 done:
20858 D(p->level--);
20859 return _res;
20860}
20861
20862// _loop0_26: ',' NAME
20863static asdl_seq *
20864_loop0_26_rule(Parser *p)
20865{
20866 D(p->level++);
20867 if (p->error_indicator) {
20868 D(p->level--);
20869 return NULL;
20870 }
20871 void *_res = NULL;
20872 int _mark = p->mark;
20873 int _start_mark = p->mark;
20874 void **_children = PyMem_Malloc(sizeof(void *));
20875 if (!_children) {
20876 p->error_indicator = 1;
20877 PyErr_NoMemory();
20878 D(p->level--);
20879 return NULL;
20880 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020881 Py_ssize_t _children_capacity = 1;
20882 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020883 { // ',' NAME
20884 if (p->error_indicator) {
20885 D(p->level--);
20886 return NULL;
20887 }
20888 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20889 Token * _literal;
20890 expr_ty elem;
20891 while (
20892 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20893 &&
20894 (elem = _PyPegen_name_token(p)) // NAME
20895 )
20896 {
20897 _res = elem;
20898 if (_res == NULL && PyErr_Occurred()) {
20899 p->error_indicator = 1;
20900 PyMem_Free(_children);
20901 D(p->level--);
20902 return NULL;
20903 }
20904 if (_n == _children_capacity) {
20905 _children_capacity *= 2;
20906 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20907 if (!_new_children) {
20908 p->error_indicator = 1;
20909 PyErr_NoMemory();
20910 D(p->level--);
20911 return NULL;
20912 }
20913 _children = _new_children;
20914 }
20915 _children[_n++] = _res;
20916 _mark = p->mark;
20917 }
20918 p->mark = _mark;
20919 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
20920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20921 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020922 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020923 if (!_seq) {
20924 PyMem_Free(_children);
20925 p->error_indicator = 1;
20926 PyErr_NoMemory();
20927 D(p->level--);
20928 return NULL;
20929 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020930 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020931 PyMem_Free(_children);
20932 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20933 D(p->level--);
20934 return _seq;
20935}
20936
20937// _gather_25: NAME _loop0_26
20938static asdl_seq *
20939_gather_25_rule(Parser *p)
20940{
20941 D(p->level++);
20942 if (p->error_indicator) {
20943 D(p->level--);
20944 return NULL;
20945 }
20946 asdl_seq * _res = NULL;
20947 int _mark = p->mark;
20948 { // NAME _loop0_26
20949 if (p->error_indicator) {
20950 D(p->level--);
20951 return NULL;
20952 }
20953 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20954 expr_ty elem;
20955 asdl_seq * seq;
20956 if (
20957 (elem = _PyPegen_name_token(p)) // NAME
20958 &&
20959 (seq = _loop0_26_rule(p)) // _loop0_26
20960 )
20961 {
20962 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20963 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20964 goto done;
20965 }
20966 p->mark = _mark;
20967 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20969 }
20970 _res = NULL;
20971 done:
20972 D(p->level--);
20973 return _res;
20974}
20975
20976// _loop0_28: ',' NAME
20977static asdl_seq *
20978_loop0_28_rule(Parser *p)
20979{
20980 D(p->level++);
20981 if (p->error_indicator) {
20982 D(p->level--);
20983 return NULL;
20984 }
20985 void *_res = NULL;
20986 int _mark = p->mark;
20987 int _start_mark = p->mark;
20988 void **_children = PyMem_Malloc(sizeof(void *));
20989 if (!_children) {
20990 p->error_indicator = 1;
20991 PyErr_NoMemory();
20992 D(p->level--);
20993 return NULL;
20994 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020995 Py_ssize_t _children_capacity = 1;
20996 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020997 { // ',' NAME
20998 if (p->error_indicator) {
20999 D(p->level--);
21000 return NULL;
21001 }
21002 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
21003 Token * _literal;
21004 expr_ty elem;
21005 while (
21006 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21007 &&
21008 (elem = _PyPegen_name_token(p)) // NAME
21009 )
21010 {
21011 _res = elem;
21012 if (_res == NULL && PyErr_Occurred()) {
21013 p->error_indicator = 1;
21014 PyMem_Free(_children);
21015 D(p->level--);
21016 return NULL;
21017 }
21018 if (_n == _children_capacity) {
21019 _children_capacity *= 2;
21020 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21021 if (!_new_children) {
21022 p->error_indicator = 1;
21023 PyErr_NoMemory();
21024 D(p->level--);
21025 return NULL;
21026 }
21027 _children = _new_children;
21028 }
21029 _children[_n++] = _res;
21030 _mark = p->mark;
21031 }
21032 p->mark = _mark;
21033 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
21034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
21035 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021036 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021037 if (!_seq) {
21038 PyMem_Free(_children);
21039 p->error_indicator = 1;
21040 PyErr_NoMemory();
21041 D(p->level--);
21042 return NULL;
21043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021044 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021045 PyMem_Free(_children);
21046 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
21047 D(p->level--);
21048 return _seq;
21049}
21050
21051// _gather_27: NAME _loop0_28
21052static asdl_seq *
21053_gather_27_rule(Parser *p)
21054{
21055 D(p->level++);
21056 if (p->error_indicator) {
21057 D(p->level--);
21058 return NULL;
21059 }
21060 asdl_seq * _res = NULL;
21061 int _mark = p->mark;
21062 { // NAME _loop0_28
21063 if (p->error_indicator) {
21064 D(p->level--);
21065 return NULL;
21066 }
21067 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
21068 expr_ty elem;
21069 asdl_seq * seq;
21070 if (
21071 (elem = _PyPegen_name_token(p)) // NAME
21072 &&
21073 (seq = _loop0_28_rule(p)) // _loop0_28
21074 )
21075 {
21076 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
21077 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21078 goto done;
21079 }
21080 p->mark = _mark;
21081 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
21082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
21083 }
21084 _res = NULL;
21085 done:
21086 D(p->level--);
21087 return _res;
21088}
21089
21090// _tmp_29: ',' expression
21091static void *
21092_tmp_29_rule(Parser *p)
21093{
21094 D(p->level++);
21095 if (p->error_indicator) {
21096 D(p->level--);
21097 return NULL;
21098 }
21099 void * _res = NULL;
21100 int _mark = p->mark;
21101 { // ',' expression
21102 if (p->error_indicator) {
21103 D(p->level--);
21104 return NULL;
21105 }
21106 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21107 Token * _literal;
21108 expr_ty z;
21109 if (
21110 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21111 &&
21112 (z = expression_rule(p)) // expression
21113 )
21114 {
21115 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
21116 _res = z;
21117 if (_res == NULL && PyErr_Occurred()) {
21118 p->error_indicator = 1;
21119 D(p->level--);
21120 return NULL;
21121 }
21122 goto done;
21123 }
21124 p->mark = _mark;
21125 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
21126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21127 }
21128 _res = NULL;
21129 done:
21130 D(p->level--);
21131 return _res;
21132}
21133
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021134// _tmp_30: ';' | NEWLINE
21135static void *
21136_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137{
21138 D(p->level++);
21139 if (p->error_indicator) {
21140 D(p->level--);
21141 return NULL;
21142 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021143 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021144 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021145 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021146 if (p->error_indicator) {
21147 D(p->level--);
21148 return NULL;
21149 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021150 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
21151 Token * _literal;
21152 if (
21153 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021154 )
21155 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021156 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
21157 _res = _literal;
21158 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021159 }
21160 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021161 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
21162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021163 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021164 { // NEWLINE
21165 if (p->error_indicator) {
21166 D(p->level--);
21167 return NULL;
21168 }
21169 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21170 Token * newline_var;
21171 if (
21172 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21173 )
21174 {
21175 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21176 _res = newline_var;
21177 goto done;
21178 }
21179 p->mark = _mark;
21180 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
21181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021182 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021183 _res = NULL;
21184 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021185 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021186 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021187}
21188
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021189// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021190static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021191_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021192{
21193 D(p->level++);
21194 if (p->error_indicator) {
21195 D(p->level--);
21196 return NULL;
21197 }
21198 void *_res = NULL;
21199 int _mark = p->mark;
21200 int _start_mark = p->mark;
21201 void **_children = PyMem_Malloc(sizeof(void *));
21202 if (!_children) {
21203 p->error_indicator = 1;
21204 PyErr_NoMemory();
21205 D(p->level--);
21206 return NULL;
21207 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021208 Py_ssize_t _children_capacity = 1;
21209 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021210 { // ('.' | '...')
21211 if (p->error_indicator) {
21212 D(p->level--);
21213 return NULL;
21214 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021215 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob2802482021-04-15 21:38:45 +010021216 void *_tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021217 while (
Pablo Galindob2802482021-04-15 21:38:45 +010021218 (_tmp_170_var = _tmp_170_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021219 )
21220 {
Pablo Galindob2802482021-04-15 21:38:45 +010021221 _res = _tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021222 if (_n == _children_capacity) {
21223 _children_capacity *= 2;
21224 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21225 if (!_new_children) {
21226 p->error_indicator = 1;
21227 PyErr_NoMemory();
21228 D(p->level--);
21229 return NULL;
21230 }
21231 _children = _new_children;
21232 }
21233 _children[_n++] = _res;
21234 _mark = p->mark;
21235 }
21236 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021237 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
21238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
21239 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021240 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021241 if (!_seq) {
21242 PyMem_Free(_children);
21243 p->error_indicator = 1;
21244 PyErr_NoMemory();
21245 D(p->level--);
21246 return NULL;
21247 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021248 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021249 PyMem_Free(_children);
21250 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
21251 D(p->level--);
21252 return _seq;
21253}
21254
21255// _loop1_32: ('.' | '...')
21256static asdl_seq *
21257_loop1_32_rule(Parser *p)
21258{
21259 D(p->level++);
21260 if (p->error_indicator) {
21261 D(p->level--);
21262 return NULL;
21263 }
21264 void *_res = NULL;
21265 int _mark = p->mark;
21266 int _start_mark = p->mark;
21267 void **_children = PyMem_Malloc(sizeof(void *));
21268 if (!_children) {
21269 p->error_indicator = 1;
21270 PyErr_NoMemory();
21271 D(p->level--);
21272 return NULL;
21273 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021274 Py_ssize_t _children_capacity = 1;
21275 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021276 { // ('.' | '...')
21277 if (p->error_indicator) {
21278 D(p->level--);
21279 return NULL;
21280 }
21281 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob2802482021-04-15 21:38:45 +010021282 void *_tmp_171_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021283 while (
Pablo Galindob2802482021-04-15 21:38:45 +010021284 (_tmp_171_var = _tmp_171_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021285 )
21286 {
Pablo Galindob2802482021-04-15 21:38:45 +010021287 _res = _tmp_171_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021288 if (_n == _children_capacity) {
21289 _children_capacity *= 2;
21290 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21291 if (!_new_children) {
21292 p->error_indicator = 1;
21293 PyErr_NoMemory();
21294 D(p->level--);
21295 return NULL;
21296 }
21297 _children = _new_children;
21298 }
21299 _children[_n++] = _res;
21300 _mark = p->mark;
21301 }
21302 p->mark = _mark;
21303 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
21305 }
21306 if (_n == 0 || p->error_indicator) {
21307 PyMem_Free(_children);
21308 D(p->level--);
21309 return NULL;
21310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021311 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021312 if (!_seq) {
21313 PyMem_Free(_children);
21314 p->error_indicator = 1;
21315 PyErr_NoMemory();
21316 D(p->level--);
21317 return NULL;
21318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021319 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021320 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021321 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021322 D(p->level--);
21323 return _seq;
21324}
21325
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021326// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021327static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021328_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021329{
21330 D(p->level++);
21331 if (p->error_indicator) {
21332 D(p->level--);
21333 return NULL;
21334 }
21335 void *_res = NULL;
21336 int _mark = p->mark;
21337 int _start_mark = p->mark;
21338 void **_children = PyMem_Malloc(sizeof(void *));
21339 if (!_children) {
21340 p->error_indicator = 1;
21341 PyErr_NoMemory();
21342 D(p->level--);
21343 return NULL;
21344 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021345 Py_ssize_t _children_capacity = 1;
21346 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021347 { // ',' import_from_as_name
21348 if (p->error_indicator) {
21349 D(p->level--);
21350 return NULL;
21351 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021352 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 +010021353 Token * _literal;
21354 alias_ty elem;
21355 while (
21356 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21357 &&
21358 (elem = import_from_as_name_rule(p)) // import_from_as_name
21359 )
21360 {
21361 _res = elem;
21362 if (_res == NULL && PyErr_Occurred()) {
21363 p->error_indicator = 1;
21364 PyMem_Free(_children);
21365 D(p->level--);
21366 return NULL;
21367 }
21368 if (_n == _children_capacity) {
21369 _children_capacity *= 2;
21370 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21371 if (!_new_children) {
21372 p->error_indicator = 1;
21373 PyErr_NoMemory();
21374 D(p->level--);
21375 return NULL;
21376 }
21377 _children = _new_children;
21378 }
21379 _children[_n++] = _res;
21380 _mark = p->mark;
21381 }
21382 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021383 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
21385 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021386 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021387 if (!_seq) {
21388 PyMem_Free(_children);
21389 p->error_indicator = 1;
21390 PyErr_NoMemory();
21391 D(p->level--);
21392 return NULL;
21393 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021394 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021395 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021396 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021397 D(p->level--);
21398 return _seq;
21399}
21400
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021401// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021402static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021403_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021404{
21405 D(p->level++);
21406 if (p->error_indicator) {
21407 D(p->level--);
21408 return NULL;
21409 }
21410 asdl_seq * _res = NULL;
21411 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021412 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021413 if (p->error_indicator) {
21414 D(p->level--);
21415 return NULL;
21416 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021417 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 +010021418 alias_ty elem;
21419 asdl_seq * seq;
21420 if (
21421 (elem = import_from_as_name_rule(p)) // import_from_as_name
21422 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021423 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021424 )
21425 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021426 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 +010021427 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21428 goto done;
21429 }
21430 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021431 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
21432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021433 }
21434 _res = NULL;
21435 done:
21436 D(p->level--);
21437 return _res;
21438}
21439
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021440// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021441static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021442_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021443{
21444 D(p->level++);
21445 if (p->error_indicator) {
21446 D(p->level--);
21447 return NULL;
21448 }
21449 void * _res = NULL;
21450 int _mark = p->mark;
21451 { // 'as' NAME
21452 if (p->error_indicator) {
21453 D(p->level--);
21454 return NULL;
21455 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021456 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021457 Token * _keyword;
21458 expr_ty z;
21459 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021460 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021461 &&
21462 (z = _PyPegen_name_token(p)) // NAME
21463 )
21464 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021465 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 +010021466 _res = z;
21467 if (_res == NULL && PyErr_Occurred()) {
21468 p->error_indicator = 1;
21469 D(p->level--);
21470 return NULL;
21471 }
21472 goto done;
21473 }
21474 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021475 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21477 }
21478 _res = NULL;
21479 done:
21480 D(p->level--);
21481 return _res;
21482}
21483
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021484// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021485static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021486_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021487{
21488 D(p->level++);
21489 if (p->error_indicator) {
21490 D(p->level--);
21491 return NULL;
21492 }
21493 void *_res = NULL;
21494 int _mark = p->mark;
21495 int _start_mark = p->mark;
21496 void **_children = PyMem_Malloc(sizeof(void *));
21497 if (!_children) {
21498 p->error_indicator = 1;
21499 PyErr_NoMemory();
21500 D(p->level--);
21501 return NULL;
21502 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021503 Py_ssize_t _children_capacity = 1;
21504 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021505 { // ',' dotted_as_name
21506 if (p->error_indicator) {
21507 D(p->level--);
21508 return NULL;
21509 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021510 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 +010021511 Token * _literal;
21512 alias_ty elem;
21513 while (
21514 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21515 &&
21516 (elem = dotted_as_name_rule(p)) // dotted_as_name
21517 )
21518 {
21519 _res = elem;
21520 if (_res == NULL && PyErr_Occurred()) {
21521 p->error_indicator = 1;
21522 PyMem_Free(_children);
21523 D(p->level--);
21524 return NULL;
21525 }
21526 if (_n == _children_capacity) {
21527 _children_capacity *= 2;
21528 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21529 if (!_new_children) {
21530 p->error_indicator = 1;
21531 PyErr_NoMemory();
21532 D(p->level--);
21533 return NULL;
21534 }
21535 _children = _new_children;
21536 }
21537 _children[_n++] = _res;
21538 _mark = p->mark;
21539 }
21540 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021541 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
21543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021544 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021545 if (!_seq) {
21546 PyMem_Free(_children);
21547 p->error_indicator = 1;
21548 PyErr_NoMemory();
21549 D(p->level--);
21550 return NULL;
21551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021552 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021553 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021554 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021555 D(p->level--);
21556 return _seq;
21557}
21558
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021559// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021560static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021561_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021562{
21563 D(p->level++);
21564 if (p->error_indicator) {
21565 D(p->level--);
21566 return NULL;
21567 }
21568 asdl_seq * _res = NULL;
21569 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021570 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021571 if (p->error_indicator) {
21572 D(p->level--);
21573 return NULL;
21574 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021575 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 +010021576 alias_ty elem;
21577 asdl_seq * seq;
21578 if (
21579 (elem = dotted_as_name_rule(p)) // dotted_as_name
21580 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021581 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021582 )
21583 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021584 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 +010021585 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21586 goto done;
21587 }
21588 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021589 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
21590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021591 }
21592 _res = NULL;
21593 done:
21594 D(p->level--);
21595 return _res;
21596}
21597
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021598// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021599static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021600_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021601{
21602 D(p->level++);
21603 if (p->error_indicator) {
21604 D(p->level--);
21605 return NULL;
21606 }
21607 void * _res = NULL;
21608 int _mark = p->mark;
21609 { // 'as' NAME
21610 if (p->error_indicator) {
21611 D(p->level--);
21612 return NULL;
21613 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021614 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021615 Token * _keyword;
21616 expr_ty z;
21617 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021618 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021619 &&
21620 (z = _PyPegen_name_token(p)) // NAME
21621 )
21622 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021623 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 +010021624 _res = z;
21625 if (_res == NULL && PyErr_Occurred()) {
21626 p->error_indicator = 1;
21627 D(p->level--);
21628 return NULL;
21629 }
21630 goto done;
21631 }
21632 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021633 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21635 }
21636 _res = NULL;
21637 done:
21638 D(p->level--);
21639 return _res;
21640}
21641
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021642// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021643static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021644_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021645{
21646 D(p->level++);
21647 if (p->error_indicator) {
21648 D(p->level--);
21649 return NULL;
21650 }
21651 void *_res = NULL;
21652 int _mark = p->mark;
21653 int _start_mark = p->mark;
21654 void **_children = PyMem_Malloc(sizeof(void *));
21655 if (!_children) {
21656 p->error_indicator = 1;
21657 PyErr_NoMemory();
21658 D(p->level--);
21659 return NULL;
21660 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021661 Py_ssize_t _children_capacity = 1;
21662 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021663 { // ',' with_item
21664 if (p->error_indicator) {
21665 D(p->level--);
21666 return NULL;
21667 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021668 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021669 Token * _literal;
21670 withitem_ty elem;
21671 while (
21672 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21673 &&
21674 (elem = with_item_rule(p)) // with_item
21675 )
21676 {
21677 _res = elem;
21678 if (_res == NULL && PyErr_Occurred()) {
21679 p->error_indicator = 1;
21680 PyMem_Free(_children);
21681 D(p->level--);
21682 return NULL;
21683 }
21684 if (_n == _children_capacity) {
21685 _children_capacity *= 2;
21686 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21687 if (!_new_children) {
21688 p->error_indicator = 1;
21689 PyErr_NoMemory();
21690 D(p->level--);
21691 return NULL;
21692 }
21693 _children = _new_children;
21694 }
21695 _children[_n++] = _res;
21696 _mark = p->mark;
21697 }
21698 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021699 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021702 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021703 if (!_seq) {
21704 PyMem_Free(_children);
21705 p->error_indicator = 1;
21706 PyErr_NoMemory();
21707 D(p->level--);
21708 return NULL;
21709 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021710 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021711 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021712 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021713 D(p->level--);
21714 return _seq;
21715}
21716
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021717// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021718static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021719_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021720{
21721 D(p->level++);
21722 if (p->error_indicator) {
21723 D(p->level--);
21724 return NULL;
21725 }
21726 asdl_seq * _res = NULL;
21727 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021728 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021729 if (p->error_indicator) {
21730 D(p->level--);
21731 return NULL;
21732 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021733 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 +010021734 withitem_ty elem;
21735 asdl_seq * seq;
21736 if (
21737 (elem = with_item_rule(p)) // with_item
21738 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021739 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021740 )
21741 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021742 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 +010021743 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21744 goto done;
21745 }
21746 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021747 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
21748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021749 }
21750 _res = NULL;
21751 done:
21752 D(p->level--);
21753 return _res;
21754}
21755
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021756// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021757static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021758_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021759{
21760 D(p->level++);
21761 if (p->error_indicator) {
21762 D(p->level--);
21763 return NULL;
21764 }
21765 void *_res = NULL;
21766 int _mark = p->mark;
21767 int _start_mark = p->mark;
21768 void **_children = PyMem_Malloc(sizeof(void *));
21769 if (!_children) {
21770 p->error_indicator = 1;
21771 PyErr_NoMemory();
21772 D(p->level--);
21773 return NULL;
21774 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021775 Py_ssize_t _children_capacity = 1;
21776 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021777 { // ',' with_item
21778 if (p->error_indicator) {
21779 D(p->level--);
21780 return NULL;
21781 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021782 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021783 Token * _literal;
21784 withitem_ty elem;
21785 while (
21786 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21787 &&
21788 (elem = with_item_rule(p)) // with_item
21789 )
21790 {
21791 _res = elem;
21792 if (_res == NULL && PyErr_Occurred()) {
21793 p->error_indicator = 1;
21794 PyMem_Free(_children);
21795 D(p->level--);
21796 return NULL;
21797 }
21798 if (_n == _children_capacity) {
21799 _children_capacity *= 2;
21800 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21801 if (!_new_children) {
21802 p->error_indicator = 1;
21803 PyErr_NoMemory();
21804 D(p->level--);
21805 return NULL;
21806 }
21807 _children = _new_children;
21808 }
21809 _children[_n++] = _res;
21810 _mark = p->mark;
21811 }
21812 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021813 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21815 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021816 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021817 if (!_seq) {
21818 PyMem_Free(_children);
21819 p->error_indicator = 1;
21820 PyErr_NoMemory();
21821 D(p->level--);
21822 return NULL;
21823 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021824 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021825 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021826 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021827 D(p->level--);
21828 return _seq;
21829}
21830
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021831// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021832static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021833_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021834{
21835 D(p->level++);
21836 if (p->error_indicator) {
21837 D(p->level--);
21838 return NULL;
21839 }
21840 asdl_seq * _res = NULL;
21841 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021842 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021843 if (p->error_indicator) {
21844 D(p->level--);
21845 return NULL;
21846 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021847 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 +010021848 withitem_ty elem;
21849 asdl_seq * seq;
21850 if (
21851 (elem = with_item_rule(p)) // with_item
21852 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021853 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021854 )
21855 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021856 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 +010021857 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21858 goto done;
21859 }
21860 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021861 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
21862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021863 }
21864 _res = NULL;
21865 done:
21866 D(p->level--);
21867 return _res;
21868}
21869
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021870// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021871static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021872_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021873{
21874 D(p->level++);
21875 if (p->error_indicator) {
21876 D(p->level--);
21877 return NULL;
21878 }
21879 void *_res = NULL;
21880 int _mark = p->mark;
21881 int _start_mark = p->mark;
21882 void **_children = PyMem_Malloc(sizeof(void *));
21883 if (!_children) {
21884 p->error_indicator = 1;
21885 PyErr_NoMemory();
21886 D(p->level--);
21887 return NULL;
21888 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021889 Py_ssize_t _children_capacity = 1;
21890 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021891 { // ',' with_item
21892 if (p->error_indicator) {
21893 D(p->level--);
21894 return NULL;
21895 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021896 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021897 Token * _literal;
21898 withitem_ty elem;
21899 while (
21900 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21901 &&
21902 (elem = with_item_rule(p)) // with_item
21903 )
21904 {
21905 _res = elem;
21906 if (_res == NULL && PyErr_Occurred()) {
21907 p->error_indicator = 1;
21908 PyMem_Free(_children);
21909 D(p->level--);
21910 return NULL;
21911 }
21912 if (_n == _children_capacity) {
21913 _children_capacity *= 2;
21914 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21915 if (!_new_children) {
21916 p->error_indicator = 1;
21917 PyErr_NoMemory();
21918 D(p->level--);
21919 return NULL;
21920 }
21921 _children = _new_children;
21922 }
21923 _children[_n++] = _res;
21924 _mark = p->mark;
21925 }
21926 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021927 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21929 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021930 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021931 if (!_seq) {
21932 PyMem_Free(_children);
21933 p->error_indicator = 1;
21934 PyErr_NoMemory();
21935 D(p->level--);
21936 return NULL;
21937 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021938 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021939 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021940 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021941 D(p->level--);
21942 return _seq;
21943}
21944
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021945// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021946static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021947_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021948{
21949 D(p->level++);
21950 if (p->error_indicator) {
21951 D(p->level--);
21952 return NULL;
21953 }
21954 asdl_seq * _res = NULL;
21955 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021956 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021957 if (p->error_indicator) {
21958 D(p->level--);
21959 return NULL;
21960 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021961 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 +010021962 withitem_ty elem;
21963 asdl_seq * seq;
21964 if (
21965 (elem = with_item_rule(p)) // with_item
21966 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021967 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021968 )
21969 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021970 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 +010021971 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21972 goto done;
21973 }
21974 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021975 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021977 }
21978 _res = NULL;
21979 done:
21980 D(p->level--);
21981 return _res;
21982}
21983
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021984// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021985static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021986_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021987{
21988 D(p->level++);
21989 if (p->error_indicator) {
21990 D(p->level--);
21991 return NULL;
21992 }
21993 void *_res = NULL;
21994 int _mark = p->mark;
21995 int _start_mark = p->mark;
21996 void **_children = PyMem_Malloc(sizeof(void *));
21997 if (!_children) {
21998 p->error_indicator = 1;
21999 PyErr_NoMemory();
22000 D(p->level--);
22001 return NULL;
22002 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022003 Py_ssize_t _children_capacity = 1;
22004 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022005 { // ',' with_item
22006 if (p->error_indicator) {
22007 D(p->level--);
22008 return NULL;
22009 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022010 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022011 Token * _literal;
22012 withitem_ty elem;
22013 while (
22014 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22015 &&
22016 (elem = with_item_rule(p)) // with_item
22017 )
22018 {
22019 _res = elem;
22020 if (_res == NULL && PyErr_Occurred()) {
22021 p->error_indicator = 1;
22022 PyMem_Free(_children);
22023 D(p->level--);
22024 return NULL;
22025 }
22026 if (_n == _children_capacity) {
22027 _children_capacity *= 2;
22028 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22029 if (!_new_children) {
22030 p->error_indicator = 1;
22031 PyErr_NoMemory();
22032 D(p->level--);
22033 return NULL;
22034 }
22035 _children = _new_children;
22036 }
22037 _children[_n++] = _res;
22038 _mark = p->mark;
22039 }
22040 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022041 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
22043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022045 if (!_seq) {
22046 PyMem_Free(_children);
22047 p->error_indicator = 1;
22048 PyErr_NoMemory();
22049 D(p->level--);
22050 return NULL;
22051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022053 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022054 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022055 D(p->level--);
22056 return _seq;
22057}
22058
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022059// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022060static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022061_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022062{
22063 D(p->level++);
22064 if (p->error_indicator) {
22065 D(p->level--);
22066 return NULL;
22067 }
22068 asdl_seq * _res = NULL;
22069 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022070 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022071 if (p->error_indicator) {
22072 D(p->level--);
22073 return NULL;
22074 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022075 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 +010022076 withitem_ty elem;
22077 asdl_seq * seq;
22078 if (
22079 (elem = with_item_rule(p)) // with_item
22080 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022081 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022082 )
22083 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022084 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 +010022085 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22086 goto done;
22087 }
22088 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022089 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
22090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022091 }
22092 _res = NULL;
22093 done:
22094 D(p->level--);
22095 return _res;
22096}
22097
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022098// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022099static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022100_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022101{
22102 D(p->level++);
22103 if (p->error_indicator) {
22104 D(p->level--);
22105 return NULL;
22106 }
22107 void * _res = NULL;
22108 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022109 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022110 if (p->error_indicator) {
22111 D(p->level--);
22112 return NULL;
22113 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022114 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
22115 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022116 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022117 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022118 )
22119 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022120 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
22121 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022122 goto done;
22123 }
22124 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022125 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
22127 }
22128 { // ')'
22129 if (p->error_indicator) {
22130 D(p->level--);
22131 return NULL;
22132 }
22133 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
22134 Token * _literal;
22135 if (
22136 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
22137 )
22138 {
22139 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
22140 _res = _literal;
22141 goto done;
22142 }
22143 p->mark = _mark;
22144 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
22146 }
22147 { // ':'
22148 if (p->error_indicator) {
22149 D(p->level--);
22150 return NULL;
22151 }
22152 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
22153 Token * _literal;
22154 if (
22155 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22156 )
22157 {
22158 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
22159 _res = _literal;
22160 goto done;
22161 }
22162 p->mark = _mark;
22163 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
22164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022165 }
22166 _res = NULL;
22167 done:
22168 D(p->level--);
22169 return _res;
22170}
22171
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022172// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022173static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022174_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022175{
22176 D(p->level++);
22177 if (p->error_indicator) {
22178 D(p->level--);
22179 return NULL;
22180 }
22181 void *_res = NULL;
22182 int _mark = p->mark;
22183 int _start_mark = p->mark;
22184 void **_children = PyMem_Malloc(sizeof(void *));
22185 if (!_children) {
22186 p->error_indicator = 1;
22187 PyErr_NoMemory();
22188 D(p->level--);
22189 return NULL;
22190 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022191 Py_ssize_t _children_capacity = 1;
22192 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022193 { // except_block
22194 if (p->error_indicator) {
22195 D(p->level--);
22196 return NULL;
22197 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022198 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022199 excepthandler_ty except_block_var;
22200 while (
22201 (except_block_var = except_block_rule(p)) // except_block
22202 )
22203 {
22204 _res = except_block_var;
22205 if (_n == _children_capacity) {
22206 _children_capacity *= 2;
22207 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22208 if (!_new_children) {
22209 p->error_indicator = 1;
22210 PyErr_NoMemory();
22211 D(p->level--);
22212 return NULL;
22213 }
22214 _children = _new_children;
22215 }
22216 _children[_n++] = _res;
22217 _mark = p->mark;
22218 }
22219 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022220 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
22222 }
22223 if (_n == 0 || p->error_indicator) {
22224 PyMem_Free(_children);
22225 D(p->level--);
22226 return NULL;
22227 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022228 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022229 if (!_seq) {
22230 PyMem_Free(_children);
22231 p->error_indicator = 1;
22232 PyErr_NoMemory();
22233 D(p->level--);
22234 return NULL;
22235 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022236 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022237 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022238 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022239 D(p->level--);
22240 return _seq;
22241}
22242
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022243// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022244static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022245_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022246{
22247 D(p->level++);
22248 if (p->error_indicator) {
22249 D(p->level--);
22250 return NULL;
22251 }
22252 void * _res = NULL;
22253 int _mark = p->mark;
22254 { // 'as' NAME
22255 if (p->error_indicator) {
22256 D(p->level--);
22257 return NULL;
22258 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022259 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022260 Token * _keyword;
22261 expr_ty z;
22262 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022263 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022264 &&
22265 (z = _PyPegen_name_token(p)) // NAME
22266 )
22267 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022268 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 +010022269 _res = z;
22270 if (_res == NULL && PyErr_Occurred()) {
22271 p->error_indicator = 1;
22272 D(p->level--);
22273 return NULL;
22274 }
22275 goto done;
22276 }
22277 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022278 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22280 }
22281 _res = NULL;
22282 done:
22283 D(p->level--);
22284 return _res;
22285}
22286
Brandt Bucher145bf262021-02-26 14:51:55 -080022287// _loop1_50: case_block
22288static asdl_seq *
22289_loop1_50_rule(Parser *p)
22290{
22291 D(p->level++);
22292 if (p->error_indicator) {
22293 D(p->level--);
22294 return NULL;
22295 }
22296 void *_res = NULL;
22297 int _mark = p->mark;
22298 int _start_mark = p->mark;
22299 void **_children = PyMem_Malloc(sizeof(void *));
22300 if (!_children) {
22301 p->error_indicator = 1;
22302 PyErr_NoMemory();
22303 D(p->level--);
22304 return NULL;
22305 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022306 Py_ssize_t _children_capacity = 1;
22307 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022308 { // case_block
22309 if (p->error_indicator) {
22310 D(p->level--);
22311 return NULL;
22312 }
22313 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
22314 match_case_ty case_block_var;
22315 while (
22316 (case_block_var = case_block_rule(p)) // case_block
22317 )
22318 {
22319 _res = case_block_var;
22320 if (_n == _children_capacity) {
22321 _children_capacity *= 2;
22322 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22323 if (!_new_children) {
22324 p->error_indicator = 1;
22325 PyErr_NoMemory();
22326 D(p->level--);
22327 return NULL;
22328 }
22329 _children = _new_children;
22330 }
22331 _children[_n++] = _res;
22332 _mark = p->mark;
22333 }
22334 p->mark = _mark;
22335 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
22336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
22337 }
22338 if (_n == 0 || p->error_indicator) {
22339 PyMem_Free(_children);
22340 D(p->level--);
22341 return NULL;
22342 }
22343 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22344 if (!_seq) {
22345 PyMem_Free(_children);
22346 p->error_indicator = 1;
22347 PyErr_NoMemory();
22348 D(p->level--);
22349 return NULL;
22350 }
22351 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22352 PyMem_Free(_children);
22353 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
22354 D(p->level--);
22355 return _seq;
22356}
22357
22358// _loop0_52: '|' closed_pattern
22359static asdl_seq *
22360_loop0_52_rule(Parser *p)
22361{
22362 D(p->level++);
22363 if (p->error_indicator) {
22364 D(p->level--);
22365 return NULL;
22366 }
22367 void *_res = NULL;
22368 int _mark = p->mark;
22369 int _start_mark = p->mark;
22370 void **_children = PyMem_Malloc(sizeof(void *));
22371 if (!_children) {
22372 p->error_indicator = 1;
22373 PyErr_NoMemory();
22374 D(p->level--);
22375 return NULL;
22376 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022377 Py_ssize_t _children_capacity = 1;
22378 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022379 { // '|' closed_pattern
22380 if (p->error_indicator) {
22381 D(p->level--);
22382 return NULL;
22383 }
22384 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
22385 Token * _literal;
22386 expr_ty elem;
22387 while (
22388 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
22389 &&
22390 (elem = closed_pattern_rule(p)) // closed_pattern
22391 )
22392 {
22393 _res = elem;
22394 if (_res == NULL && PyErr_Occurred()) {
22395 p->error_indicator = 1;
22396 PyMem_Free(_children);
22397 D(p->level--);
22398 return NULL;
22399 }
22400 if (_n == _children_capacity) {
22401 _children_capacity *= 2;
22402 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22403 if (!_new_children) {
22404 p->error_indicator = 1;
22405 PyErr_NoMemory();
22406 D(p->level--);
22407 return NULL;
22408 }
22409 _children = _new_children;
22410 }
22411 _children[_n++] = _res;
22412 _mark = p->mark;
22413 }
22414 p->mark = _mark;
22415 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
22416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
22417 }
22418 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22419 if (!_seq) {
22420 PyMem_Free(_children);
22421 p->error_indicator = 1;
22422 PyErr_NoMemory();
22423 D(p->level--);
22424 return NULL;
22425 }
22426 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22427 PyMem_Free(_children);
22428 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
22429 D(p->level--);
22430 return _seq;
22431}
22432
22433// _gather_51: closed_pattern _loop0_52
22434static asdl_seq *
22435_gather_51_rule(Parser *p)
22436{
22437 D(p->level++);
22438 if (p->error_indicator) {
22439 D(p->level--);
22440 return NULL;
22441 }
22442 asdl_seq * _res = NULL;
22443 int _mark = p->mark;
22444 { // closed_pattern _loop0_52
22445 if (p->error_indicator) {
22446 D(p->level--);
22447 return NULL;
22448 }
22449 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22450 expr_ty elem;
22451 asdl_seq * seq;
22452 if (
22453 (elem = closed_pattern_rule(p)) // closed_pattern
22454 &&
22455 (seq = _loop0_52_rule(p)) // _loop0_52
22456 )
22457 {
22458 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
22459 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22460 goto done;
22461 }
22462 p->mark = _mark;
22463 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
22464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
22465 }
22466 _res = NULL;
22467 done:
22468 D(p->level--);
22469 return _res;
22470}
22471
22472// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022473static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022474_tmp_53_rule(Parser *p)
22475{
22476 D(p->level++);
22477 if (p->error_indicator) {
22478 D(p->level--);
22479 return NULL;
22480 }
22481 void * _res = NULL;
22482 int _mark = p->mark;
22483 { // '+'
22484 if (p->error_indicator) {
22485 D(p->level--);
22486 return NULL;
22487 }
22488 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
22489 Token * _literal;
22490 if (
22491 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
22492 )
22493 {
22494 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
22495 _res = _literal;
22496 goto done;
22497 }
22498 p->mark = _mark;
22499 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
22501 }
22502 { // '-'
22503 if (p->error_indicator) {
22504 D(p->level--);
22505 return NULL;
22506 }
22507 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
22508 Token * _literal;
22509 if (
22510 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
22511 )
22512 {
22513 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
22514 _res = _literal;
22515 goto done;
22516 }
22517 p->mark = _mark;
22518 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
22519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
22520 }
22521 _res = NULL;
22522 done:
22523 D(p->level--);
22524 return _res;
22525}
22526
22527// _tmp_54: '.' | '(' | '='
22528static void *
22529_tmp_54_rule(Parser *p)
22530{
22531 D(p->level++);
22532 if (p->error_indicator) {
22533 D(p->level--);
22534 return NULL;
22535 }
22536 void * _res = NULL;
22537 int _mark = p->mark;
22538 { // '.'
22539 if (p->error_indicator) {
22540 D(p->level--);
22541 return NULL;
22542 }
22543 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22544 Token * _literal;
22545 if (
22546 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22547 )
22548 {
22549 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22550 _res = _literal;
22551 goto done;
22552 }
22553 p->mark = _mark;
22554 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22556 }
22557 { // '('
22558 if (p->error_indicator) {
22559 D(p->level--);
22560 return NULL;
22561 }
22562 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22563 Token * _literal;
22564 if (
22565 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22566 )
22567 {
22568 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22569 _res = _literal;
22570 goto done;
22571 }
22572 p->mark = _mark;
22573 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22575 }
22576 { // '='
22577 if (p->error_indicator) {
22578 D(p->level--);
22579 return NULL;
22580 }
22581 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22582 Token * _literal;
22583 if (
22584 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22585 )
22586 {
22587 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22588 _res = _literal;
22589 goto done;
22590 }
22591 p->mark = _mark;
22592 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
22593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22594 }
22595 _res = NULL;
22596 done:
22597 D(p->level--);
22598 return _res;
22599}
22600
22601// _tmp_55: '.' | '(' | '='
22602static void *
22603_tmp_55_rule(Parser *p)
22604{
22605 D(p->level++);
22606 if (p->error_indicator) {
22607 D(p->level--);
22608 return NULL;
22609 }
22610 void * _res = NULL;
22611 int _mark = p->mark;
22612 { // '.'
22613 if (p->error_indicator) {
22614 D(p->level--);
22615 return NULL;
22616 }
22617 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
22618 Token * _literal;
22619 if (
22620 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
22621 )
22622 {
22623 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
22624 _res = _literal;
22625 goto done;
22626 }
22627 p->mark = _mark;
22628 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
22630 }
22631 { // '('
22632 if (p->error_indicator) {
22633 D(p->level--);
22634 return NULL;
22635 }
22636 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
22637 Token * _literal;
22638 if (
22639 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22640 )
22641 {
22642 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
22643 _res = _literal;
22644 goto done;
22645 }
22646 p->mark = _mark;
22647 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
22649 }
22650 { // '='
22651 if (p->error_indicator) {
22652 D(p->level--);
22653 return NULL;
22654 }
22655 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
22656 Token * _literal;
22657 if (
22658 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22659 )
22660 {
22661 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
22662 _res = _literal;
22663 goto done;
22664 }
22665 p->mark = _mark;
22666 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
22667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
22668 }
22669 _res = NULL;
22670 done:
22671 D(p->level--);
22672 return _res;
22673}
22674
22675// _loop0_57: ',' maybe_star_pattern
22676static asdl_seq *
22677_loop0_57_rule(Parser *p)
22678{
22679 D(p->level++);
22680 if (p->error_indicator) {
22681 D(p->level--);
22682 return NULL;
22683 }
22684 void *_res = NULL;
22685 int _mark = p->mark;
22686 int _start_mark = p->mark;
22687 void **_children = PyMem_Malloc(sizeof(void *));
22688 if (!_children) {
22689 p->error_indicator = 1;
22690 PyErr_NoMemory();
22691 D(p->level--);
22692 return NULL;
22693 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022694 Py_ssize_t _children_capacity = 1;
22695 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022696 { // ',' maybe_star_pattern
22697 if (p->error_indicator) {
22698 D(p->level--);
22699 return NULL;
22700 }
22701 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
22702 Token * _literal;
22703 expr_ty elem;
22704 while (
22705 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22706 &&
22707 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22708 )
22709 {
22710 _res = elem;
22711 if (_res == NULL && PyErr_Occurred()) {
22712 p->error_indicator = 1;
22713 PyMem_Free(_children);
22714 D(p->level--);
22715 return NULL;
22716 }
22717 if (_n == _children_capacity) {
22718 _children_capacity *= 2;
22719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22720 if (!_new_children) {
22721 p->error_indicator = 1;
22722 PyErr_NoMemory();
22723 D(p->level--);
22724 return NULL;
22725 }
22726 _children = _new_children;
22727 }
22728 _children[_n++] = _res;
22729 _mark = p->mark;
22730 }
22731 p->mark = _mark;
22732 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
22733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
22734 }
22735 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22736 if (!_seq) {
22737 PyMem_Free(_children);
22738 p->error_indicator = 1;
22739 PyErr_NoMemory();
22740 D(p->level--);
22741 return NULL;
22742 }
22743 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22744 PyMem_Free(_children);
22745 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
22746 D(p->level--);
22747 return _seq;
22748}
22749
22750// _gather_56: maybe_star_pattern _loop0_57
22751static asdl_seq *
22752_gather_56_rule(Parser *p)
22753{
22754 D(p->level++);
22755 if (p->error_indicator) {
22756 D(p->level--);
22757 return NULL;
22758 }
22759 asdl_seq * _res = NULL;
22760 int _mark = p->mark;
22761 { // maybe_star_pattern _loop0_57
22762 if (p->error_indicator) {
22763 D(p->level--);
22764 return NULL;
22765 }
22766 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22767 expr_ty elem;
22768 asdl_seq * seq;
22769 if (
22770 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22771 &&
22772 (seq = _loop0_57_rule(p)) // _loop0_57
22773 )
22774 {
22775 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22776 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22777 goto done;
22778 }
22779 p->mark = _mark;
22780 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
22781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
22782 }
22783 _res = NULL;
22784 done:
22785 D(p->level--);
22786 return _res;
22787}
22788
22789// _tmp_58: capture_pattern | wildcard_pattern
22790static void *
22791_tmp_58_rule(Parser *p)
22792{
22793 D(p->level++);
22794 if (p->error_indicator) {
22795 D(p->level--);
22796 return NULL;
22797 }
22798 void * _res = NULL;
22799 int _mark = p->mark;
22800 { // capture_pattern
22801 if (p->error_indicator) {
22802 D(p->level--);
22803 return NULL;
22804 }
22805 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22806 expr_ty capture_pattern_var;
22807 if (
22808 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
22809 )
22810 {
22811 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22812 _res = capture_pattern_var;
22813 goto done;
22814 }
22815 p->mark = _mark;
22816 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
22818 }
22819 { // wildcard_pattern
22820 if (p->error_indicator) {
22821 D(p->level--);
22822 return NULL;
22823 }
22824 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22825 expr_ty wildcard_pattern_var;
22826 if (
22827 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
22828 )
22829 {
22830 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22831 _res = wildcard_pattern_var;
22832 goto done;
22833 }
22834 p->mark = _mark;
22835 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
22837 }
22838 _res = NULL;
22839 done:
22840 D(p->level--);
22841 return _res;
22842}
22843
22844// _loop0_60: ',' key_value_pattern
22845static asdl_seq *
22846_loop0_60_rule(Parser *p)
22847{
22848 D(p->level++);
22849 if (p->error_indicator) {
22850 D(p->level--);
22851 return NULL;
22852 }
22853 void *_res = NULL;
22854 int _mark = p->mark;
22855 int _start_mark = p->mark;
22856 void **_children = PyMem_Malloc(sizeof(void *));
22857 if (!_children) {
22858 p->error_indicator = 1;
22859 PyErr_NoMemory();
22860 D(p->level--);
22861 return NULL;
22862 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022863 Py_ssize_t _children_capacity = 1;
22864 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022865 { // ',' key_value_pattern
22866 if (p->error_indicator) {
22867 D(p->level--);
22868 return NULL;
22869 }
22870 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
22871 Token * _literal;
22872 KeyValuePair* elem;
22873 while (
22874 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22875 &&
22876 (elem = key_value_pattern_rule(p)) // key_value_pattern
22877 )
22878 {
22879 _res = elem;
22880 if (_res == NULL && PyErr_Occurred()) {
22881 p->error_indicator = 1;
22882 PyMem_Free(_children);
22883 D(p->level--);
22884 return NULL;
22885 }
22886 if (_n == _children_capacity) {
22887 _children_capacity *= 2;
22888 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22889 if (!_new_children) {
22890 p->error_indicator = 1;
22891 PyErr_NoMemory();
22892 D(p->level--);
22893 return NULL;
22894 }
22895 _children = _new_children;
22896 }
22897 _children[_n++] = _res;
22898 _mark = p->mark;
22899 }
22900 p->mark = _mark;
22901 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
22902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
22903 }
22904 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22905 if (!_seq) {
22906 PyMem_Free(_children);
22907 p->error_indicator = 1;
22908 PyErr_NoMemory();
22909 D(p->level--);
22910 return NULL;
22911 }
22912 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22913 PyMem_Free(_children);
22914 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
22915 D(p->level--);
22916 return _seq;
22917}
22918
22919// _gather_59: key_value_pattern _loop0_60
22920static asdl_seq *
22921_gather_59_rule(Parser *p)
22922{
22923 D(p->level++);
22924 if (p->error_indicator) {
22925 D(p->level--);
22926 return NULL;
22927 }
22928 asdl_seq * _res = NULL;
22929 int _mark = p->mark;
22930 { // key_value_pattern _loop0_60
22931 if (p->error_indicator) {
22932 D(p->level--);
22933 return NULL;
22934 }
22935 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22936 KeyValuePair* elem;
22937 asdl_seq * seq;
22938 if (
22939 (elem = key_value_pattern_rule(p)) // key_value_pattern
22940 &&
22941 (seq = _loop0_60_rule(p)) // _loop0_60
22942 )
22943 {
22944 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22945 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22946 goto done;
22947 }
22948 p->mark = _mark;
22949 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22951 }
22952 _res = NULL;
22953 done:
22954 D(p->level--);
22955 return _res;
22956}
22957
22958// _tmp_61: literal_pattern | value_pattern
22959static void *
22960_tmp_61_rule(Parser *p)
22961{
22962 D(p->level++);
22963 if (p->error_indicator) {
22964 D(p->level--);
22965 return NULL;
22966 }
22967 void * _res = NULL;
22968 int _mark = p->mark;
22969 { // literal_pattern
22970 if (p->error_indicator) {
22971 D(p->level--);
22972 return NULL;
22973 }
22974 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22975 expr_ty literal_pattern_var;
22976 if (
22977 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22978 )
22979 {
22980 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22981 _res = literal_pattern_var;
22982 goto done;
22983 }
22984 p->mark = _mark;
22985 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22987 }
22988 { // value_pattern
22989 if (p->error_indicator) {
22990 D(p->level--);
22991 return NULL;
22992 }
22993 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22994 expr_ty value_pattern_var;
22995 if (
22996 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22997 )
22998 {
22999 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
23000 _res = value_pattern_var;
23001 goto done;
23002 }
23003 p->mark = _mark;
23004 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
23005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
23006 }
23007 _res = NULL;
23008 done:
23009 D(p->level--);
23010 return _res;
23011}
23012
23013// _loop0_63: ',' pattern
23014static asdl_seq *
23015_loop0_63_rule(Parser *p)
23016{
23017 D(p->level++);
23018 if (p->error_indicator) {
23019 D(p->level--);
23020 return NULL;
23021 }
23022 void *_res = NULL;
23023 int _mark = p->mark;
23024 int _start_mark = p->mark;
23025 void **_children = PyMem_Malloc(sizeof(void *));
23026 if (!_children) {
23027 p->error_indicator = 1;
23028 PyErr_NoMemory();
23029 D(p->level--);
23030 return NULL;
23031 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023032 Py_ssize_t _children_capacity = 1;
23033 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023034 { // ',' pattern
23035 if (p->error_indicator) {
23036 D(p->level--);
23037 return NULL;
23038 }
23039 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
23040 Token * _literal;
23041 expr_ty elem;
23042 while (
23043 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23044 &&
23045 (elem = pattern_rule(p)) // pattern
23046 )
23047 {
23048 _res = elem;
23049 if (_res == NULL && PyErr_Occurred()) {
23050 p->error_indicator = 1;
23051 PyMem_Free(_children);
23052 D(p->level--);
23053 return NULL;
23054 }
23055 if (_n == _children_capacity) {
23056 _children_capacity *= 2;
23057 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23058 if (!_new_children) {
23059 p->error_indicator = 1;
23060 PyErr_NoMemory();
23061 D(p->level--);
23062 return NULL;
23063 }
23064 _children = _new_children;
23065 }
23066 _children[_n++] = _res;
23067 _mark = p->mark;
23068 }
23069 p->mark = _mark;
23070 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
23071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
23072 }
23073 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23074 if (!_seq) {
23075 PyMem_Free(_children);
23076 p->error_indicator = 1;
23077 PyErr_NoMemory();
23078 D(p->level--);
23079 return NULL;
23080 }
23081 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23082 PyMem_Free(_children);
23083 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
23084 D(p->level--);
23085 return _seq;
23086}
23087
23088// _gather_62: pattern _loop0_63
23089static asdl_seq *
23090_gather_62_rule(Parser *p)
23091{
23092 D(p->level++);
23093 if (p->error_indicator) {
23094 D(p->level--);
23095 return NULL;
23096 }
23097 asdl_seq * _res = NULL;
23098 int _mark = p->mark;
23099 { // pattern _loop0_63
23100 if (p->error_indicator) {
23101 D(p->level--);
23102 return NULL;
23103 }
23104 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
23105 expr_ty elem;
23106 asdl_seq * seq;
23107 if (
23108 (elem = pattern_rule(p)) // pattern
23109 &&
23110 (seq = _loop0_63_rule(p)) // _loop0_63
23111 )
23112 {
23113 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
23114 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23115 goto done;
23116 }
23117 p->mark = _mark;
23118 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
23119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
23120 }
23121 _res = NULL;
23122 done:
23123 D(p->level--);
23124 return _res;
23125}
23126
23127// _loop0_65: ',' keyword_pattern
23128static asdl_seq *
23129_loop0_65_rule(Parser *p)
23130{
23131 D(p->level++);
23132 if (p->error_indicator) {
23133 D(p->level--);
23134 return NULL;
23135 }
23136 void *_res = NULL;
23137 int _mark = p->mark;
23138 int _start_mark = p->mark;
23139 void **_children = PyMem_Malloc(sizeof(void *));
23140 if (!_children) {
23141 p->error_indicator = 1;
23142 PyErr_NoMemory();
23143 D(p->level--);
23144 return NULL;
23145 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023146 Py_ssize_t _children_capacity = 1;
23147 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023148 { // ',' keyword_pattern
23149 if (p->error_indicator) {
23150 D(p->level--);
23151 return NULL;
23152 }
23153 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
23154 Token * _literal;
23155 keyword_ty elem;
23156 while (
23157 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23158 &&
23159 (elem = keyword_pattern_rule(p)) // keyword_pattern
23160 )
23161 {
23162 _res = elem;
23163 if (_res == NULL && PyErr_Occurred()) {
23164 p->error_indicator = 1;
23165 PyMem_Free(_children);
23166 D(p->level--);
23167 return NULL;
23168 }
23169 if (_n == _children_capacity) {
23170 _children_capacity *= 2;
23171 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23172 if (!_new_children) {
23173 p->error_indicator = 1;
23174 PyErr_NoMemory();
23175 D(p->level--);
23176 return NULL;
23177 }
23178 _children = _new_children;
23179 }
23180 _children[_n++] = _res;
23181 _mark = p->mark;
23182 }
23183 p->mark = _mark;
23184 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
23185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
23186 }
23187 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23188 if (!_seq) {
23189 PyMem_Free(_children);
23190 p->error_indicator = 1;
23191 PyErr_NoMemory();
23192 D(p->level--);
23193 return NULL;
23194 }
23195 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23196 PyMem_Free(_children);
23197 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
23198 D(p->level--);
23199 return _seq;
23200}
23201
23202// _gather_64: keyword_pattern _loop0_65
23203static asdl_seq *
23204_gather_64_rule(Parser *p)
23205{
23206 D(p->level++);
23207 if (p->error_indicator) {
23208 D(p->level--);
23209 return NULL;
23210 }
23211 asdl_seq * _res = NULL;
23212 int _mark = p->mark;
23213 { // keyword_pattern _loop0_65
23214 if (p->error_indicator) {
23215 D(p->level--);
23216 return NULL;
23217 }
23218 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
23219 keyword_ty elem;
23220 asdl_seq * seq;
23221 if (
23222 (elem = keyword_pattern_rule(p)) // keyword_pattern
23223 &&
23224 (seq = _loop0_65_rule(p)) // _loop0_65
23225 )
23226 {
23227 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
23228 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23229 goto done;
23230 }
23231 p->mark = _mark;
23232 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
23233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
23234 }
23235 _res = NULL;
23236 done:
23237 D(p->level--);
23238 return _res;
23239}
23240
23241// _tmp_66: 'from' expression
23242static void *
23243_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023244{
23245 D(p->level++);
23246 if (p->error_indicator) {
23247 D(p->level--);
23248 return NULL;
23249 }
23250 void * _res = NULL;
23251 int _mark = p->mark;
23252 { // 'from' expression
23253 if (p->error_indicator) {
23254 D(p->level--);
23255 return NULL;
23256 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023257 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023258 Token * _keyword;
23259 expr_ty z;
23260 if (
23261 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
23262 &&
23263 (z = expression_rule(p)) // expression
23264 )
23265 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023266 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 +010023267 _res = z;
23268 if (_res == NULL && PyErr_Occurred()) {
23269 p->error_indicator = 1;
23270 D(p->level--);
23271 return NULL;
23272 }
23273 goto done;
23274 }
23275 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023276 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023278 }
23279 _res = NULL;
23280 done:
23281 D(p->level--);
23282 return _res;
23283}
23284
Brandt Bucher145bf262021-02-26 14:51:55 -080023285// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023286static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023287_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023288{
23289 D(p->level++);
23290 if (p->error_indicator) {
23291 D(p->level--);
23292 return NULL;
23293 }
23294 void * _res = NULL;
23295 int _mark = p->mark;
23296 { // '->' expression
23297 if (p->error_indicator) {
23298 D(p->level--);
23299 return NULL;
23300 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023301 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023302 Token * _literal;
23303 expr_ty z;
23304 if (
23305 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
23306 &&
23307 (z = expression_rule(p)) // expression
23308 )
23309 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023310 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023311 _res = z;
23312 if (_res == NULL && PyErr_Occurred()) {
23313 p->error_indicator = 1;
23314 D(p->level--);
23315 return NULL;
23316 }
23317 goto done;
23318 }
23319 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023320 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
23322 }
23323 _res = NULL;
23324 done:
23325 D(p->level--);
23326 return _res;
23327}
23328
Brandt Bucher145bf262021-02-26 14:51:55 -080023329// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023330static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023331_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023332{
23333 D(p->level++);
23334 if (p->error_indicator) {
23335 D(p->level--);
23336 return NULL;
23337 }
23338 void * _res = NULL;
23339 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023340 { // '->' expression
23341 if (p->error_indicator) {
23342 D(p->level--);
23343 return NULL;
23344 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023345 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023346 Token * _literal;
23347 expr_ty z;
23348 if (
23349 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
23350 &&
23351 (z = expression_rule(p)) // expression
23352 )
23353 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023354 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023355 _res = z;
23356 if (_res == NULL && PyErr_Occurred()) {
23357 p->error_indicator = 1;
23358 D(p->level--);
23359 return NULL;
23360 }
23361 goto done;
23362 }
23363 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023364 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
23366 }
23367 _res = NULL;
23368 done:
23369 D(p->level--);
23370 return _res;
23371}
23372
Brandt Bucher145bf262021-02-26 14:51:55 -080023373// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023374static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023375_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023376{
23377 D(p->level++);
23378 if (p->error_indicator) {
23379 D(p->level--);
23380 return NULL;
23381 }
23382 void * _res = NULL;
23383 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023384 { // NEWLINE INDENT
23385 if (p->error_indicator) {
23386 D(p->level--);
23387 return NULL;
23388 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023389 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023390 Token * indent_var;
23391 Token * newline_var;
23392 if (
23393 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23394 &&
23395 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
23396 )
23397 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023398 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 +010023399 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
23400 goto done;
23401 }
23402 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023403 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
23405 }
23406 _res = NULL;
23407 done:
23408 D(p->level--);
23409 return _res;
23410}
23411
Brandt Bucher145bf262021-02-26 14:51:55 -080023412// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023413static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023414_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023415{
23416 D(p->level++);
23417 if (p->error_indicator) {
23418 D(p->level--);
23419 return NULL;
23420 }
23421 void *_res = NULL;
23422 int _mark = p->mark;
23423 int _start_mark = p->mark;
23424 void **_children = PyMem_Malloc(sizeof(void *));
23425 if (!_children) {
23426 p->error_indicator = 1;
23427 PyErr_NoMemory();
23428 D(p->level--);
23429 return NULL;
23430 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023431 Py_ssize_t _children_capacity = 1;
23432 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023433 { // param_no_default
23434 if (p->error_indicator) {
23435 D(p->level--);
23436 return NULL;
23437 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023438 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 +010023439 arg_ty param_no_default_var;
23440 while (
23441 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23442 )
23443 {
23444 _res = param_no_default_var;
23445 if (_n == _children_capacity) {
23446 _children_capacity *= 2;
23447 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23448 if (!_new_children) {
23449 p->error_indicator = 1;
23450 PyErr_NoMemory();
23451 D(p->level--);
23452 return NULL;
23453 }
23454 _children = _new_children;
23455 }
23456 _children[_n++] = _res;
23457 _mark = p->mark;
23458 }
23459 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023460 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023462 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023463 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023464 if (!_seq) {
23465 PyMem_Free(_children);
23466 p->error_indicator = 1;
23467 PyErr_NoMemory();
23468 D(p->level--);
23469 return NULL;
23470 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023471 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023472 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023473 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023474 D(p->level--);
23475 return _seq;
23476}
23477
Brandt Bucher145bf262021-02-26 14:51:55 -080023478// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023479static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023480_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023481{
23482 D(p->level++);
23483 if (p->error_indicator) {
23484 D(p->level--);
23485 return NULL;
23486 }
23487 void *_res = NULL;
23488 int _mark = p->mark;
23489 int _start_mark = p->mark;
23490 void **_children = PyMem_Malloc(sizeof(void *));
23491 if (!_children) {
23492 p->error_indicator = 1;
23493 PyErr_NoMemory();
23494 D(p->level--);
23495 return NULL;
23496 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023497 Py_ssize_t _children_capacity = 1;
23498 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023499 { // param_with_default
23500 if (p->error_indicator) {
23501 D(p->level--);
23502 return NULL;
23503 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023504 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 +010023505 NameDefaultPair* param_with_default_var;
23506 while (
23507 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23508 )
23509 {
23510 _res = param_with_default_var;
23511 if (_n == _children_capacity) {
23512 _children_capacity *= 2;
23513 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23514 if (!_new_children) {
23515 p->error_indicator = 1;
23516 PyErr_NoMemory();
23517 D(p->level--);
23518 return NULL;
23519 }
23520 _children = _new_children;
23521 }
23522 _children[_n++] = _res;
23523 _mark = p->mark;
23524 }
23525 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023526 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23528 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023529 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023530 if (!_seq) {
23531 PyMem_Free(_children);
23532 p->error_indicator = 1;
23533 PyErr_NoMemory();
23534 D(p->level--);
23535 return NULL;
23536 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023537 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023538 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023539 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023540 D(p->level--);
23541 return _seq;
23542}
23543
Brandt Bucher145bf262021-02-26 14:51:55 -080023544// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023545static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023546_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023547{
23548 D(p->level++);
23549 if (p->error_indicator) {
23550 D(p->level--);
23551 return NULL;
23552 }
23553 void *_res = NULL;
23554 int _mark = p->mark;
23555 int _start_mark = p->mark;
23556 void **_children = PyMem_Malloc(sizeof(void *));
23557 if (!_children) {
23558 p->error_indicator = 1;
23559 PyErr_NoMemory();
23560 D(p->level--);
23561 return NULL;
23562 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023563 Py_ssize_t _children_capacity = 1;
23564 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023565 { // param_with_default
23566 if (p->error_indicator) {
23567 D(p->level--);
23568 return NULL;
23569 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023570 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 +030023571 NameDefaultPair* param_with_default_var;
23572 while (
23573 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23574 )
23575 {
23576 _res = param_with_default_var;
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;
Brandt Bucher145bf262021-02-26 14:51:55 -080023592 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23594 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023595 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023596 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]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023604 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023605 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023606 D(p->level--);
23607 return _seq;
23608}
23609
Brandt Bucher145bf262021-02-26 14:51:55 -080023610// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023611static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023612_loop1_73_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 void *_res = NULL;
23620 int _mark = p->mark;
23621 int _start_mark = p->mark;
23622 void **_children = PyMem_Malloc(sizeof(void *));
23623 if (!_children) {
23624 p->error_indicator = 1;
23625 PyErr_NoMemory();
23626 D(p->level--);
23627 return NULL;
23628 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023629 Py_ssize_t _children_capacity = 1;
23630 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023631 { // param_no_default
23632 if (p->error_indicator) {
23633 D(p->level--);
23634 return NULL;
23635 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023636 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 +010023637 arg_ty param_no_default_var;
23638 while (
23639 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23640 )
23641 {
23642 _res = param_no_default_var;
23643 if (_n == _children_capacity) {
23644 _children_capacity *= 2;
23645 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23646 if (!_new_children) {
23647 p->error_indicator = 1;
23648 PyErr_NoMemory();
23649 D(p->level--);
23650 return NULL;
23651 }
23652 _children = _new_children;
23653 }
23654 _children[_n++] = _res;
23655 _mark = p->mark;
23656 }
23657 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023658 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23660 }
23661 if (_n == 0 || p->error_indicator) {
23662 PyMem_Free(_children);
23663 D(p->level--);
23664 return NULL;
23665 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023666 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023667 if (!_seq) {
23668 PyMem_Free(_children);
23669 p->error_indicator = 1;
23670 PyErr_NoMemory();
23671 D(p->level--);
23672 return NULL;
23673 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023674 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023676 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023677 D(p->level--);
23678 return _seq;
23679}
23680
Brandt Bucher145bf262021-02-26 14:51:55 -080023681// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023682static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023683_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023684{
23685 D(p->level++);
23686 if (p->error_indicator) {
23687 D(p->level--);
23688 return NULL;
23689 }
23690 void *_res = NULL;
23691 int _mark = p->mark;
23692 int _start_mark = p->mark;
23693 void **_children = PyMem_Malloc(sizeof(void *));
23694 if (!_children) {
23695 p->error_indicator = 1;
23696 PyErr_NoMemory();
23697 D(p->level--);
23698 return NULL;
23699 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023700 Py_ssize_t _children_capacity = 1;
23701 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023702 { // param_with_default
23703 if (p->error_indicator) {
23704 D(p->level--);
23705 return NULL;
23706 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023707 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 +010023708 NameDefaultPair* param_with_default_var;
23709 while (
23710 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23711 )
23712 {
23713 _res = param_with_default_var;
23714 if (_n == _children_capacity) {
23715 _children_capacity *= 2;
23716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23717 if (!_new_children) {
23718 p->error_indicator = 1;
23719 PyErr_NoMemory();
23720 D(p->level--);
23721 return NULL;
23722 }
23723 _children = _new_children;
23724 }
23725 _children[_n++] = _res;
23726 _mark = p->mark;
23727 }
23728 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023729 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23731 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023732 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023733 if (!_seq) {
23734 PyMem_Free(_children);
23735 p->error_indicator = 1;
23736 PyErr_NoMemory();
23737 D(p->level--);
23738 return NULL;
23739 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023740 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023741 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023742 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023743 D(p->level--);
23744 return _seq;
23745}
23746
Brandt Bucher145bf262021-02-26 14:51:55 -080023747// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023748static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023749_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023750{
23751 D(p->level++);
23752 if (p->error_indicator) {
23753 D(p->level--);
23754 return NULL;
23755 }
23756 void *_res = NULL;
23757 int _mark = p->mark;
23758 int _start_mark = p->mark;
23759 void **_children = PyMem_Malloc(sizeof(void *));
23760 if (!_children) {
23761 p->error_indicator = 1;
23762 PyErr_NoMemory();
23763 D(p->level--);
23764 return NULL;
23765 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023766 Py_ssize_t _children_capacity = 1;
23767 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023768 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 if (p->error_indicator) {
23770 D(p->level--);
23771 return NULL;
23772 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023773 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 +030023774 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023775 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023776 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023777 )
23778 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023779 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023780 if (_n == _children_capacity) {
23781 _children_capacity *= 2;
23782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23783 if (!_new_children) {
23784 p->error_indicator = 1;
23785 PyErr_NoMemory();
23786 D(p->level--);
23787 return NULL;
23788 }
23789 _children = _new_children;
23790 }
23791 _children[_n++] = _res;
23792 _mark = p->mark;
23793 }
23794 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023795 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023797 }
23798 if (_n == 0 || p->error_indicator) {
23799 PyMem_Free(_children);
23800 D(p->level--);
23801 return NULL;
23802 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023804 if (!_seq) {
23805 PyMem_Free(_children);
23806 p->error_indicator = 1;
23807 PyErr_NoMemory();
23808 D(p->level--);
23809 return NULL;
23810 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023812 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023813 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023814 D(p->level--);
23815 return _seq;
23816}
23817
Brandt Bucher145bf262021-02-26 14:51:55 -080023818// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023819static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023820_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023821{
23822 D(p->level++);
23823 if (p->error_indicator) {
23824 D(p->level--);
23825 return NULL;
23826 }
23827 void *_res = NULL;
23828 int _mark = p->mark;
23829 int _start_mark = p->mark;
23830 void **_children = PyMem_Malloc(sizeof(void *));
23831 if (!_children) {
23832 p->error_indicator = 1;
23833 PyErr_NoMemory();
23834 D(p->level--);
23835 return NULL;
23836 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023837 Py_ssize_t _children_capacity = 1;
23838 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023839 { // param_no_default
23840 if (p->error_indicator) {
23841 D(p->level--);
23842 return NULL;
23843 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023844 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 +010023845 arg_ty param_no_default_var;
23846 while (
23847 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23848 )
23849 {
23850 _res = param_no_default_var;
23851 if (_n == _children_capacity) {
23852 _children_capacity *= 2;
23853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23854 if (!_new_children) {
23855 p->error_indicator = 1;
23856 PyErr_NoMemory();
23857 D(p->level--);
23858 return NULL;
23859 }
23860 _children = _new_children;
23861 }
23862 _children[_n++] = _res;
23863 _mark = p->mark;
23864 }
23865 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023866 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23868 }
23869 if (_n == 0 || p->error_indicator) {
23870 PyMem_Free(_children);
23871 D(p->level--);
23872 return NULL;
23873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023874 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023875 if (!_seq) {
23876 PyMem_Free(_children);
23877 p->error_indicator = 1;
23878 PyErr_NoMemory();
23879 D(p->level--);
23880 return NULL;
23881 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023882 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023883 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023884 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023885 D(p->level--);
23886 return _seq;
23887}
23888
Brandt Bucher145bf262021-02-26 14:51:55 -080023889// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023890static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023891_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023892{
23893 D(p->level++);
23894 if (p->error_indicator) {
23895 D(p->level--);
23896 return NULL;
23897 }
23898 void *_res = NULL;
23899 int _mark = p->mark;
23900 int _start_mark = p->mark;
23901 void **_children = PyMem_Malloc(sizeof(void *));
23902 if (!_children) {
23903 p->error_indicator = 1;
23904 PyErr_NoMemory();
23905 D(p->level--);
23906 return NULL;
23907 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023908 Py_ssize_t _children_capacity = 1;
23909 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023910 { // param_no_default
23911 if (p->error_indicator) {
23912 D(p->level--);
23913 return NULL;
23914 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023915 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 +010023916 arg_ty param_no_default_var;
23917 while (
23918 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23919 )
23920 {
23921 _res = param_no_default_var;
23922 if (_n == _children_capacity) {
23923 _children_capacity *= 2;
23924 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23925 if (!_new_children) {
23926 p->error_indicator = 1;
23927 PyErr_NoMemory();
23928 D(p->level--);
23929 return NULL;
23930 }
23931 _children = _new_children;
23932 }
23933 _children[_n++] = _res;
23934 _mark = p->mark;
23935 }
23936 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023937 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23939 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023940 if (_n == 0 || p->error_indicator) {
23941 PyMem_Free(_children);
23942 D(p->level--);
23943 return NULL;
23944 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023945 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023946 if (!_seq) {
23947 PyMem_Free(_children);
23948 p->error_indicator = 1;
23949 PyErr_NoMemory();
23950 D(p->level--);
23951 return NULL;
23952 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023953 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023954 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023955 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023956 D(p->level--);
23957 return _seq;
23958}
23959
Brandt Bucher145bf262021-02-26 14:51:55 -080023960// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023961static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023962_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023963{
23964 D(p->level++);
23965 if (p->error_indicator) {
23966 D(p->level--);
23967 return NULL;
23968 }
23969 void *_res = NULL;
23970 int _mark = p->mark;
23971 int _start_mark = p->mark;
23972 void **_children = PyMem_Malloc(sizeof(void *));
23973 if (!_children) {
23974 p->error_indicator = 1;
23975 PyErr_NoMemory();
23976 D(p->level--);
23977 return NULL;
23978 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023979 Py_ssize_t _children_capacity = 1;
23980 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023981 { // param_no_default
23982 if (p->error_indicator) {
23983 D(p->level--);
23984 return NULL;
23985 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023986 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 +010023987 arg_ty param_no_default_var;
23988 while (
23989 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23990 )
23991 {
23992 _res = param_no_default_var;
23993 if (_n == _children_capacity) {
23994 _children_capacity *= 2;
23995 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23996 if (!_new_children) {
23997 p->error_indicator = 1;
23998 PyErr_NoMemory();
23999 D(p->level--);
24000 return NULL;
24001 }
24002 _children = _new_children;
24003 }
24004 _children[_n++] = _res;
24005 _mark = p->mark;
24006 }
24007 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024008 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024011 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024012 if (!_seq) {
24013 PyMem_Free(_children);
24014 p->error_indicator = 1;
24015 PyErr_NoMemory();
24016 D(p->level--);
24017 return NULL;
24018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024019 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024020 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024021 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024022 D(p->level--);
24023 return _seq;
24024}
24025
Brandt Bucher145bf262021-02-26 14:51:55 -080024026// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024027static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024028_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024029{
24030 D(p->level++);
24031 if (p->error_indicator) {
24032 D(p->level--);
24033 return NULL;
24034 }
24035 void *_res = NULL;
24036 int _mark = p->mark;
24037 int _start_mark = p->mark;
24038 void **_children = PyMem_Malloc(sizeof(void *));
24039 if (!_children) {
24040 p->error_indicator = 1;
24041 PyErr_NoMemory();
24042 D(p->level--);
24043 return NULL;
24044 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024045 Py_ssize_t _children_capacity = 1;
24046 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024047 { // param_with_default
24048 if (p->error_indicator) {
24049 D(p->level--);
24050 return NULL;
24051 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024052 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 +010024053 NameDefaultPair* param_with_default_var;
24054 while (
24055 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24056 )
24057 {
24058 _res = param_with_default_var;
24059 if (_n == _children_capacity) {
24060 _children_capacity *= 2;
24061 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24062 if (!_new_children) {
24063 p->error_indicator = 1;
24064 PyErr_NoMemory();
24065 D(p->level--);
24066 return NULL;
24067 }
24068 _children = _new_children;
24069 }
24070 _children[_n++] = _res;
24071 _mark = p->mark;
24072 }
24073 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024074 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24076 }
24077 if (_n == 0 || p->error_indicator) {
24078 PyMem_Free(_children);
24079 D(p->level--);
24080 return NULL;
24081 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024082 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024083 if (!_seq) {
24084 PyMem_Free(_children);
24085 p->error_indicator = 1;
24086 PyErr_NoMemory();
24087 D(p->level--);
24088 return NULL;
24089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024090 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024091 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024092 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024093 D(p->level--);
24094 return _seq;
24095}
24096
Brandt Bucher145bf262021-02-26 14:51:55 -080024097// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024098static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024099_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024100{
24101 D(p->level++);
24102 if (p->error_indicator) {
24103 D(p->level--);
24104 return NULL;
24105 }
24106 void *_res = NULL;
24107 int _mark = p->mark;
24108 int _start_mark = p->mark;
24109 void **_children = PyMem_Malloc(sizeof(void *));
24110 if (!_children) {
24111 p->error_indicator = 1;
24112 PyErr_NoMemory();
24113 D(p->level--);
24114 return NULL;
24115 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024116 Py_ssize_t _children_capacity = 1;
24117 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024118 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024119 if (p->error_indicator) {
24120 D(p->level--);
24121 return NULL;
24122 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024123 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 +030024124 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024125 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024126 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024127 )
24128 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024129 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024130 if (_n == _children_capacity) {
24131 _children_capacity *= 2;
24132 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24133 if (!_new_children) {
24134 p->error_indicator = 1;
24135 PyErr_NoMemory();
24136 D(p->level--);
24137 return NULL;
24138 }
24139 _children = _new_children;
24140 }
24141 _children[_n++] = _res;
24142 _mark = p->mark;
24143 }
24144 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024145 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024149 if (!_seq) {
24150 PyMem_Free(_children);
24151 p->error_indicator = 1;
24152 PyErr_NoMemory();
24153 D(p->level--);
24154 return NULL;
24155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024157 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024158 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024159 D(p->level--);
24160 return _seq;
24161}
24162
Brandt Bucher145bf262021-02-26 14:51:55 -080024163// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024164static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024165_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024166{
24167 D(p->level++);
24168 if (p->error_indicator) {
24169 D(p->level--);
24170 return NULL;
24171 }
24172 void *_res = NULL;
24173 int _mark = p->mark;
24174 int _start_mark = p->mark;
24175 void **_children = PyMem_Malloc(sizeof(void *));
24176 if (!_children) {
24177 p->error_indicator = 1;
24178 PyErr_NoMemory();
24179 D(p->level--);
24180 return NULL;
24181 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024182 Py_ssize_t _children_capacity = 1;
24183 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024184 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024185 if (p->error_indicator) {
24186 D(p->level--);
24187 return NULL;
24188 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024189 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 +030024190 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024191 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024192 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024193 )
24194 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024195 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024196 if (_n == _children_capacity) {
24197 _children_capacity *= 2;
24198 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24199 if (!_new_children) {
24200 p->error_indicator = 1;
24201 PyErr_NoMemory();
24202 D(p->level--);
24203 return NULL;
24204 }
24205 _children = _new_children;
24206 }
24207 _children[_n++] = _res;
24208 _mark = p->mark;
24209 }
24210 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024211 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024213 }
24214 if (_n == 0 || p->error_indicator) {
24215 PyMem_Free(_children);
24216 D(p->level--);
24217 return NULL;
24218 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024219 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024220 if (!_seq) {
24221 PyMem_Free(_children);
24222 p->error_indicator = 1;
24223 PyErr_NoMemory();
24224 D(p->level--);
24225 return NULL;
24226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024227 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024228 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024229 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024230 D(p->level--);
24231 return _seq;
24232}
24233
Brandt Bucher145bf262021-02-26 14:51:55 -080024234// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024235static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024236_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024237{
24238 D(p->level++);
24239 if (p->error_indicator) {
24240 D(p->level--);
24241 return NULL;
24242 }
24243 void *_res = NULL;
24244 int _mark = p->mark;
24245 int _start_mark = p->mark;
24246 void **_children = PyMem_Malloc(sizeof(void *));
24247 if (!_children) {
24248 p->error_indicator = 1;
24249 PyErr_NoMemory();
24250 D(p->level--);
24251 return NULL;
24252 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024253 Py_ssize_t _children_capacity = 1;
24254 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024255 { // param_maybe_default
24256 if (p->error_indicator) {
24257 D(p->level--);
24258 return NULL;
24259 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024260 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 +030024261 NameDefaultPair* param_maybe_default_var;
24262 while (
24263 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
24264 )
24265 {
24266 _res = param_maybe_default_var;
24267 if (_n == _children_capacity) {
24268 _children_capacity *= 2;
24269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24270 if (!_new_children) {
24271 p->error_indicator = 1;
24272 PyErr_NoMemory();
24273 D(p->level--);
24274 return NULL;
24275 }
24276 _children = _new_children;
24277 }
24278 _children[_n++] = _res;
24279 _mark = p->mark;
24280 }
24281 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024282 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
24284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024285 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024286 if (!_seq) {
24287 PyMem_Free(_children);
24288 p->error_indicator = 1;
24289 PyErr_NoMemory();
24290 D(p->level--);
24291 return NULL;
24292 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024293 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024294 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024295 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024296 D(p->level--);
24297 return _seq;
24298}
24299
Brandt Bucher145bf262021-02-26 14:51:55 -080024300// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024301static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024302_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024303{
24304 D(p->level++);
24305 if (p->error_indicator) {
24306 D(p->level--);
24307 return NULL;
24308 }
24309 void *_res = NULL;
24310 int _mark = p->mark;
24311 int _start_mark = p->mark;
24312 void **_children = PyMem_Malloc(sizeof(void *));
24313 if (!_children) {
24314 p->error_indicator = 1;
24315 PyErr_NoMemory();
24316 D(p->level--);
24317 return NULL;
24318 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024319 Py_ssize_t _children_capacity = 1;
24320 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024321 { // param_maybe_default
24322 if (p->error_indicator) {
24323 D(p->level--);
24324 return NULL;
24325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 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 +030024327 NameDefaultPair* param_maybe_default_var;
24328 while (
24329 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
24330 )
24331 {
24332 _res = param_maybe_default_var;
24333 if (_n == _children_capacity) {
24334 _children_capacity *= 2;
24335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24336 if (!_new_children) {
24337 p->error_indicator = 1;
24338 PyErr_NoMemory();
24339 D(p->level--);
24340 return NULL;
24341 }
24342 _children = _new_children;
24343 }
24344 _children[_n++] = _res;
24345 _mark = p->mark;
24346 }
24347 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024348 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
24350 }
24351 if (_n == 0 || p->error_indicator) {
24352 PyMem_Free(_children);
24353 D(p->level--);
24354 return NULL;
24355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024356 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024357 if (!_seq) {
24358 PyMem_Free(_children);
24359 p->error_indicator = 1;
24360 PyErr_NoMemory();
24361 D(p->level--);
24362 return NULL;
24363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024364 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024365 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024366 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024367 D(p->level--);
24368 return _seq;
24369}
24370
Brandt Bucher145bf262021-02-26 14:51:55 -080024371// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024372static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024373_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024374{
24375 D(p->level++);
24376 if (p->error_indicator) {
24377 D(p->level--);
24378 return NULL;
24379 }
24380 void *_res = NULL;
24381 int _mark = p->mark;
24382 int _start_mark = p->mark;
24383 void **_children = PyMem_Malloc(sizeof(void *));
24384 if (!_children) {
24385 p->error_indicator = 1;
24386 PyErr_NoMemory();
24387 D(p->level--);
24388 return NULL;
24389 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024390 Py_ssize_t _children_capacity = 1;
24391 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024392 { // ('@' named_expression NEWLINE)
24393 if (p->error_indicator) {
24394 D(p->level--);
24395 return NULL;
24396 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024397 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindob2802482021-04-15 21:38:45 +010024398 void *_tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024399 while (
Pablo Galindob2802482021-04-15 21:38:45 +010024400 (_tmp_172_var = _tmp_172_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024401 )
24402 {
Pablo Galindob2802482021-04-15 21:38:45 +010024403 _res = _tmp_172_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024404 if (_n == _children_capacity) {
24405 _children_capacity *= 2;
24406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24407 if (!_new_children) {
24408 p->error_indicator = 1;
24409 PyErr_NoMemory();
24410 D(p->level--);
24411 return NULL;
24412 }
24413 _children = _new_children;
24414 }
24415 _children[_n++] = _res;
24416 _mark = p->mark;
24417 }
24418 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024419 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
24421 }
24422 if (_n == 0 || p->error_indicator) {
24423 PyMem_Free(_children);
24424 D(p->level--);
24425 return NULL;
24426 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024427 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024428 if (!_seq) {
24429 PyMem_Free(_children);
24430 p->error_indicator = 1;
24431 PyErr_NoMemory();
24432 D(p->level--);
24433 return NULL;
24434 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024435 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024436 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024437 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024438 D(p->level--);
24439 return _seq;
24440}
24441
Brandt Bucher145bf262021-02-26 14:51:55 -080024442// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024443static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024444_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024445{
24446 D(p->level++);
24447 if (p->error_indicator) {
24448 D(p->level--);
24449 return NULL;
24450 }
24451 void * _res = NULL;
24452 int _mark = p->mark;
24453 { // '(' arguments? ')'
24454 if (p->error_indicator) {
24455 D(p->level--);
24456 return NULL;
24457 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024458 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024459 Token * _literal;
24460 Token * _literal_1;
24461 void *z;
24462 if (
24463 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24464 &&
24465 (z = arguments_rule(p), 1) // arguments?
24466 &&
24467 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
24468 )
24469 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024470 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024471 _res = z;
24472 if (_res == NULL && PyErr_Occurred()) {
24473 p->error_indicator = 1;
24474 D(p->level--);
24475 return NULL;
24476 }
24477 goto done;
24478 }
24479 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024480 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
24482 }
24483 _res = NULL;
24484 done:
24485 D(p->level--);
24486 return _res;
24487}
24488
Brandt Bucher145bf262021-02-26 14:51:55 -080024489// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024491_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024492{
24493 D(p->level++);
24494 if (p->error_indicator) {
24495 D(p->level--);
24496 return NULL;
24497 }
24498 void *_res = NULL;
24499 int _mark = p->mark;
24500 int _start_mark = p->mark;
24501 void **_children = PyMem_Malloc(sizeof(void *));
24502 if (!_children) {
24503 p->error_indicator = 1;
24504 PyErr_NoMemory();
24505 D(p->level--);
24506 return NULL;
24507 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024508 Py_ssize_t _children_capacity = 1;
24509 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024510 { // (',' star_expression)
24511 if (p->error_indicator) {
24512 D(p->level--);
24513 return NULL;
24514 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024515 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindob2802482021-04-15 21:38:45 +010024516 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024517 while (
Pablo Galindob2802482021-04-15 21:38:45 +010024518 (_tmp_173_var = _tmp_173_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024519 )
24520 {
Pablo Galindob2802482021-04-15 21:38:45 +010024521 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024522 if (_n == _children_capacity) {
24523 _children_capacity *= 2;
24524 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24525 if (!_new_children) {
24526 p->error_indicator = 1;
24527 PyErr_NoMemory();
24528 D(p->level--);
24529 return NULL;
24530 }
24531 _children = _new_children;
24532 }
24533 _children[_n++] = _res;
24534 _mark = p->mark;
24535 }
24536 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024537 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
24539 }
24540 if (_n == 0 || p->error_indicator) {
24541 PyMem_Free(_children);
24542 D(p->level--);
24543 return NULL;
24544 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024546 if (!_seq) {
24547 PyMem_Free(_children);
24548 p->error_indicator = 1;
24549 PyErr_NoMemory();
24550 D(p->level--);
24551 return NULL;
24552 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024554 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024555 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024556 D(p->level--);
24557 return _seq;
24558}
24559
Brandt Bucher145bf262021-02-26 14:51:55 -080024560// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024561static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024562_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024563{
24564 D(p->level++);
24565 if (p->error_indicator) {
24566 D(p->level--);
24567 return NULL;
24568 }
24569 void *_res = NULL;
24570 int _mark = p->mark;
24571 int _start_mark = p->mark;
24572 void **_children = PyMem_Malloc(sizeof(void *));
24573 if (!_children) {
24574 p->error_indicator = 1;
24575 PyErr_NoMemory();
24576 D(p->level--);
24577 return NULL;
24578 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024579 Py_ssize_t _children_capacity = 1;
24580 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024581 { // ',' star_named_expression
24582 if (p->error_indicator) {
24583 D(p->level--);
24584 return NULL;
24585 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024586 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 +010024587 Token * _literal;
24588 expr_ty elem;
24589 while (
24590 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24591 &&
24592 (elem = star_named_expression_rule(p)) // star_named_expression
24593 )
24594 {
24595 _res = elem;
24596 if (_res == NULL && PyErr_Occurred()) {
24597 p->error_indicator = 1;
24598 PyMem_Free(_children);
24599 D(p->level--);
24600 return NULL;
24601 }
24602 if (_n == _children_capacity) {
24603 _children_capacity *= 2;
24604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24605 if (!_new_children) {
24606 p->error_indicator = 1;
24607 PyErr_NoMemory();
24608 D(p->level--);
24609 return NULL;
24610 }
24611 _children = _new_children;
24612 }
24613 _children[_n++] = _res;
24614 _mark = p->mark;
24615 }
24616 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024617 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
24619 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024620 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024621 if (!_seq) {
24622 PyMem_Free(_children);
24623 p->error_indicator = 1;
24624 PyErr_NoMemory();
24625 D(p->level--);
24626 return NULL;
24627 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024628 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024629 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024630 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024631 D(p->level--);
24632 return _seq;
24633}
24634
Brandt Bucher145bf262021-02-26 14:51:55 -080024635// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024636static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024637_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024638{
24639 D(p->level++);
24640 if (p->error_indicator) {
24641 D(p->level--);
24642 return NULL;
24643 }
24644 asdl_seq * _res = NULL;
24645 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024646 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024647 if (p->error_indicator) {
24648 D(p->level--);
24649 return NULL;
24650 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024651 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 +010024652 expr_ty elem;
24653 asdl_seq * seq;
24654 if (
24655 (elem = star_named_expression_rule(p)) // star_named_expression
24656 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080024657 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024658 )
24659 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024660 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 +010024661 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24662 goto done;
24663 }
24664 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024665 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
24666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024667 }
24668 _res = NULL;
24669 done:
24670 D(p->level--);
24671 return _res;
24672}
24673
Brandt Bucher145bf262021-02-26 14:51:55 -080024674// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024675static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024676_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024677{
24678 D(p->level++);
24679 if (p->error_indicator) {
24680 D(p->level--);
24681 return NULL;
24682 }
24683 void *_res = NULL;
24684 int _mark = p->mark;
24685 int _start_mark = p->mark;
24686 void **_children = PyMem_Malloc(sizeof(void *));
24687 if (!_children) {
24688 p->error_indicator = 1;
24689 PyErr_NoMemory();
24690 D(p->level--);
24691 return NULL;
24692 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024693 Py_ssize_t _children_capacity = 1;
24694 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024695 { // (',' expression)
24696 if (p->error_indicator) {
24697 D(p->level--);
24698 return NULL;
24699 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024700 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindob2802482021-04-15 21:38:45 +010024701 void *_tmp_174_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024702 while (
Pablo Galindob2802482021-04-15 21:38:45 +010024703 (_tmp_174_var = _tmp_174_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024704 )
24705 {
Pablo Galindob2802482021-04-15 21:38:45 +010024706 _res = _tmp_174_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024707 if (_n == _children_capacity) {
24708 _children_capacity *= 2;
24709 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24710 if (!_new_children) {
24711 p->error_indicator = 1;
24712 PyErr_NoMemory();
24713 D(p->level--);
24714 return NULL;
24715 }
24716 _children = _new_children;
24717 }
24718 _children[_n++] = _res;
24719 _mark = p->mark;
24720 }
24721 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024722 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
24724 }
24725 if (_n == 0 || p->error_indicator) {
24726 PyMem_Free(_children);
24727 D(p->level--);
24728 return NULL;
24729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024730 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024731 if (!_seq) {
24732 PyMem_Free(_children);
24733 p->error_indicator = 1;
24734 PyErr_NoMemory();
24735 D(p->level--);
24736 return NULL;
24737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024738 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024740 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024741 D(p->level--);
24742 return _seq;
24743}
24744
Brandt Bucher145bf262021-02-26 14:51:55 -080024745// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024746static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024747_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024748{
24749 D(p->level++);
24750 if (p->error_indicator) {
24751 D(p->level--);
24752 return NULL;
24753 }
24754 void *_res = NULL;
24755 int _mark = p->mark;
24756 int _start_mark = p->mark;
24757 void **_children = PyMem_Malloc(sizeof(void *));
24758 if (!_children) {
24759 p->error_indicator = 1;
24760 PyErr_NoMemory();
24761 D(p->level--);
24762 return NULL;
24763 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024764 Py_ssize_t _children_capacity = 1;
24765 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024766 { // lambda_param_no_default
24767 if (p->error_indicator) {
24768 D(p->level--);
24769 return NULL;
24770 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024771 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 +010024772 arg_ty lambda_param_no_default_var;
24773 while (
24774 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24775 )
24776 {
24777 _res = lambda_param_no_default_var;
24778 if (_n == _children_capacity) {
24779 _children_capacity *= 2;
24780 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24781 if (!_new_children) {
24782 p->error_indicator = 1;
24783 PyErr_NoMemory();
24784 D(p->level--);
24785 return NULL;
24786 }
24787 _children = _new_children;
24788 }
24789 _children[_n++] = _res;
24790 _mark = p->mark;
24791 }
24792 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024793 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024795 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024796 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024797 if (!_seq) {
24798 PyMem_Free(_children);
24799 p->error_indicator = 1;
24800 PyErr_NoMemory();
24801 D(p->level--);
24802 return NULL;
24803 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024804 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024805 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024806 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024807 D(p->level--);
24808 return _seq;
24809}
24810
Brandt Bucher145bf262021-02-26 14:51:55 -080024811// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024812static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024813_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024814{
24815 D(p->level++);
24816 if (p->error_indicator) {
24817 D(p->level--);
24818 return NULL;
24819 }
24820 void *_res = NULL;
24821 int _mark = p->mark;
24822 int _start_mark = p->mark;
24823 void **_children = PyMem_Malloc(sizeof(void *));
24824 if (!_children) {
24825 p->error_indicator = 1;
24826 PyErr_NoMemory();
24827 D(p->level--);
24828 return NULL;
24829 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024830 Py_ssize_t _children_capacity = 1;
24831 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024832 { // lambda_param_with_default
24833 if (p->error_indicator) {
24834 D(p->level--);
24835 return NULL;
24836 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024837 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 +010024838 NameDefaultPair* lambda_param_with_default_var;
24839 while (
24840 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24841 )
24842 {
24843 _res = lambda_param_with_default_var;
24844 if (_n == _children_capacity) {
24845 _children_capacity *= 2;
24846 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24847 if (!_new_children) {
24848 p->error_indicator = 1;
24849 PyErr_NoMemory();
24850 D(p->level--);
24851 return NULL;
24852 }
24853 _children = _new_children;
24854 }
24855 _children[_n++] = _res;
24856 _mark = p->mark;
24857 }
24858 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024859 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24861 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024862 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024863 if (!_seq) {
24864 PyMem_Free(_children);
24865 p->error_indicator = 1;
24866 PyErr_NoMemory();
24867 D(p->level--);
24868 return NULL;
24869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024870 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024871 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024872 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024873 D(p->level--);
24874 return _seq;
24875}
24876
Brandt Bucher145bf262021-02-26 14:51:55 -080024877// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024878static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024879_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024880{
24881 D(p->level++);
24882 if (p->error_indicator) {
24883 D(p->level--);
24884 return NULL;
24885 }
24886 void *_res = NULL;
24887 int _mark = p->mark;
24888 int _start_mark = p->mark;
24889 void **_children = PyMem_Malloc(sizeof(void *));
24890 if (!_children) {
24891 p->error_indicator = 1;
24892 PyErr_NoMemory();
24893 D(p->level--);
24894 return NULL;
24895 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024896 Py_ssize_t _children_capacity = 1;
24897 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024898 { // lambda_param_with_default
24899 if (p->error_indicator) {
24900 D(p->level--);
24901 return NULL;
24902 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024903 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 +000024904 NameDefaultPair* lambda_param_with_default_var;
24905 while (
24906 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24907 )
24908 {
24909 _res = lambda_param_with_default_var;
24910 if (_n == _children_capacity) {
24911 _children_capacity *= 2;
24912 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24913 if (!_new_children) {
24914 p->error_indicator = 1;
24915 PyErr_NoMemory();
24916 D(p->level--);
24917 return NULL;
24918 }
24919 _children = _new_children;
24920 }
24921 _children[_n++] = _res;
24922 _mark = p->mark;
24923 }
24924 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024925 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24927 }
24928 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24929 if (!_seq) {
24930 PyMem_Free(_children);
24931 p->error_indicator = 1;
24932 PyErr_NoMemory();
24933 D(p->level--);
24934 return NULL;
24935 }
24936 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24937 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024938 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024939 D(p->level--);
24940 return _seq;
24941}
24942
Brandt Bucher145bf262021-02-26 14:51:55 -080024943// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024944static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024945_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024946{
24947 D(p->level++);
24948 if (p->error_indicator) {
24949 D(p->level--);
24950 return NULL;
24951 }
24952 void *_res = NULL;
24953 int _mark = p->mark;
24954 int _start_mark = p->mark;
24955 void **_children = PyMem_Malloc(sizeof(void *));
24956 if (!_children) {
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 D(p->level--);
24960 return NULL;
24961 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024962 Py_ssize_t _children_capacity = 1;
24963 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024964 { // lambda_param_no_default
24965 if (p->error_indicator) {
24966 D(p->level--);
24967 return NULL;
24968 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024969 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 +000024970 arg_ty lambda_param_no_default_var;
24971 while (
24972 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24973 )
24974 {
24975 _res = lambda_param_no_default_var;
24976 if (_n == _children_capacity) {
24977 _children_capacity *= 2;
24978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24979 if (!_new_children) {
24980 p->error_indicator = 1;
24981 PyErr_NoMemory();
24982 D(p->level--);
24983 return NULL;
24984 }
24985 _children = _new_children;
24986 }
24987 _children[_n++] = _res;
24988 _mark = p->mark;
24989 }
24990 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024991 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24993 }
24994 if (_n == 0 || p->error_indicator) {
24995 PyMem_Free(_children);
24996 D(p->level--);
24997 return NULL;
24998 }
24999 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25000 if (!_seq) {
25001 PyMem_Free(_children);
25002 p->error_indicator = 1;
25003 PyErr_NoMemory();
25004 D(p->level--);
25005 return NULL;
25006 }
25007 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25008 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025009 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025010 D(p->level--);
25011 return _seq;
25012}
25013
Brandt Bucher145bf262021-02-26 14:51:55 -080025014// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025015static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025016_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025017{
25018 D(p->level++);
25019 if (p->error_indicator) {
25020 D(p->level--);
25021 return NULL;
25022 }
25023 void *_res = NULL;
25024 int _mark = p->mark;
25025 int _start_mark = p->mark;
25026 void **_children = PyMem_Malloc(sizeof(void *));
25027 if (!_children) {
25028 p->error_indicator = 1;
25029 PyErr_NoMemory();
25030 D(p->level--);
25031 return NULL;
25032 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025033 Py_ssize_t _children_capacity = 1;
25034 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025035 { // lambda_param_with_default
25036 if (p->error_indicator) {
25037 D(p->level--);
25038 return NULL;
25039 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025040 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 +030025041 NameDefaultPair* lambda_param_with_default_var;
25042 while (
25043 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25044 )
25045 {
25046 _res = lambda_param_with_default_var;
25047 if (_n == _children_capacity) {
25048 _children_capacity *= 2;
25049 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25050 if (!_new_children) {
25051 p->error_indicator = 1;
25052 PyErr_NoMemory();
25053 D(p->level--);
25054 return NULL;
25055 }
25056 _children = _new_children;
25057 }
25058 _children[_n++] = _res;
25059 _mark = p->mark;
25060 }
25061 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025062 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25064 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025065 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025066 if (!_seq) {
25067 PyMem_Free(_children);
25068 p->error_indicator = 1;
25069 PyErr_NoMemory();
25070 D(p->level--);
25071 return NULL;
25072 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025073 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025074 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025075 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025076 D(p->level--);
25077 return _seq;
25078}
25079
Brandt Bucher145bf262021-02-26 14:51:55 -080025080// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025081static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025082_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025083{
25084 D(p->level++);
25085 if (p->error_indicator) {
25086 D(p->level--);
25087 return NULL;
25088 }
25089 void *_res = NULL;
25090 int _mark = p->mark;
25091 int _start_mark = p->mark;
25092 void **_children = PyMem_Malloc(sizeof(void *));
25093 if (!_children) {
25094 p->error_indicator = 1;
25095 PyErr_NoMemory();
25096 D(p->level--);
25097 return NULL;
25098 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025099 Py_ssize_t _children_capacity = 1;
25100 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025101 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025102 if (p->error_indicator) {
25103 D(p->level--);
25104 return NULL;
25105 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025106 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 +000025107 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025108 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025109 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025110 )
25111 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025112 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025113 if (_n == _children_capacity) {
25114 _children_capacity *= 2;
25115 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25116 if (!_new_children) {
25117 p->error_indicator = 1;
25118 PyErr_NoMemory();
25119 D(p->level--);
25120 return NULL;
25121 }
25122 _children = _new_children;
25123 }
25124 _children[_n++] = _res;
25125 _mark = p->mark;
25126 }
25127 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025128 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025130 }
25131 if (_n == 0 || p->error_indicator) {
25132 PyMem_Free(_children);
25133 D(p->level--);
25134 return NULL;
25135 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025136 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025137 if (!_seq) {
25138 PyMem_Free(_children);
25139 p->error_indicator = 1;
25140 PyErr_NoMemory();
25141 D(p->level--);
25142 return NULL;
25143 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025144 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025145 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025146 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147 D(p->level--);
25148 return _seq;
25149}
25150
Brandt Bucher145bf262021-02-26 14:51:55 -080025151// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025152static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025153_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025154{
25155 D(p->level++);
25156 if (p->error_indicator) {
25157 D(p->level--);
25158 return NULL;
25159 }
25160 void *_res = NULL;
25161 int _mark = p->mark;
25162 int _start_mark = p->mark;
25163 void **_children = PyMem_Malloc(sizeof(void *));
25164 if (!_children) {
25165 p->error_indicator = 1;
25166 PyErr_NoMemory();
25167 D(p->level--);
25168 return NULL;
25169 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025170 Py_ssize_t _children_capacity = 1;
25171 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025172 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025173 if (p->error_indicator) {
25174 D(p->level--);
25175 return NULL;
25176 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025177 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 +000025178 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025179 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025180 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025181 )
25182 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025183 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025184 if (_n == _children_capacity) {
25185 _children_capacity *= 2;
25186 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25187 if (!_new_children) {
25188 p->error_indicator = 1;
25189 PyErr_NoMemory();
25190 D(p->level--);
25191 return NULL;
25192 }
25193 _children = _new_children;
25194 }
25195 _children[_n++] = _res;
25196 _mark = p->mark;
25197 }
25198 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025199 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25201 }
25202 if (_n == 0 || p->error_indicator) {
25203 PyMem_Free(_children);
25204 D(p->level--);
25205 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025206 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025207 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025208 if (!_seq) {
25209 PyMem_Free(_children);
25210 p->error_indicator = 1;
25211 PyErr_NoMemory();
25212 D(p->level--);
25213 return NULL;
25214 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025215 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025216 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025217 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025218 D(p->level--);
25219 return _seq;
25220}
25221
Brandt Bucher145bf262021-02-26 14:51:55 -080025222// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025223static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025224_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025225{
25226 D(p->level++);
25227 if (p->error_indicator) {
25228 D(p->level--);
25229 return NULL;
25230 }
25231 void *_res = NULL;
25232 int _mark = p->mark;
25233 int _start_mark = p->mark;
25234 void **_children = PyMem_Malloc(sizeof(void *));
25235 if (!_children) {
25236 p->error_indicator = 1;
25237 PyErr_NoMemory();
25238 D(p->level--);
25239 return NULL;
25240 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025241 Py_ssize_t _children_capacity = 1;
25242 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025243 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025244 if (p->error_indicator) {
25245 D(p->level--);
25246 return NULL;
25247 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025248 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 +000025249 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025250 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025251 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025252 )
25253 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025254 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025255 if (_n == _children_capacity) {
25256 _children_capacity *= 2;
25257 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25258 if (!_new_children) {
25259 p->error_indicator = 1;
25260 PyErr_NoMemory();
25261 D(p->level--);
25262 return NULL;
25263 }
25264 _children = _new_children;
25265 }
25266 _children[_n++] = _res;
25267 _mark = p->mark;
25268 }
25269 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025270 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025272 }
25273 if (_n == 0 || p->error_indicator) {
25274 PyMem_Free(_children);
25275 D(p->level--);
25276 return NULL;
25277 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025278 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025279 if (!_seq) {
25280 PyMem_Free(_children);
25281 p->error_indicator = 1;
25282 PyErr_NoMemory();
25283 D(p->level--);
25284 return NULL;
25285 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025286 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025287 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025288 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025289 D(p->level--);
25290 return _seq;
25291}
25292
Brandt Bucher145bf262021-02-26 14:51:55 -080025293// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025294static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025295_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025296{
25297 D(p->level++);
25298 if (p->error_indicator) {
25299 D(p->level--);
25300 return NULL;
25301 }
25302 void *_res = NULL;
25303 int _mark = p->mark;
25304 int _start_mark = p->mark;
25305 void **_children = PyMem_Malloc(sizeof(void *));
25306 if (!_children) {
25307 p->error_indicator = 1;
25308 PyErr_NoMemory();
25309 D(p->level--);
25310 return NULL;
25311 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025312 Py_ssize_t _children_capacity = 1;
25313 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025314 { // lambda_param_no_default
25315 if (p->error_indicator) {
25316 D(p->level--);
25317 return NULL;
25318 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025319 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 +010025320 arg_ty lambda_param_no_default_var;
25321 while (
25322 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25323 )
25324 {
25325 _res = lambda_param_no_default_var;
25326 if (_n == _children_capacity) {
25327 _children_capacity *= 2;
25328 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25329 if (!_new_children) {
25330 p->error_indicator = 1;
25331 PyErr_NoMemory();
25332 D(p->level--);
25333 return NULL;
25334 }
25335 _children = _new_children;
25336 }
25337 _children[_n++] = _res;
25338 _mark = p->mark;
25339 }
25340 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025341 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025344 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025345 if (!_seq) {
25346 PyMem_Free(_children);
25347 p->error_indicator = 1;
25348 PyErr_NoMemory();
25349 D(p->level--);
25350 return NULL;
25351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025352 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025353 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025354 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025355 D(p->level--);
25356 return _seq;
25357}
25358
Brandt Bucher145bf262021-02-26 14:51:55 -080025359// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025360static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025361_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025362{
25363 D(p->level++);
25364 if (p->error_indicator) {
25365 D(p->level--);
25366 return NULL;
25367 }
25368 void *_res = NULL;
25369 int _mark = p->mark;
25370 int _start_mark = p->mark;
25371 void **_children = PyMem_Malloc(sizeof(void *));
25372 if (!_children) {
25373 p->error_indicator = 1;
25374 PyErr_NoMemory();
25375 D(p->level--);
25376 return NULL;
25377 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025378 Py_ssize_t _children_capacity = 1;
25379 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025380 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025381 if (p->error_indicator) {
25382 D(p->level--);
25383 return NULL;
25384 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025385 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 +000025386 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025387 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025388 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025389 )
25390 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025391 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025392 if (_n == _children_capacity) {
25393 _children_capacity *= 2;
25394 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25395 if (!_new_children) {
25396 p->error_indicator = 1;
25397 PyErr_NoMemory();
25398 D(p->level--);
25399 return NULL;
25400 }
25401 _children = _new_children;
25402 }
25403 _children[_n++] = _res;
25404 _mark = p->mark;
25405 }
25406 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025407 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025409 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025410 if (_n == 0 || p->error_indicator) {
25411 PyMem_Free(_children);
25412 D(p->level--);
25413 return NULL;
25414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025416 if (!_seq) {
25417 PyMem_Free(_children);
25418 p->error_indicator = 1;
25419 PyErr_NoMemory();
25420 D(p->level--);
25421 return NULL;
25422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025424 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025425 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025426 D(p->level--);
25427 return _seq;
25428}
25429
Brandt Bucher145bf262021-02-26 14:51:55 -080025430// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025431static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025432_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025433{
25434 D(p->level++);
25435 if (p->error_indicator) {
25436 D(p->level--);
25437 return NULL;
25438 }
25439 void *_res = NULL;
25440 int _mark = p->mark;
25441 int _start_mark = p->mark;
25442 void **_children = PyMem_Malloc(sizeof(void *));
25443 if (!_children) {
25444 p->error_indicator = 1;
25445 PyErr_NoMemory();
25446 D(p->level--);
25447 return NULL;
25448 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025449 Py_ssize_t _children_capacity = 1;
25450 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025451 { // lambda_param_no_default
25452 if (p->error_indicator) {
25453 D(p->level--);
25454 return NULL;
25455 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025456 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 +010025457 arg_ty lambda_param_no_default_var;
25458 while (
25459 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
25460 )
25461 {
25462 _res = lambda_param_no_default_var;
25463 if (_n == _children_capacity) {
25464 _children_capacity *= 2;
25465 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25466 if (!_new_children) {
25467 p->error_indicator = 1;
25468 PyErr_NoMemory();
25469 D(p->level--);
25470 return NULL;
25471 }
25472 _children = _new_children;
25473 }
25474 _children[_n++] = _res;
25475 _mark = p->mark;
25476 }
25477 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025478 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
25480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025481 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 if (!_seq) {
25483 PyMem_Free(_children);
25484 p->error_indicator = 1;
25485 PyErr_NoMemory();
25486 D(p->level--);
25487 return NULL;
25488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025489 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025490 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025491 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025492 D(p->level--);
25493 return _seq;
25494}
25495
Brandt Bucher145bf262021-02-26 14:51:55 -080025496// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025497static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025498_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025499{
25500 D(p->level++);
25501 if (p->error_indicator) {
25502 D(p->level--);
25503 return NULL;
25504 }
25505 void *_res = NULL;
25506 int _mark = p->mark;
25507 int _start_mark = p->mark;
25508 void **_children = PyMem_Malloc(sizeof(void *));
25509 if (!_children) {
25510 p->error_indicator = 1;
25511 PyErr_NoMemory();
25512 D(p->level--);
25513 return NULL;
25514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025515 Py_ssize_t _children_capacity = 1;
25516 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025517 { // lambda_param_with_default
25518 if (p->error_indicator) {
25519 D(p->level--);
25520 return NULL;
25521 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025522 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 +010025523 NameDefaultPair* lambda_param_with_default_var;
25524 while (
25525 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
25526 )
25527 {
25528 _res = lambda_param_with_default_var;
25529 if (_n == _children_capacity) {
25530 _children_capacity *= 2;
25531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25532 if (!_new_children) {
25533 p->error_indicator = 1;
25534 PyErr_NoMemory();
25535 D(p->level--);
25536 return NULL;
25537 }
25538 _children = _new_children;
25539 }
25540 _children[_n++] = _res;
25541 _mark = p->mark;
25542 }
25543 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025544 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
25546 }
25547 if (_n == 0 || p->error_indicator) {
25548 PyMem_Free(_children);
25549 D(p->level--);
25550 return NULL;
25551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025552 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553 if (!_seq) {
25554 PyMem_Free(_children);
25555 p->error_indicator = 1;
25556 PyErr_NoMemory();
25557 D(p->level--);
25558 return NULL;
25559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025560 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025561 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025562 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025563 D(p->level--);
25564 return _seq;
25565}
25566
Brandt Bucher145bf262021-02-26 14:51:55 -080025567// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025568static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025569_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025570{
25571 D(p->level++);
25572 if (p->error_indicator) {
25573 D(p->level--);
25574 return NULL;
25575 }
25576 void *_res = NULL;
25577 int _mark = p->mark;
25578 int _start_mark = p->mark;
25579 void **_children = PyMem_Malloc(sizeof(void *));
25580 if (!_children) {
25581 p->error_indicator = 1;
25582 PyErr_NoMemory();
25583 D(p->level--);
25584 return NULL;
25585 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025586 Py_ssize_t _children_capacity = 1;
25587 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025588 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025589 if (p->error_indicator) {
25590 D(p->level--);
25591 return NULL;
25592 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025593 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 +000025594 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025595 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025596 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025597 )
25598 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025599 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600 if (_n == _children_capacity) {
25601 _children_capacity *= 2;
25602 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25603 if (!_new_children) {
25604 p->error_indicator = 1;
25605 PyErr_NoMemory();
25606 D(p->level--);
25607 return NULL;
25608 }
25609 _children = _new_children;
25610 }
25611 _children[_n++] = _res;
25612 _mark = p->mark;
25613 }
25614 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025615 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025618 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025619 if (!_seq) {
25620 PyMem_Free(_children);
25621 p->error_indicator = 1;
25622 PyErr_NoMemory();
25623 D(p->level--);
25624 return NULL;
25625 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025626 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025627 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025628 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025629 D(p->level--);
25630 return _seq;
25631}
25632
Brandt Bucher145bf262021-02-26 14:51:55 -080025633// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025634static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025635_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025636{
25637 D(p->level++);
25638 if (p->error_indicator) {
25639 D(p->level--);
25640 return NULL;
25641 }
25642 void *_res = NULL;
25643 int _mark = p->mark;
25644 int _start_mark = p->mark;
25645 void **_children = PyMem_Malloc(sizeof(void *));
25646 if (!_children) {
25647 p->error_indicator = 1;
25648 PyErr_NoMemory();
25649 D(p->level--);
25650 return NULL;
25651 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025652 Py_ssize_t _children_capacity = 1;
25653 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025654 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025655 if (p->error_indicator) {
25656 D(p->level--);
25657 return NULL;
25658 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025659 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 +000025660 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025661 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025662 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025663 )
25664 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025665 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025666 if (_n == _children_capacity) {
25667 _children_capacity *= 2;
25668 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25669 if (!_new_children) {
25670 p->error_indicator = 1;
25671 PyErr_NoMemory();
25672 D(p->level--);
25673 return NULL;
25674 }
25675 _children = _new_children;
25676 }
25677 _children[_n++] = _res;
25678 _mark = p->mark;
25679 }
25680 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025681 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025683 }
25684 if (_n == 0 || p->error_indicator) {
25685 PyMem_Free(_children);
25686 D(p->level--);
25687 return NULL;
25688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025689 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025690 if (!_seq) {
25691 PyMem_Free(_children);
25692 p->error_indicator = 1;
25693 PyErr_NoMemory();
25694 D(p->level--);
25695 return NULL;
25696 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025697 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025698 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025699 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025700 D(p->level--);
25701 return _seq;
25702}
25703
Brandt Bucher145bf262021-02-26 14:51:55 -080025704// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025705static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025706_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025707{
25708 D(p->level++);
25709 if (p->error_indicator) {
25710 D(p->level--);
25711 return NULL;
25712 }
25713 void *_res = NULL;
25714 int _mark = p->mark;
25715 int _start_mark = p->mark;
25716 void **_children = PyMem_Malloc(sizeof(void *));
25717 if (!_children) {
25718 p->error_indicator = 1;
25719 PyErr_NoMemory();
25720 D(p->level--);
25721 return NULL;
25722 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025723 Py_ssize_t _children_capacity = 1;
25724 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025725 { // ('or' conjunction)
25726 if (p->error_indicator) {
25727 D(p->level--);
25728 return NULL;
25729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025730 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindob2802482021-04-15 21:38:45 +010025731 void *_tmp_175_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025732 while (
Pablo Galindob2802482021-04-15 21:38:45 +010025733 (_tmp_175_var = _tmp_175_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025734 )
25735 {
Pablo Galindob2802482021-04-15 21:38:45 +010025736 _res = _tmp_175_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025737 if (_n == _children_capacity) {
25738 _children_capacity *= 2;
25739 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25740 if (!_new_children) {
25741 p->error_indicator = 1;
25742 PyErr_NoMemory();
25743 D(p->level--);
25744 return NULL;
25745 }
25746 _children = _new_children;
25747 }
25748 _children[_n++] = _res;
25749 _mark = p->mark;
25750 }
25751 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025752 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
25754 }
25755 if (_n == 0 || p->error_indicator) {
25756 PyMem_Free(_children);
25757 D(p->level--);
25758 return NULL;
25759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025760 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025761 if (!_seq) {
25762 PyMem_Free(_children);
25763 p->error_indicator = 1;
25764 PyErr_NoMemory();
25765 D(p->level--);
25766 return NULL;
25767 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025768 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025769 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025770 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025771 D(p->level--);
25772 return _seq;
25773}
25774
Brandt Bucher145bf262021-02-26 14:51:55 -080025775// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025776static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025777_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025778{
25779 D(p->level++);
25780 if (p->error_indicator) {
25781 D(p->level--);
25782 return NULL;
25783 }
25784 void *_res = NULL;
25785 int _mark = p->mark;
25786 int _start_mark = p->mark;
25787 void **_children = PyMem_Malloc(sizeof(void *));
25788 if (!_children) {
25789 p->error_indicator = 1;
25790 PyErr_NoMemory();
25791 D(p->level--);
25792 return NULL;
25793 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025794 Py_ssize_t _children_capacity = 1;
25795 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025796 { // ('and' inversion)
25797 if (p->error_indicator) {
25798 D(p->level--);
25799 return NULL;
25800 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025801 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindob2802482021-04-15 21:38:45 +010025802 void *_tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025803 while (
Pablo Galindob2802482021-04-15 21:38:45 +010025804 (_tmp_176_var = _tmp_176_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025805 )
25806 {
Pablo Galindob2802482021-04-15 21:38:45 +010025807 _res = _tmp_176_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025808 if (_n == _children_capacity) {
25809 _children_capacity *= 2;
25810 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25811 if (!_new_children) {
25812 p->error_indicator = 1;
25813 PyErr_NoMemory();
25814 D(p->level--);
25815 return NULL;
25816 }
25817 _children = _new_children;
25818 }
25819 _children[_n++] = _res;
25820 _mark = p->mark;
25821 }
25822 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025823 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
25825 }
25826 if (_n == 0 || p->error_indicator) {
25827 PyMem_Free(_children);
25828 D(p->level--);
25829 return NULL;
25830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025831 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025832 if (!_seq) {
25833 PyMem_Free(_children);
25834 p->error_indicator = 1;
25835 PyErr_NoMemory();
25836 D(p->level--);
25837 return NULL;
25838 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025839 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025840 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025841 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025842 D(p->level--);
25843 return _seq;
25844}
25845
Brandt Bucher145bf262021-02-26 14:51:55 -080025846// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025847static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025848_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025849{
25850 D(p->level++);
25851 if (p->error_indicator) {
25852 D(p->level--);
25853 return NULL;
25854 }
25855 void *_res = NULL;
25856 int _mark = p->mark;
25857 int _start_mark = p->mark;
25858 void **_children = PyMem_Malloc(sizeof(void *));
25859 if (!_children) {
25860 p->error_indicator = 1;
25861 PyErr_NoMemory();
25862 D(p->level--);
25863 return NULL;
25864 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025865 Py_ssize_t _children_capacity = 1;
25866 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025867 { // compare_op_bitwise_or_pair
25868 if (p->error_indicator) {
25869 D(p->level--);
25870 return NULL;
25871 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025872 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 +010025873 CmpopExprPair* compare_op_bitwise_or_pair_var;
25874 while (
25875 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
25876 )
25877 {
25878 _res = compare_op_bitwise_or_pair_var;
25879 if (_n == _children_capacity) {
25880 _children_capacity *= 2;
25881 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25882 if (!_new_children) {
25883 p->error_indicator = 1;
25884 PyErr_NoMemory();
25885 D(p->level--);
25886 return NULL;
25887 }
25888 _children = _new_children;
25889 }
25890 _children[_n++] = _res;
25891 _mark = p->mark;
25892 }
25893 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025894 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
25896 }
25897 if (_n == 0 || p->error_indicator) {
25898 PyMem_Free(_children);
25899 D(p->level--);
25900 return NULL;
25901 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025902 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025903 if (!_seq) {
25904 PyMem_Free(_children);
25905 p->error_indicator = 1;
25906 PyErr_NoMemory();
25907 D(p->level--);
25908 return NULL;
25909 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025910 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025911 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025912 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025913 D(p->level--);
25914 return _seq;
25915}
25916
Brandt Bucher145bf262021-02-26 14:51:55 -080025917// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025918static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025919_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025920{
25921 D(p->level++);
25922 if (p->error_indicator) {
25923 D(p->level--);
25924 return NULL;
25925 }
25926 void * _res = NULL;
25927 int _mark = p->mark;
25928 { // '!='
25929 if (p->error_indicator) {
25930 D(p->level--);
25931 return NULL;
25932 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025933 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025934 Token * tok;
25935 if (
25936 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25937 )
25938 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025939 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025940 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025941 if (_res == NULL && PyErr_Occurred()) {
25942 p->error_indicator = 1;
25943 D(p->level--);
25944 return NULL;
25945 }
25946 goto done;
25947 }
25948 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025949 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25951 }
25952 _res = NULL;
25953 done:
25954 D(p->level--);
25955 return _res;
25956}
25957
Brandt Bucher145bf262021-02-26 14:51:55 -080025958// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025959static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025960_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025961{
25962 D(p->level++);
25963 if (p->error_indicator) {
25964 D(p->level--);
25965 return NULL;
25966 }
25967 void *_res = NULL;
25968 int _mark = p->mark;
25969 int _start_mark = p->mark;
25970 void **_children = PyMem_Malloc(sizeof(void *));
25971 if (!_children) {
25972 p->error_indicator = 1;
25973 PyErr_NoMemory();
25974 D(p->level--);
25975 return NULL;
25976 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025977 Py_ssize_t _children_capacity = 1;
25978 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025979 { // ',' slice
25980 if (p->error_indicator) {
25981 D(p->level--);
25982 return NULL;
25983 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025984 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025985 Token * _literal;
25986 expr_ty elem;
25987 while (
25988 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25989 &&
25990 (elem = slice_rule(p)) // slice
25991 )
25992 {
25993 _res = elem;
25994 if (_res == NULL && PyErr_Occurred()) {
25995 p->error_indicator = 1;
25996 PyMem_Free(_children);
25997 D(p->level--);
25998 return NULL;
25999 }
26000 if (_n == _children_capacity) {
26001 _children_capacity *= 2;
26002 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26003 if (!_new_children) {
26004 p->error_indicator = 1;
26005 PyErr_NoMemory();
26006 D(p->level--);
26007 return NULL;
26008 }
26009 _children = _new_children;
26010 }
26011 _children[_n++] = _res;
26012 _mark = p->mark;
26013 }
26014 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026015 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
26017 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026018 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026019 if (!_seq) {
26020 PyMem_Free(_children);
26021 p->error_indicator = 1;
26022 PyErr_NoMemory();
26023 D(p->level--);
26024 return NULL;
26025 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026026 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026027 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026028 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026029 D(p->level--);
26030 return _seq;
26031}
26032
Brandt Bucher145bf262021-02-26 14:51:55 -080026033// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026034static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026035_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026036{
26037 D(p->level++);
26038 if (p->error_indicator) {
26039 D(p->level--);
26040 return NULL;
26041 }
26042 asdl_seq * _res = NULL;
26043 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026044 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026045 if (p->error_indicator) {
26046 D(p->level--);
26047 return NULL;
26048 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026049 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 +010026050 expr_ty elem;
26051 asdl_seq * seq;
26052 if (
26053 (elem = slice_rule(p)) // slice
26054 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026055 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026056 )
26057 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026058 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 +010026059 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26060 goto done;
26061 }
26062 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026063 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
26064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026065 }
26066 _res = NULL;
26067 done:
26068 D(p->level--);
26069 return _res;
26070}
26071
Brandt Bucher145bf262021-02-26 14:51:55 -080026072// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026073static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026074_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026075{
26076 D(p->level++);
26077 if (p->error_indicator) {
26078 D(p->level--);
26079 return NULL;
26080 }
26081 void * _res = NULL;
26082 int _mark = p->mark;
26083 { // ':' expression?
26084 if (p->error_indicator) {
26085 D(p->level--);
26086 return NULL;
26087 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026088 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026089 Token * _literal;
26090 void *d;
26091 if (
26092 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
26093 &&
26094 (d = expression_rule(p), 1) // expression?
26095 )
26096 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026097 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026098 _res = d;
26099 if (_res == NULL && PyErr_Occurred()) {
26100 p->error_indicator = 1;
26101 D(p->level--);
26102 return NULL;
26103 }
26104 goto done;
26105 }
26106 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026107 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
26109 }
26110 _res = NULL;
26111 done:
26112 D(p->level--);
26113 return _res;
26114}
26115
Brandt Bucher145bf262021-02-26 14:51:55 -080026116// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026117static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026118_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026119{
26120 D(p->level++);
26121 if (p->error_indicator) {
26122 D(p->level--);
26123 return NULL;
26124 }
26125 void * _res = NULL;
26126 int _mark = p->mark;
26127 { // tuple
26128 if (p->error_indicator) {
26129 D(p->level--);
26130 return NULL;
26131 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026132 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026133 expr_ty tuple_var;
26134 if (
26135 (tuple_var = tuple_rule(p)) // tuple
26136 )
26137 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026138 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026139 _res = tuple_var;
26140 goto done;
26141 }
26142 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026143 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
26145 }
26146 { // group
26147 if (p->error_indicator) {
26148 D(p->level--);
26149 return NULL;
26150 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026151 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026152 expr_ty group_var;
26153 if (
26154 (group_var = group_rule(p)) // group
26155 )
26156 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026157 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026158 _res = group_var;
26159 goto done;
26160 }
26161 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026162 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
26164 }
26165 { // genexp
26166 if (p->error_indicator) {
26167 D(p->level--);
26168 return NULL;
26169 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026170 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 expr_ty genexp_var;
26172 if (
26173 (genexp_var = genexp_rule(p)) // genexp
26174 )
26175 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026176 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026177 _res = genexp_var;
26178 goto done;
26179 }
26180 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026181 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
26183 }
26184 _res = NULL;
26185 done:
26186 D(p->level--);
26187 return _res;
26188}
26189
Brandt Bucher145bf262021-02-26 14:51:55 -080026190// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026191static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026192_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026193{
26194 D(p->level++);
26195 if (p->error_indicator) {
26196 D(p->level--);
26197 return NULL;
26198 }
26199 void * _res = NULL;
26200 int _mark = p->mark;
26201 { // list
26202 if (p->error_indicator) {
26203 D(p->level--);
26204 return NULL;
26205 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026206 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026207 expr_ty list_var;
26208 if (
26209 (list_var = list_rule(p)) // list
26210 )
26211 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026212 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026213 _res = list_var;
26214 goto done;
26215 }
26216 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026217 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
26219 }
26220 { // listcomp
26221 if (p->error_indicator) {
26222 D(p->level--);
26223 return NULL;
26224 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026225 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026226 expr_ty listcomp_var;
26227 if (
26228 (listcomp_var = listcomp_rule(p)) // listcomp
26229 )
26230 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026231 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026232 _res = listcomp_var;
26233 goto done;
26234 }
26235 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026236 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
26238 }
26239 _res = NULL;
26240 done:
26241 D(p->level--);
26242 return _res;
26243}
26244
Brandt Bucher145bf262021-02-26 14:51:55 -080026245// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026246static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026247_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026248{
26249 D(p->level++);
26250 if (p->error_indicator) {
26251 D(p->level--);
26252 return NULL;
26253 }
26254 void * _res = NULL;
26255 int _mark = p->mark;
26256 { // dict
26257 if (p->error_indicator) {
26258 D(p->level--);
26259 return NULL;
26260 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026261 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026262 expr_ty dict_var;
26263 if (
26264 (dict_var = dict_rule(p)) // dict
26265 )
26266 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026267 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026268 _res = dict_var;
26269 goto done;
26270 }
26271 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026272 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
26274 }
26275 { // set
26276 if (p->error_indicator) {
26277 D(p->level--);
26278 return NULL;
26279 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026280 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026281 expr_ty set_var;
26282 if (
26283 (set_var = set_rule(p)) // set
26284 )
26285 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026286 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026287 _res = set_var;
26288 goto done;
26289 }
26290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026291 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
26293 }
26294 { // dictcomp
26295 if (p->error_indicator) {
26296 D(p->level--);
26297 return NULL;
26298 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026299 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026300 expr_ty dictcomp_var;
26301 if (
26302 (dictcomp_var = dictcomp_rule(p)) // dictcomp
26303 )
26304 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026305 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026306 _res = dictcomp_var;
26307 goto done;
26308 }
26309 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026310 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
26312 }
26313 { // setcomp
26314 if (p->error_indicator) {
26315 D(p->level--);
26316 return NULL;
26317 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026318 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026319 expr_ty setcomp_var;
26320 if (
26321 (setcomp_var = setcomp_rule(p)) // setcomp
26322 )
26323 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026324 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026325 _res = setcomp_var;
26326 goto done;
26327 }
26328 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026329 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
26331 }
26332 _res = NULL;
26333 done:
26334 D(p->level--);
26335 return _res;
26336}
26337
Brandt Bucher145bf262021-02-26 14:51:55 -080026338// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026339static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026340_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026341{
26342 D(p->level++);
26343 if (p->error_indicator) {
26344 D(p->level--);
26345 return NULL;
26346 }
26347 void *_res = NULL;
26348 int _mark = p->mark;
26349 int _start_mark = p->mark;
26350 void **_children = PyMem_Malloc(sizeof(void *));
26351 if (!_children) {
26352 p->error_indicator = 1;
26353 PyErr_NoMemory();
26354 D(p->level--);
26355 return NULL;
26356 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026357 Py_ssize_t _children_capacity = 1;
26358 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026359 { // STRING
26360 if (p->error_indicator) {
26361 D(p->level--);
26362 return NULL;
26363 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026364 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365 expr_ty string_var;
26366 while (
26367 (string_var = _PyPegen_string_token(p)) // STRING
26368 )
26369 {
26370 _res = string_var;
26371 if (_n == _children_capacity) {
26372 _children_capacity *= 2;
26373 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26374 if (!_new_children) {
26375 p->error_indicator = 1;
26376 PyErr_NoMemory();
26377 D(p->level--);
26378 return NULL;
26379 }
26380 _children = _new_children;
26381 }
26382 _children[_n++] = _res;
26383 _mark = p->mark;
26384 }
26385 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026386 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
26388 }
26389 if (_n == 0 || p->error_indicator) {
26390 PyMem_Free(_children);
26391 D(p->level--);
26392 return NULL;
26393 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026394 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026395 if (!_seq) {
26396 PyMem_Free(_children);
26397 p->error_indicator = 1;
26398 PyErr_NoMemory();
26399 D(p->level--);
26400 return NULL;
26401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026402 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026403 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026404 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026405 D(p->level--);
26406 return _seq;
26407}
26408
Brandt Bucher145bf262021-02-26 14:51:55 -080026409// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026410static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026411_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026412{
26413 D(p->level++);
26414 if (p->error_indicator) {
26415 D(p->level--);
26416 return NULL;
26417 }
26418 void * _res = NULL;
26419 int _mark = p->mark;
26420 { // star_named_expression ',' star_named_expressions?
26421 if (p->error_indicator) {
26422 D(p->level--);
26423 return NULL;
26424 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026425 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 +010026426 Token * _literal;
26427 expr_ty y;
26428 void *z;
26429 if (
26430 (y = star_named_expression_rule(p)) // star_named_expression
26431 &&
26432 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26433 &&
26434 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
26435 )
26436 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026437 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 +010026438 _res = _PyPegen_seq_insert_in_front ( p , y , z );
26439 if (_res == NULL && PyErr_Occurred()) {
26440 p->error_indicator = 1;
26441 D(p->level--);
26442 return NULL;
26443 }
26444 goto done;
26445 }
26446 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026447 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
26449 }
26450 _res = NULL;
26451 done:
26452 D(p->level--);
26453 return _res;
26454}
26455
Brandt Bucher145bf262021-02-26 14:51:55 -080026456// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026457static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026458_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026459{
26460 D(p->level++);
26461 if (p->error_indicator) {
26462 D(p->level--);
26463 return NULL;
26464 }
26465 void * _res = NULL;
26466 int _mark = p->mark;
26467 { // yield_expr
26468 if (p->error_indicator) {
26469 D(p->level--);
26470 return NULL;
26471 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026472 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026473 expr_ty yield_expr_var;
26474 if (
26475 (yield_expr_var = yield_expr_rule(p)) // yield_expr
26476 )
26477 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026478 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 +010026479 _res = yield_expr_var;
26480 goto done;
26481 }
26482 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026483 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
26485 }
26486 { // named_expression
26487 if (p->error_indicator) {
26488 D(p->level--);
26489 return NULL;
26490 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026491 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026492 expr_ty named_expression_var;
26493 if (
26494 (named_expression_var = named_expression_rule(p)) // named_expression
26495 )
26496 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026497 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 +010026498 _res = named_expression_var;
26499 goto done;
26500 }
26501 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026502 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
26504 }
26505 _res = NULL;
26506 done:
26507 D(p->level--);
26508 return _res;
26509}
26510
Brandt Bucher145bf262021-02-26 14:51:55 -080026511// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026512static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026513_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026514{
26515 D(p->level++);
26516 if (p->error_indicator) {
26517 D(p->level--);
26518 return NULL;
26519 }
26520 void *_res = NULL;
26521 int _mark = p->mark;
26522 int _start_mark = p->mark;
26523 void **_children = PyMem_Malloc(sizeof(void *));
26524 if (!_children) {
26525 p->error_indicator = 1;
26526 PyErr_NoMemory();
26527 D(p->level--);
26528 return NULL;
26529 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026530 Py_ssize_t _children_capacity = 1;
26531 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026532 { // ',' double_starred_kvpair
26533 if (p->error_indicator) {
26534 D(p->level--);
26535 return NULL;
26536 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026537 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026538 Token * _literal;
26539 KeyValuePair* elem;
26540 while (
26541 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26542 &&
26543 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26544 )
26545 {
26546 _res = elem;
26547 if (_res == NULL && PyErr_Occurred()) {
26548 p->error_indicator = 1;
26549 PyMem_Free(_children);
26550 D(p->level--);
26551 return NULL;
26552 }
26553 if (_n == _children_capacity) {
26554 _children_capacity *= 2;
26555 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26556 if (!_new_children) {
26557 p->error_indicator = 1;
26558 PyErr_NoMemory();
26559 D(p->level--);
26560 return NULL;
26561 }
26562 _children = _new_children;
26563 }
26564 _children[_n++] = _res;
26565 _mark = p->mark;
26566 }
26567 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026568 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
26570 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026571 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026572 if (!_seq) {
26573 PyMem_Free(_children);
26574 p->error_indicator = 1;
26575 PyErr_NoMemory();
26576 D(p->level--);
26577 return NULL;
26578 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026579 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026580 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026581 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026582 D(p->level--);
26583 return _seq;
26584}
26585
Brandt Bucher145bf262021-02-26 14:51:55 -080026586// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026587static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026588_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026589{
26590 D(p->level++);
26591 if (p->error_indicator) {
26592 D(p->level--);
26593 return NULL;
26594 }
26595 asdl_seq * _res = NULL;
26596 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026597 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026598 if (p->error_indicator) {
26599 D(p->level--);
26600 return NULL;
26601 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026602 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026603 KeyValuePair* elem;
26604 asdl_seq * seq;
26605 if (
26606 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
26607 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026608 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026609 )
26610 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026611 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026612 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26613 goto done;
26614 }
26615 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026616 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
26617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026618 }
26619 _res = NULL;
26620 done:
26621 D(p->level--);
26622 return _res;
26623}
26624
Brandt Bucher145bf262021-02-26 14:51:55 -080026625// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026626static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026627_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026628{
26629 D(p->level++);
26630 if (p->error_indicator) {
26631 D(p->level--);
26632 return NULL;
26633 }
26634 void *_res = NULL;
26635 int _mark = p->mark;
26636 int _start_mark = p->mark;
26637 void **_children = PyMem_Malloc(sizeof(void *));
26638 if (!_children) {
26639 p->error_indicator = 1;
26640 PyErr_NoMemory();
26641 D(p->level--);
26642 return NULL;
26643 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026644 Py_ssize_t _children_capacity = 1;
26645 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026646 { // for_if_clause
26647 if (p->error_indicator) {
26648 D(p->level--);
26649 return NULL;
26650 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026651 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026652 comprehension_ty for_if_clause_var;
26653 while (
26654 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
26655 )
26656 {
26657 _res = for_if_clause_var;
26658 if (_n == _children_capacity) {
26659 _children_capacity *= 2;
26660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26661 if (!_new_children) {
26662 p->error_indicator = 1;
26663 PyErr_NoMemory();
26664 D(p->level--);
26665 return NULL;
26666 }
26667 _children = _new_children;
26668 }
26669 _children[_n++] = _res;
26670 _mark = p->mark;
26671 }
26672 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026673 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
26675 }
26676 if (_n == 0 || p->error_indicator) {
26677 PyMem_Free(_children);
26678 D(p->level--);
26679 return NULL;
26680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026681 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026682 if (!_seq) {
26683 PyMem_Free(_children);
26684 p->error_indicator = 1;
26685 PyErr_NoMemory();
26686 D(p->level--);
26687 return NULL;
26688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026689 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026690 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026691 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026692 D(p->level--);
26693 return _seq;
26694}
26695
Brandt Bucher145bf262021-02-26 14:51:55 -080026696// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026697static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026698_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026699{
26700 D(p->level++);
26701 if (p->error_indicator) {
26702 D(p->level--);
26703 return NULL;
26704 }
26705 void *_res = NULL;
26706 int _mark = p->mark;
26707 int _start_mark = p->mark;
26708 void **_children = PyMem_Malloc(sizeof(void *));
26709 if (!_children) {
26710 p->error_indicator = 1;
26711 PyErr_NoMemory();
26712 D(p->level--);
26713 return NULL;
26714 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026715 Py_ssize_t _children_capacity = 1;
26716 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026717 { // ('if' disjunction)
26718 if (p->error_indicator) {
26719 D(p->level--);
26720 return NULL;
26721 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026722 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindob2802482021-04-15 21:38:45 +010026723 void *_tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026724 while (
Pablo Galindob2802482021-04-15 21:38:45 +010026725 (_tmp_177_var = _tmp_177_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026726 )
26727 {
Pablo Galindob2802482021-04-15 21:38:45 +010026728 _res = _tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026729 if (_n == _children_capacity) {
26730 _children_capacity *= 2;
26731 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26732 if (!_new_children) {
26733 p->error_indicator = 1;
26734 PyErr_NoMemory();
26735 D(p->level--);
26736 return NULL;
26737 }
26738 _children = _new_children;
26739 }
26740 _children[_n++] = _res;
26741 _mark = p->mark;
26742 }
26743 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026744 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26746 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026747 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026748 if (!_seq) {
26749 PyMem_Free(_children);
26750 p->error_indicator = 1;
26751 PyErr_NoMemory();
26752 D(p->level--);
26753 return NULL;
26754 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026755 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026756 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026757 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026758 D(p->level--);
26759 return _seq;
26760}
26761
Brandt Bucher145bf262021-02-26 14:51:55 -080026762// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026763static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026764_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026765{
26766 D(p->level++);
26767 if (p->error_indicator) {
26768 D(p->level--);
26769 return NULL;
26770 }
26771 void *_res = NULL;
26772 int _mark = p->mark;
26773 int _start_mark = p->mark;
26774 void **_children = PyMem_Malloc(sizeof(void *));
26775 if (!_children) {
26776 p->error_indicator = 1;
26777 PyErr_NoMemory();
26778 D(p->level--);
26779 return NULL;
26780 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026781 Py_ssize_t _children_capacity = 1;
26782 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026783 { // ('if' disjunction)
26784 if (p->error_indicator) {
26785 D(p->level--);
26786 return NULL;
26787 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026788 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindob2802482021-04-15 21:38:45 +010026789 void *_tmp_178_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026790 while (
Pablo Galindob2802482021-04-15 21:38:45 +010026791 (_tmp_178_var = _tmp_178_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026792 )
26793 {
Pablo Galindob2802482021-04-15 21:38:45 +010026794 _res = _tmp_178_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026795 if (_n == _children_capacity) {
26796 _children_capacity *= 2;
26797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26798 if (!_new_children) {
26799 p->error_indicator = 1;
26800 PyErr_NoMemory();
26801 D(p->level--);
26802 return NULL;
26803 }
26804 _children = _new_children;
26805 }
26806 _children[_n++] = _res;
26807 _mark = p->mark;
26808 }
26809 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026810 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26812 }
26813 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26814 if (!_seq) {
26815 PyMem_Free(_children);
26816 p->error_indicator = 1;
26817 PyErr_NoMemory();
26818 D(p->level--);
26819 return NULL;
26820 }
26821 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26822 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026823 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026824 D(p->level--);
26825 return _seq;
26826}
26827
Pablo Galindod9151cb2021-04-13 02:32:33 +010026828// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026829static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026830_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026831{
26832 D(p->level++);
26833 if (p->error_indicator) {
26834 D(p->level--);
26835 return NULL;
26836 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026837 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026838 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026839 int _start_mark = p->mark;
26840 void **_children = PyMem_Malloc(sizeof(void *));
26841 if (!_children) {
26842 p->error_indicator = 1;
26843 PyErr_NoMemory();
26844 D(p->level--);
26845 return NULL;
26846 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026847 Py_ssize_t _children_capacity = 1;
26848 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026849 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010026850 if (p->error_indicator) {
26851 D(p->level--);
26852 return NULL;
26853 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026854 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010026855 Token * _literal;
26856 void *elem;
26857 while (
26858 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26859 &&
Pablo Galindob2802482021-04-15 21:38:45 +010026860 (elem = _tmp_179_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026861 )
26862 {
26863 _res = elem;
26864 if (_res == NULL && PyErr_Occurred()) {
26865 p->error_indicator = 1;
26866 PyMem_Free(_children);
26867 D(p->level--);
26868 return NULL;
26869 }
26870 if (_n == _children_capacity) {
26871 _children_capacity *= 2;
26872 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26873 if (!_new_children) {
26874 p->error_indicator = 1;
26875 PyErr_NoMemory();
26876 D(p->level--);
26877 return NULL;
26878 }
26879 _children = _new_children;
26880 }
26881 _children[_n++] = _res;
26882 _mark = p->mark;
26883 }
26884 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026885 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026887 }
26888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26889 if (!_seq) {
26890 PyMem_Free(_children);
26891 p->error_indicator = 1;
26892 PyErr_NoMemory();
26893 D(p->level--);
26894 return NULL;
26895 }
26896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26897 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026898 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026899 D(p->level--);
26900 return _seq;
26901}
26902
Pablo Galindod9151cb2021-04-13 02:32:33 +010026903// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026904static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026905_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026906{
26907 D(p->level++);
26908 if (p->error_indicator) {
26909 D(p->level--);
26910 return NULL;
26911 }
26912 asdl_seq * _res = NULL;
26913 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010026914 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026915 if (p->error_indicator) {
26916 D(p->level--);
26917 return NULL;
26918 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010026919 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080026920 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026921 asdl_seq * seq;
26922 if (
Pablo Galindob2802482021-04-15 21:38:45 +010026923 (elem = _tmp_179_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026924 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026925 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026926 )
26927 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010026928 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026929 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26930 goto done;
26931 }
26932 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026933 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010026934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026935 }
26936 _res = NULL;
26937 done:
26938 D(p->level--);
26939 return _res;
26940}
26941
Brandt Bucher145bf262021-02-26 14:51:55 -080026942// _tmp_124: ',' kwargs
26943static void *
26944_tmp_124_rule(Parser *p)
26945{
26946 D(p->level++);
26947 if (p->error_indicator) {
26948 D(p->level--);
26949 return NULL;
26950 }
26951 void * _res = NULL;
26952 int _mark = p->mark;
26953 { // ',' kwargs
26954 if (p->error_indicator) {
26955 D(p->level--);
26956 return NULL;
26957 }
26958 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26959 Token * _literal;
26960 asdl_seq* k;
26961 if (
26962 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26963 &&
26964 (k = kwargs_rule(p)) // kwargs
26965 )
26966 {
26967 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26968 _res = k;
26969 if (_res == NULL && PyErr_Occurred()) {
26970 p->error_indicator = 1;
26971 D(p->level--);
26972 return NULL;
26973 }
26974 goto done;
26975 }
26976 p->mark = _mark;
26977 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26979 }
26980 _res = NULL;
26981 done:
26982 D(p->level--);
26983 return _res;
26984}
26985
26986// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026987static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026988_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026989{
26990 D(p->level++);
26991 if (p->error_indicator) {
26992 D(p->level--);
26993 return NULL;
26994 }
26995 void *_res = NULL;
26996 int _mark = p->mark;
26997 int _start_mark = p->mark;
26998 void **_children = PyMem_Malloc(sizeof(void *));
26999 if (!_children) {
27000 p->error_indicator = 1;
27001 PyErr_NoMemory();
27002 D(p->level--);
27003 return NULL;
27004 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027005 Py_ssize_t _children_capacity = 1;
27006 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027007 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027008 if (p->error_indicator) {
27009 D(p->level--);
27010 return NULL;
27011 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027012 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027013 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027014 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027015 while (
27016 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27017 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027018 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027019 )
27020 {
27021 _res = elem;
27022 if (_res == NULL && PyErr_Occurred()) {
27023 p->error_indicator = 1;
27024 PyMem_Free(_children);
27025 D(p->level--);
27026 return NULL;
27027 }
27028 if (_n == _children_capacity) {
27029 _children_capacity *= 2;
27030 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27031 if (!_new_children) {
27032 p->error_indicator = 1;
27033 PyErr_NoMemory();
27034 D(p->level--);
27035 return NULL;
27036 }
27037 _children = _new_children;
27038 }
27039 _children[_n++] = _res;
27040 _mark = p->mark;
27041 }
27042 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027043 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
27044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027045 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027046 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027047 if (!_seq) {
27048 PyMem_Free(_children);
27049 p->error_indicator = 1;
27050 PyErr_NoMemory();
27051 D(p->level--);
27052 return NULL;
27053 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027054 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027055 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027056 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027057 D(p->level--);
27058 return _seq;
27059}
27060
Brandt Bucher145bf262021-02-26 14:51:55 -080027061// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027062static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027063_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027064{
27065 D(p->level++);
27066 if (p->error_indicator) {
27067 D(p->level--);
27068 return NULL;
27069 }
27070 asdl_seq * _res = NULL;
27071 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027072 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027073 if (p->error_indicator) {
27074 D(p->level--);
27075 return NULL;
27076 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027077 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
27078 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027079 asdl_seq * seq;
27080 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027081 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027082 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027083 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027084 )
27085 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027086 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027087 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27088 goto done;
27089 }
27090 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027091 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
27092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027093 }
27094 _res = NULL;
27095 done:
27096 D(p->level--);
27097 return _res;
27098}
27099
Brandt Bucher145bf262021-02-26 14:51:55 -080027100// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027101static asdl_seq *
27102_loop0_128_rule(Parser *p)
27103{
27104 D(p->level++);
27105 if (p->error_indicator) {
27106 D(p->level--);
27107 return NULL;
27108 }
27109 void *_res = NULL;
27110 int _mark = p->mark;
27111 int _start_mark = p->mark;
27112 void **_children = PyMem_Malloc(sizeof(void *));
27113 if (!_children) {
27114 p->error_indicator = 1;
27115 PyErr_NoMemory();
27116 D(p->level--);
27117 return NULL;
27118 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027119 Py_ssize_t _children_capacity = 1;
27120 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027121 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027122 if (p->error_indicator) {
27123 D(p->level--);
27124 return NULL;
27125 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027126 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
27127 Token * _literal;
27128 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027129 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027130 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27131 &&
27132 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027133 )
27134 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027135 _res = elem;
27136 if (_res == NULL && PyErr_Occurred()) {
27137 p->error_indicator = 1;
27138 PyMem_Free(_children);
27139 D(p->level--);
27140 return NULL;
27141 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027142 if (_n == _children_capacity) {
27143 _children_capacity *= 2;
27144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27145 if (!_new_children) {
27146 p->error_indicator = 1;
27147 PyErr_NoMemory();
27148 D(p->level--);
27149 return NULL;
27150 }
27151 _children = _new_children;
27152 }
27153 _children[_n++] = _res;
27154 _mark = p->mark;
27155 }
27156 p->mark = _mark;
27157 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027159 }
27160 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27161 if (!_seq) {
27162 PyMem_Free(_children);
27163 p->error_indicator = 1;
27164 PyErr_NoMemory();
27165 D(p->level--);
27166 return NULL;
27167 }
27168 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27169 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030027170 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027171 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030027172 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027173}
27174
Brandt Bucher145bf262021-02-26 14:51:55 -080027175// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027176static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027177_gather_127_rule(Parser *p)
27178{
27179 D(p->level++);
27180 if (p->error_indicator) {
27181 D(p->level--);
27182 return NULL;
27183 }
27184 asdl_seq * _res = NULL;
27185 int _mark = p->mark;
27186 { // kwarg_or_double_starred _loop0_128
27187 if (p->error_indicator) {
27188 D(p->level--);
27189 return NULL;
27190 }
27191 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27192 KeywordOrStarred* elem;
27193 asdl_seq * seq;
27194 if (
27195 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
27196 &&
27197 (seq = _loop0_128_rule(p)) // _loop0_128
27198 )
27199 {
27200 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27201 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27202 goto done;
27203 }
27204 p->mark = _mark;
27205 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
27206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
27207 }
27208 _res = NULL;
27209 done:
27210 D(p->level--);
27211 return _res;
27212}
27213
27214// _loop0_130: ',' kwarg_or_starred
27215static asdl_seq *
27216_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027217{
27218 D(p->level++);
27219 if (p->error_indicator) {
27220 D(p->level--);
27221 return NULL;
27222 }
27223 void *_res = NULL;
27224 int _mark = p->mark;
27225 int _start_mark = p->mark;
27226 void **_children = PyMem_Malloc(sizeof(void *));
27227 if (!_children) {
27228 p->error_indicator = 1;
27229 PyErr_NoMemory();
27230 D(p->level--);
27231 return NULL;
27232 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027233 Py_ssize_t _children_capacity = 1;
27234 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027235 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027236 if (p->error_indicator) {
27237 D(p->level--);
27238 return NULL;
27239 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
27241 Token * _literal;
27242 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027243 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027244 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27245 &&
27246 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027247 )
27248 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027249 _res = elem;
27250 if (_res == NULL && PyErr_Occurred()) {
27251 p->error_indicator = 1;
27252 PyMem_Free(_children);
27253 D(p->level--);
27254 return NULL;
27255 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027256 if (_n == _children_capacity) {
27257 _children_capacity *= 2;
27258 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27259 if (!_new_children) {
27260 p->error_indicator = 1;
27261 PyErr_NoMemory();
27262 D(p->level--);
27263 return NULL;
27264 }
27265 _children = _new_children;
27266 }
27267 _children[_n++] = _res;
27268 _mark = p->mark;
27269 }
27270 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027271 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
27272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027273 }
27274 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27275 if (!_seq) {
27276 PyMem_Free(_children);
27277 p->error_indicator = 1;
27278 PyErr_NoMemory();
27279 D(p->level--);
27280 return NULL;
27281 }
27282 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27283 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027284 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020027285 D(p->level--);
27286 return _seq;
27287}
27288
Brandt Bucher145bf262021-02-26 14:51:55 -080027289// _gather_129: kwarg_or_starred _loop0_130
27290static asdl_seq *
27291_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027292{
27293 D(p->level++);
27294 if (p->error_indicator) {
27295 D(p->level--);
27296 return NULL;
27297 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027298 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027299 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027300 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027301 if (p->error_indicator) {
27302 D(p->level--);
27303 return NULL;
27304 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027305 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
27306 KeywordOrStarred* elem;
27307 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027308 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027309 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
27310 &&
27311 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027312 )
27313 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027314 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
27315 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027316 goto done;
27317 }
27318 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027319 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
27320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027321 }
27322 _res = NULL;
27323 done:
27324 D(p->level--);
27325 return _res;
27326}
27327
Brandt Bucher145bf262021-02-26 14:51:55 -080027328// _loop0_132: ',' kwarg_or_double_starred
27329static asdl_seq *
27330_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027331{
27332 D(p->level++);
27333 if (p->error_indicator) {
27334 D(p->level--);
27335 return NULL;
27336 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027337 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027338 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027339 int _start_mark = p->mark;
27340 void **_children = PyMem_Malloc(sizeof(void *));
27341 if (!_children) {
27342 p->error_indicator = 1;
27343 PyErr_NoMemory();
27344 D(p->level--);
27345 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027346 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027347 Py_ssize_t _children_capacity = 1;
27348 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027349 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027350 if (p->error_indicator) {
27351 D(p->level--);
27352 return NULL;
27353 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027354 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027355 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027356 KeywordOrStarred* elem;
27357 while (
27358 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27359 &&
27360 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027361 )
27362 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027363 _res = elem;
27364 if (_res == NULL && PyErr_Occurred()) {
27365 p->error_indicator = 1;
27366 PyMem_Free(_children);
27367 D(p->level--);
27368 return NULL;
27369 }
27370 if (_n == _children_capacity) {
27371 _children_capacity *= 2;
27372 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27373 if (!_new_children) {
27374 p->error_indicator = 1;
27375 PyErr_NoMemory();
27376 D(p->level--);
27377 return NULL;
27378 }
27379 _children = _new_children;
27380 }
27381 _children[_n++] = _res;
27382 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027383 }
27384 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027385 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
27386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027387 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027388 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27389 if (!_seq) {
27390 PyMem_Free(_children);
27391 p->error_indicator = 1;
27392 PyErr_NoMemory();
27393 D(p->level--);
27394 return NULL;
27395 }
27396 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27397 PyMem_Free(_children);
27398 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
27399 D(p->level--);
27400 return _seq;
27401}
27402
27403// _gather_131: kwarg_or_double_starred _loop0_132
27404static asdl_seq *
27405_gather_131_rule(Parser *p)
27406{
27407 D(p->level++);
27408 if (p->error_indicator) {
27409 D(p->level--);
27410 return NULL;
27411 }
27412 asdl_seq * _res = NULL;
27413 int _mark = p->mark;
27414 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027415 if (p->error_indicator) {
27416 D(p->level--);
27417 return NULL;
27418 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027419 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27420 KeywordOrStarred* elem;
27421 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027422 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027423 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
27424 &&
27425 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027426 )
27427 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027428 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
27429 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027430 goto done;
27431 }
27432 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027433 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
27434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027435 }
27436 _res = NULL;
27437 done:
27438 D(p->level--);
27439 return _res;
27440}
27441
Brandt Bucher145bf262021-02-26 14:51:55 -080027442// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027443static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027444_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445{
27446 D(p->level++);
27447 if (p->error_indicator) {
27448 D(p->level--);
27449 return NULL;
27450 }
27451 void *_res = NULL;
27452 int _mark = p->mark;
27453 int _start_mark = p->mark;
27454 void **_children = PyMem_Malloc(sizeof(void *));
27455 if (!_children) {
27456 p->error_indicator = 1;
27457 PyErr_NoMemory();
27458 D(p->level--);
27459 return NULL;
27460 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027461 Py_ssize_t _children_capacity = 1;
27462 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027463 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027464 if (p->error_indicator) {
27465 D(p->level--);
27466 return NULL;
27467 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027468 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindob2802482021-04-15 21:38:45 +010027469 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027470 while (
Pablo Galindob2802482021-04-15 21:38:45 +010027471 (_tmp_180_var = _tmp_180_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027472 )
27473 {
Pablo Galindob2802482021-04-15 21:38:45 +010027474 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027475 if (_n == _children_capacity) {
27476 _children_capacity *= 2;
27477 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27478 if (!_new_children) {
27479 p->error_indicator = 1;
27480 PyErr_NoMemory();
27481 D(p->level--);
27482 return NULL;
27483 }
27484 _children = _new_children;
27485 }
27486 _children[_n++] = _res;
27487 _mark = p->mark;
27488 }
27489 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027490 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027493 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027494 if (!_seq) {
27495 PyMem_Free(_children);
27496 p->error_indicator = 1;
27497 PyErr_NoMemory();
27498 D(p->level--);
27499 return NULL;
27500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027501 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027502 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027503 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027504 D(p->level--);
27505 return _seq;
27506}
27507
Brandt Bucher145bf262021-02-26 14:51:55 -080027508// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027509static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027510_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027511{
27512 D(p->level++);
27513 if (p->error_indicator) {
27514 D(p->level--);
27515 return NULL;
27516 }
27517 void *_res = NULL;
27518 int _mark = p->mark;
27519 int _start_mark = p->mark;
27520 void **_children = PyMem_Malloc(sizeof(void *));
27521 if (!_children) {
27522 p->error_indicator = 1;
27523 PyErr_NoMemory();
27524 D(p->level--);
27525 return NULL;
27526 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027527 Py_ssize_t _children_capacity = 1;
27528 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027529 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027530 if (p->error_indicator) {
27531 D(p->level--);
27532 return NULL;
27533 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027534 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
27535 Token * _literal;
27536 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027537 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080027538 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27539 &&
27540 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027541 )
27542 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027543 _res = elem;
27544 if (_res == NULL && PyErr_Occurred()) {
27545 p->error_indicator = 1;
27546 PyMem_Free(_children);
27547 D(p->level--);
27548 return NULL;
27549 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027550 if (_n == _children_capacity) {
27551 _children_capacity *= 2;
27552 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27553 if (!_new_children) {
27554 p->error_indicator = 1;
27555 PyErr_NoMemory();
27556 D(p->level--);
27557 return NULL;
27558 }
27559 _children = _new_children;
27560 }
27561 _children[_n++] = _res;
27562 _mark = p->mark;
27563 }
27564 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027565 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027567 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027568 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027569 if (!_seq) {
27570 PyMem_Free(_children);
27571 p->error_indicator = 1;
27572 PyErr_NoMemory();
27573 D(p->level--);
27574 return NULL;
27575 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027576 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027577 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027578 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027579 D(p->level--);
27580 return _seq;
27581}
27582
Brandt Bucher145bf262021-02-26 14:51:55 -080027583// _gather_134: star_target _loop0_135
27584static asdl_seq *
27585_gather_134_rule(Parser *p)
27586{
27587 D(p->level++);
27588 if (p->error_indicator) {
27589 D(p->level--);
27590 return NULL;
27591 }
27592 asdl_seq * _res = NULL;
27593 int _mark = p->mark;
27594 { // star_target _loop0_135
27595 if (p->error_indicator) {
27596 D(p->level--);
27597 return NULL;
27598 }
27599 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27600 expr_ty elem;
27601 asdl_seq * seq;
27602 if (
27603 (elem = star_target_rule(p)) // star_target
27604 &&
27605 (seq = _loop0_135_rule(p)) // _loop0_135
27606 )
27607 {
27608 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
27609 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27610 goto done;
27611 }
27612 p->mark = _mark;
27613 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
27614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
27615 }
27616 _res = NULL;
27617 done:
27618 D(p->level--);
27619 return _res;
27620}
27621
27622// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027623static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027624_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027625{
27626 D(p->level++);
27627 if (p->error_indicator) {
27628 D(p->level--);
27629 return NULL;
27630 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027631 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027632 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027633 int _start_mark = p->mark;
27634 void **_children = PyMem_Malloc(sizeof(void *));
27635 if (!_children) {
27636 p->error_indicator = 1;
27637 PyErr_NoMemory();
27638 D(p->level--);
27639 return NULL;
27640 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027641 Py_ssize_t _children_capacity = 1;
27642 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027643 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 if (p->error_indicator) {
27645 D(p->level--);
27646 return NULL;
27647 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027648 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindob2802482021-04-15 21:38:45 +010027649 void *_tmp_181_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027650 while (
Pablo Galindob2802482021-04-15 21:38:45 +010027651 (_tmp_181_var = _tmp_181_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027652 )
27653 {
Pablo Galindob2802482021-04-15 21:38:45 +010027654 _res = _tmp_181_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027655 if (_n == _children_capacity) {
27656 _children_capacity *= 2;
27657 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27658 if (!_new_children) {
27659 p->error_indicator = 1;
27660 PyErr_NoMemory();
27661 D(p->level--);
27662 return NULL;
27663 }
27664 _children = _new_children;
27665 }
27666 _children[_n++] = _res;
27667 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027668 }
27669 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027670 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027672 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027673 if (_n == 0 || p->error_indicator) {
27674 PyMem_Free(_children);
27675 D(p->level--);
27676 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027677 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027678 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27679 if (!_seq) {
27680 PyMem_Free(_children);
27681 p->error_indicator = 1;
27682 PyErr_NoMemory();
27683 D(p->level--);
27684 return NULL;
27685 }
27686 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27687 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000027688 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027689 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020027690 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027691}
27692
Brandt Bucher145bf262021-02-26 14:51:55 -080027693// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027694static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000027695_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027696{
27697 D(p->level++);
27698 if (p->error_indicator) {
27699 D(p->level--);
27700 return NULL;
27701 }
27702 void * _res = NULL;
27703 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027704 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027705 if (p->error_indicator) {
27706 D(p->level--);
27707 return NULL;
27708 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027709 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27710 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027712 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027713 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027714 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027715 )
27716 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027717 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27718 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027719 goto done;
27720 }
27721 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027722 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027724 }
27725 _res = NULL;
27726 done:
27727 D(p->level--);
27728 return _res;
27729}
27730
Brandt Bucher145bf262021-02-26 14:51:55 -080027731// _loop0_139: ',' del_target
27732static asdl_seq *
27733_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734{
27735 D(p->level++);
27736 if (p->error_indicator) {
27737 D(p->level--);
27738 return NULL;
27739 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027740 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027741 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027742 int _start_mark = p->mark;
27743 void **_children = PyMem_Malloc(sizeof(void *));
27744 if (!_children) {
27745 p->error_indicator = 1;
27746 PyErr_NoMemory();
27747 D(p->level--);
27748 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027749 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027750 Py_ssize_t _children_capacity = 1;
27751 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027752 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027753 if (p->error_indicator) {
27754 D(p->level--);
27755 return NULL;
27756 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027757 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027758 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027759 expr_ty elem;
27760 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027761 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27762 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027763 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027764 )
27765 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027766 _res = elem;
27767 if (_res == NULL && PyErr_Occurred()) {
27768 p->error_indicator = 1;
27769 PyMem_Free(_children);
27770 D(p->level--);
27771 return NULL;
27772 }
27773 if (_n == _children_capacity) {
27774 _children_capacity *= 2;
27775 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27776 if (!_new_children) {
27777 p->error_indicator = 1;
27778 PyErr_NoMemory();
27779 D(p->level--);
27780 return NULL;
27781 }
27782 _children = _new_children;
27783 }
27784 _children[_n++] = _res;
27785 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027786 }
27787 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027788 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
27789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027790 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027791 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27792 if (!_seq) {
27793 PyMem_Free(_children);
27794 p->error_indicator = 1;
27795 PyErr_NoMemory();
27796 D(p->level--);
27797 return NULL;
27798 }
27799 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27800 PyMem_Free(_children);
27801 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027802 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080027803 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027804}
27805
Brandt Bucher145bf262021-02-26 14:51:55 -080027806// _gather_138: del_target _loop0_139
27807static asdl_seq *
27808_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027809{
27810 D(p->level++);
27811 if (p->error_indicator) {
27812 D(p->level--);
27813 return NULL;
27814 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027815 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027816 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027817 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027818 if (p->error_indicator) {
27819 D(p->level--);
27820 return NULL;
27821 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027822 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27823 expr_ty elem;
27824 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027825 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027826 (elem = del_target_rule(p)) // del_target
27827 &&
27828 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027829 )
27830 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027831 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27832 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000027833 goto done;
27834 }
27835 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027836 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
27837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027838 }
27839 _res = NULL;
27840 done:
27841 D(p->level--);
27842 return _res;
27843}
27844
Brandt Bucher145bf262021-02-26 14:51:55 -080027845// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027846static asdl_seq *
27847_loop0_141_rule(Parser *p)
27848{
27849 D(p->level++);
27850 if (p->error_indicator) {
27851 D(p->level--);
27852 return NULL;
27853 }
27854 void *_res = NULL;
27855 int _mark = p->mark;
27856 int _start_mark = p->mark;
27857 void **_children = PyMem_Malloc(sizeof(void *));
27858 if (!_children) {
27859 p->error_indicator = 1;
27860 PyErr_NoMemory();
27861 D(p->level--);
27862 return NULL;
27863 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027864 Py_ssize_t _children_capacity = 1;
27865 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027866 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027867 if (p->error_indicator) {
27868 D(p->level--);
27869 return NULL;
27870 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027871 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027872 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027873 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027874 while (
27875 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27876 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027877 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027878 )
27879 {
27880 _res = elem;
27881 if (_res == NULL && PyErr_Occurred()) {
27882 p->error_indicator = 1;
27883 PyMem_Free(_children);
27884 D(p->level--);
27885 return NULL;
27886 }
27887 if (_n == _children_capacity) {
27888 _children_capacity *= 2;
27889 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27890 if (!_new_children) {
27891 p->error_indicator = 1;
27892 PyErr_NoMemory();
27893 D(p->level--);
27894 return NULL;
27895 }
27896 _children = _new_children;
27897 }
27898 _children[_n++] = _res;
27899 _mark = p->mark;
27900 }
27901 p->mark = _mark;
27902 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027904 }
27905 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27906 if (!_seq) {
27907 PyMem_Free(_children);
27908 p->error_indicator = 1;
27909 PyErr_NoMemory();
27910 D(p->level--);
27911 return NULL;
27912 }
27913 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27914 PyMem_Free(_children);
27915 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
27916 D(p->level--);
27917 return _seq;
27918}
27919
Brandt Bucher145bf262021-02-26 14:51:55 -080027920// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027921static asdl_seq *
27922_gather_140_rule(Parser *p)
27923{
27924 D(p->level++);
27925 if (p->error_indicator) {
27926 D(p->level--);
27927 return NULL;
27928 }
27929 asdl_seq * _res = NULL;
27930 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027931 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027932 if (p->error_indicator) {
27933 D(p->level--);
27934 return NULL;
27935 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027936 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27937 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027938 asdl_seq * seq;
27939 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027940 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027941 &&
27942 (seq = _loop0_141_rule(p)) // _loop0_141
27943 )
27944 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027945 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027946 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27947 goto done;
27948 }
27949 p->mark = _mark;
27950 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027952 }
27953 _res = NULL;
27954 done:
27955 D(p->level--);
27956 return _res;
27957}
27958
Brandt Bucher145bf262021-02-26 14:51:55 -080027959// _tmp_142: args | expression for_if_clauses
27960static void *
27961_tmp_142_rule(Parser *p)
27962{
27963 D(p->level++);
27964 if (p->error_indicator) {
27965 D(p->level--);
27966 return NULL;
27967 }
27968 void * _res = NULL;
27969 int _mark = p->mark;
27970 { // args
27971 if (p->error_indicator) {
27972 D(p->level--);
27973 return NULL;
27974 }
27975 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27976 expr_ty args_var;
27977 if (
27978 (args_var = args_rule(p)) // args
27979 )
27980 {
27981 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27982 _res = args_var;
27983 goto done;
27984 }
27985 p->mark = _mark;
27986 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27988 }
27989 { // expression for_if_clauses
27990 if (p->error_indicator) {
27991 D(p->level--);
27992 return NULL;
27993 }
27994 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27995 expr_ty expression_var;
27996 asdl_comprehension_seq* for_if_clauses_var;
27997 if (
27998 (expression_var = expression_rule(p)) // expression
27999 &&
28000 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
28001 )
28002 {
28003 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
28004 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
28005 goto done;
28006 }
28007 p->mark = _mark;
28008 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
28009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
28010 }
28011 _res = NULL;
28012 done:
28013 D(p->level--);
28014 return _res;
28015}
28016
Pablo Galindob2802482021-04-15 21:38:45 +010028017// _tmp_143: NAME STRING | SOFT_KEYWORD
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028018static void *
28019_tmp_143_rule(Parser *p)
28020{
28021 D(p->level++);
28022 if (p->error_indicator) {
28023 D(p->level--);
28024 return NULL;
28025 }
28026 void * _res = NULL;
28027 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028028 { // NAME STRING
28029 if (p->error_indicator) {
28030 D(p->level--);
28031 return NULL;
28032 }
28033 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
28034 expr_ty name_var;
28035 expr_ty string_var;
28036 if (
28037 (name_var = _PyPegen_name_token(p)) // NAME
28038 &&
28039 (string_var = _PyPegen_string_token(p)) // STRING
28040 )
28041 {
28042 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
28043 _res = _PyPegen_dummy_name(p, name_var, string_var);
28044 goto done;
28045 }
28046 p->mark = _mark;
28047 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
28048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
28049 }
28050 { // SOFT_KEYWORD
28051 if (p->error_indicator) {
28052 D(p->level--);
28053 return NULL;
28054 }
28055 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
28056 expr_ty soft_keyword_var;
28057 if (
28058 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
28059 )
28060 {
28061 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
28062 _res = soft_keyword_var;
28063 goto done;
28064 }
28065 p->mark = _mark;
28066 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
28067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
28068 }
28069 _res = NULL;
28070 done:
28071 D(p->level--);
28072 return _res;
28073}
28074
28075// _tmp_144: '=' | ':=' | ','
28076static void *
28077_tmp_144_rule(Parser *p)
28078{
28079 D(p->level++);
28080 if (p->error_indicator) {
28081 D(p->level--);
28082 return NULL;
28083 }
28084 void * _res = NULL;
28085 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028086 { // '='
28087 if (p->error_indicator) {
28088 D(p->level--);
28089 return NULL;
28090 }
Pablo Galindob2802482021-04-15 21:38:45 +010028091 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028092 Token * _literal;
28093 if (
28094 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28095 )
28096 {
Pablo Galindob2802482021-04-15 21:38:45 +010028097 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028098 _res = _literal;
28099 goto done;
28100 }
28101 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028102 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
28104 }
28105 { // ':='
28106 if (p->error_indicator) {
28107 D(p->level--);
28108 return NULL;
28109 }
Pablo Galindob2802482021-04-15 21:38:45 +010028110 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028111 Token * _literal;
28112 if (
28113 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
28114 )
28115 {
Pablo Galindob2802482021-04-15 21:38:45 +010028116 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028117 _res = _literal;
28118 goto done;
28119 }
28120 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028121 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
28123 }
28124 { // ','
28125 if (p->error_indicator) {
28126 D(p->level--);
28127 return NULL;
28128 }
Pablo Galindob2802482021-04-15 21:38:45 +010028129 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028130 Token * _literal;
28131 if (
28132 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28133 )
28134 {
Pablo Galindob2802482021-04-15 21:38:45 +010028135 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028136 _res = _literal;
28137 goto done;
28138 }
28139 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028140 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28142 }
28143 _res = NULL;
28144 done:
28145 D(p->level--);
28146 return _res;
28147}
28148
Pablo Galindob2802482021-04-15 21:38:45 +010028149// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028150static void *
Pablo Galindob2802482021-04-15 21:38:45 +010028151_tmp_145_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028152{
28153 D(p->level++);
28154 if (p->error_indicator) {
28155 D(p->level--);
28156 return NULL;
28157 }
28158 void * _res = NULL;
28159 int _mark = p->mark;
28160 { // list
28161 if (p->error_indicator) {
28162 D(p->level--);
28163 return NULL;
28164 }
Pablo Galindob2802482021-04-15 21:38:45 +010028165 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028166 expr_ty list_var;
28167 if (
28168 (list_var = list_rule(p)) // list
28169 )
28170 {
Pablo Galindob2802482021-04-15 21:38:45 +010028171 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028172 _res = list_var;
28173 goto done;
28174 }
28175 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028176 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
28178 }
28179 { // tuple
28180 if (p->error_indicator) {
28181 D(p->level--);
28182 return NULL;
28183 }
Pablo Galindob2802482021-04-15 21:38:45 +010028184 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028185 expr_ty tuple_var;
28186 if (
28187 (tuple_var = tuple_rule(p)) // tuple
28188 )
28189 {
Pablo Galindob2802482021-04-15 21:38:45 +010028190 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028191 _res = tuple_var;
28192 goto done;
28193 }
28194 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028195 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
28197 }
28198 { // genexp
28199 if (p->error_indicator) {
28200 D(p->level--);
28201 return NULL;
28202 }
Pablo Galindob2802482021-04-15 21:38:45 +010028203 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028204 expr_ty genexp_var;
28205 if (
28206 (genexp_var = genexp_rule(p)) // genexp
28207 )
28208 {
Pablo Galindob2802482021-04-15 21:38:45 +010028209 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028210 _res = genexp_var;
28211 goto done;
28212 }
28213 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028214 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
28216 }
28217 { // 'True'
28218 if (p->error_indicator) {
28219 D(p->level--);
28220 return NULL;
28221 }
Pablo Galindob2802482021-04-15 21:38:45 +010028222 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028223 Token * _keyword;
28224 if (
28225 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
28226 )
28227 {
Pablo Galindob2802482021-04-15 21:38:45 +010028228 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028229 _res = _keyword;
28230 goto done;
28231 }
28232 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028233 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
28235 }
28236 { // 'None'
28237 if (p->error_indicator) {
28238 D(p->level--);
28239 return NULL;
28240 }
Pablo Galindob2802482021-04-15 21:38:45 +010028241 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028242 Token * _keyword;
28243 if (
28244 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
28245 )
28246 {
Pablo Galindob2802482021-04-15 21:38:45 +010028247 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028248 _res = _keyword;
28249 goto done;
28250 }
28251 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028252 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
28254 }
28255 { // 'False'
28256 if (p->error_indicator) {
28257 D(p->level--);
28258 return NULL;
28259 }
Pablo Galindob2802482021-04-15 21:38:45 +010028260 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028261 Token * _keyword;
28262 if (
28263 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
28264 )
28265 {
Pablo Galindob2802482021-04-15 21:38:45 +010028266 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028267 _res = _keyword;
28268 goto done;
28269 }
28270 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028271 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
28273 }
28274 _res = NULL;
28275 done:
28276 D(p->level--);
28277 return _res;
28278}
28279
Pablo Galindob2802482021-04-15 21:38:45 +010028280// _tmp_146: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028281static void *
Pablo Galindob2802482021-04-15 21:38:45 +010028282_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028283{
28284 D(p->level++);
28285 if (p->error_indicator) {
28286 D(p->level--);
28287 return NULL;
28288 }
28289 void * _res = NULL;
28290 int _mark = p->mark;
28291 { // '='
28292 if (p->error_indicator) {
28293 D(p->level--);
28294 return NULL;
28295 }
Pablo Galindob2802482021-04-15 21:38:45 +010028296 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028297 Token * _literal;
28298 if (
28299 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28300 )
28301 {
Pablo Galindob2802482021-04-15 21:38:45 +010028302 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028303 _res = _literal;
28304 goto done;
28305 }
28306 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028307 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
28309 }
28310 { // ':='
28311 if (p->error_indicator) {
28312 D(p->level--);
28313 return NULL;
28314 }
Pablo Galindob2802482021-04-15 21:38:45 +010028315 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028316 Token * _literal;
28317 if (
28318 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
28319 )
28320 {
Pablo Galindob2802482021-04-15 21:38:45 +010028321 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028322 _res = _literal;
28323 goto done;
28324 }
28325 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028326 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
28328 }
28329 { // ','
28330 if (p->error_indicator) {
28331 D(p->level--);
28332 return NULL;
28333 }
Pablo Galindob2802482021-04-15 21:38:45 +010028334 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028335 Token * _literal;
28336 if (
28337 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28338 )
28339 {
Pablo Galindob2802482021-04-15 21:38:45 +010028340 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028341 _res = _literal;
28342 goto done;
28343 }
28344 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028345 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28347 }
28348 _res = NULL;
28349 done:
28350 D(p->level--);
28351 return _res;
28352}
28353
Pablo Galindob2802482021-04-15 21:38:45 +010028354// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000028355static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010028356_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028357{
28358 D(p->level++);
28359 if (p->error_indicator) {
28360 D(p->level--);
28361 return NULL;
28362 }
28363 void *_res = NULL;
28364 int _mark = p->mark;
28365 int _start_mark = p->mark;
28366 void **_children = PyMem_Malloc(sizeof(void *));
28367 if (!_children) {
28368 p->error_indicator = 1;
28369 PyErr_NoMemory();
28370 D(p->level--);
28371 return NULL;
28372 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028373 Py_ssize_t _children_capacity = 1;
28374 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028375 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000028376 if (p->error_indicator) {
28377 D(p->level--);
28378 return NULL;
28379 }
Pablo Galindob2802482021-04-15 21:38:45 +010028380 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 -080028381 asdl_expr_seq* star_named_expressions_var;
28382 while (
28383 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
28384 )
28385 {
28386 _res = star_named_expressions_var;
28387 if (_n == _children_capacity) {
28388 _children_capacity *= 2;
28389 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28390 if (!_new_children) {
28391 p->error_indicator = 1;
28392 PyErr_NoMemory();
28393 D(p->level--);
28394 return NULL;
28395 }
28396 _children = _new_children;
28397 }
28398 _children[_n++] = _res;
28399 _mark = p->mark;
28400 }
28401 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028402 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010028403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028404 }
28405 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28406 if (!_seq) {
28407 PyMem_Free(_children);
28408 p->error_indicator = 1;
28409 PyErr_NoMemory();
28410 D(p->level--);
28411 return NULL;
28412 }
28413 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28414 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028415 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028416 D(p->level--);
28417 return _seq;
28418}
28419
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028420// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080028421static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028422_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028423{
28424 D(p->level++);
28425 if (p->error_indicator) {
28426 D(p->level--);
28427 return NULL;
28428 }
28429 void *_res = NULL;
28430 int _mark = p->mark;
28431 int _start_mark = p->mark;
28432 void **_children = PyMem_Malloc(sizeof(void *));
28433 if (!_children) {
28434 p->error_indicator = 1;
28435 PyErr_NoMemory();
28436 D(p->level--);
28437 return NULL;
28438 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028439 Py_ssize_t _children_capacity = 1;
28440 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028441 { // (star_targets '=')
28442 if (p->error_indicator) {
28443 D(p->level--);
28444 return NULL;
28445 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028446 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoda743502021-04-15 14:06:39 +010028447 void *_tmp_182_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028448 while (
Pablo Galindoda743502021-04-15 14:06:39 +010028449 (_tmp_182_var = _tmp_182_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080028450 )
28451 {
Pablo Galindoda743502021-04-15 14:06:39 +010028452 _res = _tmp_182_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080028453 if (_n == _children_capacity) {
28454 _children_capacity *= 2;
28455 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28456 if (!_new_children) {
28457 p->error_indicator = 1;
28458 PyErr_NoMemory();
28459 D(p->level--);
28460 return NULL;
28461 }
28462 _children = _new_children;
28463 }
28464 _children[_n++] = _res;
28465 _mark = p->mark;
28466 }
28467 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028468 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28470 }
28471 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28472 if (!_seq) {
28473 PyMem_Free(_children);
28474 p->error_indicator = 1;
28475 PyErr_NoMemory();
28476 D(p->level--);
28477 return NULL;
28478 }
28479 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28480 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028481 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028482 D(p->level--);
28483 return _seq;
28484}
28485
Pablo Galindob2802482021-04-15 21:38:45 +010028486// _loop0_149: (star_targets '=')
28487static asdl_seq *
28488_loop0_149_rule(Parser *p)
28489{
28490 D(p->level++);
28491 if (p->error_indicator) {
28492 D(p->level--);
28493 return NULL;
28494 }
28495 void *_res = NULL;
28496 int _mark = p->mark;
28497 int _start_mark = p->mark;
28498 void **_children = PyMem_Malloc(sizeof(void *));
28499 if (!_children) {
28500 p->error_indicator = 1;
28501 PyErr_NoMemory();
28502 D(p->level--);
28503 return NULL;
28504 }
28505 Py_ssize_t _children_capacity = 1;
28506 Py_ssize_t _n = 0;
28507 { // (star_targets '=')
28508 if (p->error_indicator) {
28509 D(p->level--);
28510 return NULL;
28511 }
28512 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
28513 void *_tmp_183_var;
28514 while (
28515 (_tmp_183_var = _tmp_183_rule(p)) // star_targets '='
28516 )
28517 {
28518 _res = _tmp_183_var;
28519 if (_n == _children_capacity) {
28520 _children_capacity *= 2;
28521 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28522 if (!_new_children) {
28523 p->error_indicator = 1;
28524 PyErr_NoMemory();
28525 D(p->level--);
28526 return NULL;
28527 }
28528 _children = _new_children;
28529 }
28530 _children[_n++] = _res;
28531 _mark = p->mark;
28532 }
28533 p->mark = _mark;
28534 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
28535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
28536 }
28537 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28538 if (!_seq) {
28539 PyMem_Free(_children);
28540 p->error_indicator = 1;
28541 PyErr_NoMemory();
28542 D(p->level--);
28543 return NULL;
28544 }
28545 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28546 PyMem_Free(_children);
28547 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
28548 D(p->level--);
28549 return _seq;
28550}
28551
28552// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080028553static void *
Pablo Galindob2802482021-04-15 21:38:45 +010028554_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028555{
28556 D(p->level++);
28557 if (p->error_indicator) {
28558 D(p->level--);
28559 return NULL;
28560 }
28561 void * _res = NULL;
28562 int _mark = p->mark;
28563 { // yield_expr
28564 if (p->error_indicator) {
28565 D(p->level--);
28566 return NULL;
28567 }
Pablo Galindob2802482021-04-15 21:38:45 +010028568 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028569 expr_ty yield_expr_var;
28570 if (
28571 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28572 )
28573 {
Pablo Galindob2802482021-04-15 21:38:45 +010028574 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 -080028575 _res = yield_expr_var;
28576 goto done;
28577 }
28578 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028579 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28581 }
28582 { // star_expressions
28583 if (p->error_indicator) {
28584 D(p->level--);
28585 return NULL;
28586 }
Pablo Galindob2802482021-04-15 21:38:45 +010028587 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028588 expr_ty star_expressions_var;
28589 if (
28590 (star_expressions_var = star_expressions_rule(p)) // star_expressions
28591 )
28592 {
Pablo Galindob2802482021-04-15 21:38:45 +010028593 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 -080028594 _res = star_expressions_var;
28595 goto done;
28596 }
28597 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028598 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
28600 }
28601 _res = NULL;
28602 done:
28603 D(p->level--);
28604 return _res;
28605}
28606
Pablo Galindob2802482021-04-15 21:38:45 +010028607// _tmp_151: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080028608static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028609_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028610{
28611 D(p->level++);
28612 if (p->error_indicator) {
28613 D(p->level--);
28614 return NULL;
28615 }
28616 void * _res = NULL;
28617 int _mark = p->mark;
28618 { // '['
28619 if (p->error_indicator) {
28620 D(p->level--);
28621 return NULL;
28622 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028623 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028624 Token * _literal;
28625 if (
28626 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28627 )
28628 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028629 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028630 _res = _literal;
28631 goto done;
28632 }
28633 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028634 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28636 }
Pablo Galindob2802482021-04-15 21:38:45 +010028637 { // '('
28638 if (p->error_indicator) {
28639 D(p->level--);
28640 return NULL;
28641 }
28642 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
28643 Token * _literal;
28644 if (
28645 (_literal = _PyPegen_expect_token(p, 7)) // token='('
28646 )
28647 {
28648 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
28649 _res = _literal;
28650 goto done;
28651 }
28652 p->mark = _mark;
28653 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
28654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
28655 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028656 { // '{'
28657 if (p->error_indicator) {
28658 D(p->level--);
28659 return NULL;
28660 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028661 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028662 Token * _literal;
28663 if (
28664 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28665 )
28666 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028667 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028668 _res = _literal;
28669 goto done;
28670 }
28671 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010028672 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28674 }
28675 _res = NULL;
28676 done:
28677 D(p->level--);
28678 return _res;
28679}
28680
Pablo Galindob2802482021-04-15 21:38:45 +010028681// _tmp_152: '[' | '{'
28682static void *
28683_tmp_152_rule(Parser *p)
28684{
28685 D(p->level++);
28686 if (p->error_indicator) {
28687 D(p->level--);
28688 return NULL;
28689 }
28690 void * _res = NULL;
28691 int _mark = p->mark;
28692 { // '['
28693 if (p->error_indicator) {
28694 D(p->level--);
28695 return NULL;
28696 }
28697 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
28698 Token * _literal;
28699 if (
28700 (_literal = _PyPegen_expect_token(p, 9)) // token='['
28701 )
28702 {
28703 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
28704 _res = _literal;
28705 goto done;
28706 }
28707 p->mark = _mark;
28708 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
28709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
28710 }
28711 { // '{'
28712 if (p->error_indicator) {
28713 D(p->level--);
28714 return NULL;
28715 }
28716 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
28717 Token * _literal;
28718 if (
28719 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
28720 )
28721 {
28722 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
28723 _res = _literal;
28724 goto done;
28725 }
28726 p->mark = _mark;
28727 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
28728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
28729 }
28730 _res = NULL;
28731 done:
28732 D(p->level--);
28733 return _res;
28734}
28735
28736// _loop0_153: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028737static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010028738_loop0_153_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028739{
28740 D(p->level++);
28741 if (p->error_indicator) {
28742 D(p->level--);
28743 return NULL;
28744 }
28745 void *_res = NULL;
28746 int _mark = p->mark;
28747 int _start_mark = p->mark;
28748 void **_children = PyMem_Malloc(sizeof(void *));
28749 if (!_children) {
28750 p->error_indicator = 1;
28751 PyErr_NoMemory();
28752 D(p->level--);
28753 return NULL;
28754 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028755 Py_ssize_t _children_capacity = 1;
28756 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028757 { // param_no_default
28758 if (p->error_indicator) {
28759 D(p->level--);
28760 return NULL;
28761 }
Pablo Galindob2802482021-04-15 21:38:45 +010028762 D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028763 arg_ty param_no_default_var;
28764 while (
28765 (param_no_default_var = param_no_default_rule(p)) // param_no_default
28766 )
28767 {
28768 _res = param_no_default_var;
28769 if (_n == _children_capacity) {
28770 _children_capacity *= 2;
28771 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28772 if (!_new_children) {
28773 p->error_indicator = 1;
28774 PyErr_NoMemory();
28775 D(p->level--);
28776 return NULL;
28777 }
28778 _children = _new_children;
28779 }
28780 _children[_n++] = _res;
28781 _mark = p->mark;
28782 }
28783 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028784 D(fprintf(stderr, "%*c%s _loop0_153[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
28786 }
28787 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28788 if (!_seq) {
28789 PyMem_Free(_children);
28790 p->error_indicator = 1;
28791 PyErr_NoMemory();
28792 D(p->level--);
28793 return NULL;
28794 }
28795 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28796 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010028797 _PyPegen_insert_memo(p, _start_mark, _loop0_153_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028798 D(p->level--);
28799 return _seq;
28800}
28801
Pablo Galindob2802482021-04-15 21:38:45 +010028802// _loop1_154: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028803static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010028804_loop1_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028805{
28806 D(p->level++);
28807 if (p->error_indicator) {
28808 D(p->level--);
28809 return NULL;
28810 }
28811 void *_res = NULL;
28812 int _mark = p->mark;
28813 int _start_mark = p->mark;
28814 void **_children = PyMem_Malloc(sizeof(void *));
28815 if (!_children) {
28816 p->error_indicator = 1;
28817 PyErr_NoMemory();
28818 D(p->level--);
28819 return NULL;
28820 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028821 Py_ssize_t _children_capacity = 1;
28822 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028823 { // param_with_default
28824 if (p->error_indicator) {
28825 D(p->level--);
28826 return NULL;
28827 }
Pablo Galindob2802482021-04-15 21:38:45 +010028828 D(fprintf(stderr, "%*c> _loop1_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028829 NameDefaultPair* param_with_default_var;
28830 while (
28831 (param_with_default_var = param_with_default_rule(p)) // param_with_default
28832 )
28833 {
28834 _res = param_with_default_var;
28835 if (_n == _children_capacity) {
28836 _children_capacity *= 2;
28837 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28838 if (!_new_children) {
28839 p->error_indicator = 1;
28840 PyErr_NoMemory();
28841 D(p->level--);
28842 return NULL;
28843 }
28844 _children = _new_children;
28845 }
28846 _children[_n++] = _res;
28847 _mark = p->mark;
28848 }
28849 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028850 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
28852 }
28853 if (_n == 0 || p->error_indicator) {
28854 PyMem_Free(_children);
28855 D(p->level--);
28856 return NULL;
28857 }
28858 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28859 if (!_seq) {
28860 PyMem_Free(_children);
28861 p->error_indicator = 1;
28862 PyErr_NoMemory();
28863 D(p->level--);
28864 return NULL;
28865 }
28866 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28867 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010028868 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028869 D(p->level--);
28870 return _seq;
28871}
28872
Pablo Galindob2802482021-04-15 21:38:45 +010028873// _loop0_155: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028874static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010028875_loop0_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028876{
28877 D(p->level++);
28878 if (p->error_indicator) {
28879 D(p->level--);
28880 return NULL;
28881 }
28882 void *_res = NULL;
28883 int _mark = p->mark;
28884 int _start_mark = p->mark;
28885 void **_children = PyMem_Malloc(sizeof(void *));
28886 if (!_children) {
28887 p->error_indicator = 1;
28888 PyErr_NoMemory();
28889 D(p->level--);
28890 return NULL;
28891 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028892 Py_ssize_t _children_capacity = 1;
28893 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028894 { // lambda_param_no_default
28895 if (p->error_indicator) {
28896 D(p->level--);
28897 return NULL;
28898 }
Pablo Galindob2802482021-04-15 21:38:45 +010028899 D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028900 arg_ty lambda_param_no_default_var;
28901 while (
28902 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
28903 )
28904 {
28905 _res = lambda_param_no_default_var;
28906 if (_n == _children_capacity) {
28907 _children_capacity *= 2;
28908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28909 if (!_new_children) {
28910 p->error_indicator = 1;
28911 PyErr_NoMemory();
28912 D(p->level--);
28913 return NULL;
28914 }
28915 _children = _new_children;
28916 }
28917 _children[_n++] = _res;
28918 _mark = p->mark;
28919 }
28920 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028921 D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
28923 }
28924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28925 if (!_seq) {
28926 PyMem_Free(_children);
28927 p->error_indicator = 1;
28928 PyErr_NoMemory();
28929 D(p->level--);
28930 return NULL;
28931 }
28932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28933 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010028934 _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080028935 D(p->level--);
28936 return _seq;
28937}
28938
Pablo Galindob2802482021-04-15 21:38:45 +010028939// _loop1_156: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080028940static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010028941_loop1_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028942{
28943 D(p->level++);
28944 if (p->error_indicator) {
28945 D(p->level--);
28946 return NULL;
28947 }
28948 void *_res = NULL;
28949 int _mark = p->mark;
28950 int _start_mark = p->mark;
28951 void **_children = PyMem_Malloc(sizeof(void *));
28952 if (!_children) {
28953 p->error_indicator = 1;
28954 PyErr_NoMemory();
28955 D(p->level--);
28956 return NULL;
28957 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028958 Py_ssize_t _children_capacity = 1;
28959 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028960 { // lambda_param_with_default
28961 if (p->error_indicator) {
28962 D(p->level--);
28963 return NULL;
28964 }
Pablo Galindob2802482021-04-15 21:38:45 +010028965 D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028966 NameDefaultPair* lambda_param_with_default_var;
28967 while (
28968 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
28969 )
28970 {
28971 _res = lambda_param_with_default_var;
28972 if (_n == _children_capacity) {
28973 _children_capacity *= 2;
28974 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28975 if (!_new_children) {
28976 p->error_indicator = 1;
28977 PyErr_NoMemory();
28978 D(p->level--);
28979 return NULL;
28980 }
28981 _children = _new_children;
28982 }
28983 _children[_n++] = _res;
28984 _mark = p->mark;
28985 }
28986 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010028987 D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
28989 }
28990 if (_n == 0 || p->error_indicator) {
28991 PyMem_Free(_children);
28992 D(p->level--);
28993 return NULL;
28994 }
28995 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28996 if (!_seq) {
28997 PyMem_Free(_children);
28998 p->error_indicator = 1;
28999 PyErr_NoMemory();
29000 D(p->level--);
29001 return NULL;
29002 }
29003 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29004 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029005 _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029006 D(p->level--);
29007 return _seq;
29008}
29009
Pablo Galindob2802482021-04-15 21:38:45 +010029010// _tmp_157: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029011static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029012_tmp_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029013{
29014 D(p->level++);
29015 if (p->error_indicator) {
29016 D(p->level--);
29017 return NULL;
29018 }
29019 void * _res = NULL;
29020 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029021 { // ')'
Brandt Bucher145bf262021-02-26 14:51:55 -080029022 if (p->error_indicator) {
29023 D(p->level--);
29024 return NULL;
29025 }
Pablo Galindob2802482021-04-15 21:38:45 +010029026 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029027 Token * _literal;
29028 if (
Pablo Galindob2802482021-04-15 21:38:45 +010029029 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Brandt Bucher145bf262021-02-26 14:51:55 -080029030 )
29031 {
Pablo Galindob2802482021-04-15 21:38:45 +010029032 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029033 _res = _literal;
29034 goto done;
29035 }
29036 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029037 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029039 }
Pablo Galindob2802482021-04-15 21:38:45 +010029040 { // ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029041 if (p->error_indicator) {
29042 D(p->level--);
29043 return NULL;
29044 }
Pablo Galindob2802482021-04-15 21:38:45 +010029045 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029046 Token * _literal;
Pablo Galindoda743502021-04-15 14:06:39 +010029047 void *_tmp_184_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080029048 if (
29049 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29050 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029051 (_tmp_184_var = _tmp_184_rule(p)) // ')' | '**'
Brandt Bucher145bf262021-02-26 14:51:55 -080029052 )
29053 {
Pablo Galindob2802482021-04-15 21:38:45 +010029054 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoda743502021-04-15 14:06:39 +010029055 _res = _PyPegen_dummy_name(p, _literal, _tmp_184_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080029056 goto done;
29057 }
29058 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029059 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029061 }
29062 _res = NULL;
29063 done:
29064 D(p->level--);
29065 return _res;
29066}
29067
Pablo Galindob2802482021-04-15 21:38:45 +010029068// _tmp_158: ':' | ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080029069static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029070_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029071{
29072 D(p->level++);
29073 if (p->error_indicator) {
29074 D(p->level--);
29075 return NULL;
29076 }
29077 void * _res = NULL;
29078 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029079 { // ':'
29080 if (p->error_indicator) {
29081 D(p->level--);
29082 return NULL;
29083 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029084 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029085 Token * _literal;
29086 if (
29087 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29088 )
29089 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029090 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029091 _res = _literal;
29092 goto done;
29093 }
29094 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029095 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29097 }
Pablo Galindob2802482021-04-15 21:38:45 +010029098 { // ',' (':' | '**')
29099 if (p->error_indicator) {
29100 D(p->level--);
29101 return NULL;
29102 }
29103 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
29104 Token * _literal;
29105 void *_tmp_185_var;
29106 if (
29107 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29108 &&
29109 (_tmp_185_var = _tmp_185_rule(p)) // ':' | '**'
29110 )
29111 {
29112 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
29113 _res = _PyPegen_dummy_name(p, _literal, _tmp_185_var);
29114 goto done;
29115 }
29116 p->mark = _mark;
29117 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
29118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
29119 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029120 _res = NULL;
29121 done:
29122 D(p->level--);
29123 return _res;
29124}
29125
Pablo Galindob2802482021-04-15 21:38:45 +010029126// _tmp_159: ',' | ')' | ':'
29127static void *
29128_tmp_159_rule(Parser *p)
29129{
29130 D(p->level++);
29131 if (p->error_indicator) {
29132 D(p->level--);
29133 return NULL;
29134 }
29135 void * _res = NULL;
29136 int _mark = p->mark;
29137 { // ','
29138 if (p->error_indicator) {
29139 D(p->level--);
29140 return NULL;
29141 }
29142 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
29143 Token * _literal;
29144 if (
29145 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29146 )
29147 {
29148 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
29149 _res = _literal;
29150 goto done;
29151 }
29152 p->mark = _mark;
29153 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
29154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29155 }
29156 { // ')'
29157 if (p->error_indicator) {
29158 D(p->level--);
29159 return NULL;
29160 }
29161 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
29162 Token * _literal;
29163 if (
29164 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
29165 )
29166 {
29167 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
29168 _res = _literal;
29169 goto done;
29170 }
29171 p->mark = _mark;
29172 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
29173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
29174 }
29175 { // ':'
29176 if (p->error_indicator) {
29177 D(p->level--);
29178 return NULL;
29179 }
29180 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
29181 Token * _literal;
29182 if (
29183 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29184 )
29185 {
29186 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
29187 _res = _literal;
29188 goto done;
29189 }
29190 p->mark = _mark;
29191 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
29192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29193 }
29194 _res = NULL;
29195 done:
29196 D(p->level--);
29197 return _res;
29198}
29199
29200// _loop0_161: ',' (expression ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080029201static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029202_loop0_161_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029203{
29204 D(p->level++);
29205 if (p->error_indicator) {
29206 D(p->level--);
29207 return NULL;
29208 }
29209 void *_res = NULL;
29210 int _mark = p->mark;
29211 int _start_mark = p->mark;
29212 void **_children = PyMem_Malloc(sizeof(void *));
29213 if (!_children) {
29214 p->error_indicator = 1;
29215 PyErr_NoMemory();
29216 D(p->level--);
29217 return NULL;
29218 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029219 Py_ssize_t _children_capacity = 1;
29220 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029221 { // ',' (expression ['as' star_target])
29222 if (p->error_indicator) {
29223 D(p->level--);
29224 return NULL;
29225 }
Pablo Galindob2802482021-04-15 21:38:45 +010029226 D(fprintf(stderr, "%*c> _loop0_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029227 Token * _literal;
29228 void *elem;
29229 while (
29230 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29231 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029232 (elem = _tmp_186_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029233 )
29234 {
29235 _res = elem;
29236 if (_res == NULL && PyErr_Occurred()) {
29237 p->error_indicator = 1;
29238 PyMem_Free(_children);
29239 D(p->level--);
29240 return NULL;
29241 }
29242 if (_n == _children_capacity) {
29243 _children_capacity *= 2;
29244 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29245 if (!_new_children) {
29246 p->error_indicator = 1;
29247 PyErr_NoMemory();
29248 D(p->level--);
29249 return NULL;
29250 }
29251 _children = _new_children;
29252 }
29253 _children[_n++] = _res;
29254 _mark = p->mark;
29255 }
29256 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029257 D(fprintf(stderr, "%*c%s _loop0_161[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
29259 }
29260 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29261 if (!_seq) {
29262 PyMem_Free(_children);
29263 p->error_indicator = 1;
29264 PyErr_NoMemory();
29265 D(p->level--);
29266 return NULL;
29267 }
29268 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29269 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029270 _PyPegen_insert_memo(p, _start_mark, _loop0_161_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080029271 D(p->level--);
29272 return _seq;
29273}
29274
Pablo Galindob2802482021-04-15 21:38:45 +010029275// _gather_160: (expression ['as' star_target]) _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080029276static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029277_gather_160_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029278{
29279 D(p->level++);
29280 if (p->error_indicator) {
29281 D(p->level--);
29282 return NULL;
29283 }
29284 asdl_seq * _res = NULL;
29285 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029286 { // (expression ['as' star_target]) _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080029287 if (p->error_indicator) {
29288 D(p->level--);
29289 return NULL;
29290 }
Pablo Galindob2802482021-04-15 21:38:45 +010029291 D(fprintf(stderr, "%*c> _gather_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029292 void *elem;
29293 asdl_seq * seq;
29294 if (
Pablo Galindob2802482021-04-15 21:38:45 +010029295 (elem = _tmp_186_rule(p)) // expression ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080029296 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029297 (seq = _loop0_161_rule(p)) // _loop0_161
Brandt Bucher145bf262021-02-26 14:51:55 -080029298 )
29299 {
Pablo Galindob2802482021-04-15 21:38:45 +010029300 D(fprintf(stderr, "%*c+ _gather_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029301 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29302 goto done;
29303 }
29304 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029305 D(fprintf(stderr, "%*c%s _gather_160[%d-%d]: %s failed!\n", p->level, ' ',
29306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_161"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029307 }
29308 _res = NULL;
29309 done:
29310 D(p->level--);
29311 return _res;
29312}
29313
Pablo Galindob2802482021-04-15 21:38:45 +010029314// _loop0_163: ',' (expressions ['as' star_target])
Brandt Bucher145bf262021-02-26 14:51:55 -080029315static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029316_loop0_163_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029317{
29318 D(p->level++);
29319 if (p->error_indicator) {
29320 D(p->level--);
29321 return NULL;
29322 }
29323 void *_res = NULL;
29324 int _mark = p->mark;
29325 int _start_mark = p->mark;
29326 void **_children = PyMem_Malloc(sizeof(void *));
29327 if (!_children) {
29328 p->error_indicator = 1;
29329 PyErr_NoMemory();
29330 D(p->level--);
29331 return NULL;
29332 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029333 Py_ssize_t _children_capacity = 1;
29334 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029335 { // ',' (expressions ['as' star_target])
29336 if (p->error_indicator) {
29337 D(p->level--);
29338 return NULL;
29339 }
Pablo Galindob2802482021-04-15 21:38:45 +010029340 D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029341 Token * _literal;
29342 void *elem;
29343 while (
29344 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29345 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029346 (elem = _tmp_187_rule(p)) // expressions ['as' star_target]
Brandt Bucher145bf262021-02-26 14:51:55 -080029347 )
29348 {
29349 _res = elem;
29350 if (_res == NULL && PyErr_Occurred()) {
29351 p->error_indicator = 1;
29352 PyMem_Free(_children);
29353 D(p->level--);
29354 return NULL;
29355 }
29356 if (_n == _children_capacity) {
29357 _children_capacity *= 2;
29358 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29359 if (!_new_children) {
29360 p->error_indicator = 1;
29361 PyErr_NoMemory();
29362 D(p->level--);
29363 return NULL;
29364 }
29365 _children = _new_children;
29366 }
29367 _children[_n++] = _res;
29368 _mark = p->mark;
29369 }
29370 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029371 D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
29373 }
29374 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29375 if (!_seq) {
29376 PyMem_Free(_children);
29377 p->error_indicator = 1;
29378 PyErr_NoMemory();
29379 D(p->level--);
29380 return NULL;
29381 }
29382 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29383 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029384 _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029385 D(p->level--);
29386 return _seq;
29387}
29388
Pablo Galindob2802482021-04-15 21:38:45 +010029389// _gather_162: (expressions ['as' star_target]) _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000029390static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029391_gather_162_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029392{
29393 D(p->level++);
29394 if (p->error_indicator) {
29395 D(p->level--);
29396 return NULL;
29397 }
29398 asdl_seq * _res = NULL;
29399 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029400 { // (expressions ['as' star_target]) _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000029401 if (p->error_indicator) {
29402 D(p->level--);
29403 return NULL;
29404 }
Pablo Galindob2802482021-04-15 21:38:45 +010029405 D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029406 void *elem;
29407 asdl_seq * seq;
29408 if (
Pablo Galindob2802482021-04-15 21:38:45 +010029409 (elem = _tmp_187_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029410 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029411 (seq = _loop0_163_rule(p)) // _loop0_163
Pablo Galindo58fb1562021-02-02 19:54:22 +000029412 )
29413 {
Pablo Galindob2802482021-04-15 21:38:45 +010029414 D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029415 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29416 goto done;
29417 }
29418 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029419 D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
29420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_163"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029421 }
29422 _res = NULL;
29423 done:
29424 D(p->level--);
29425 return _res;
29426}
29427
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029428// _tmp_164: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000029429static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029430_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029431{
29432 D(p->level++);
29433 if (p->error_indicator) {
29434 D(p->level--);
29435 return NULL;
29436 }
29437 void * _res = NULL;
29438 int _mark = p->mark;
29439 { // 'as' NAME
29440 if (p->error_indicator) {
29441 D(p->level--);
29442 return NULL;
29443 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029444 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029445 Token * _keyword;
29446 expr_ty name_var;
29447 if (
29448 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29449 &&
29450 (name_var = _PyPegen_name_token(p)) // NAME
29451 )
29452 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029453 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029454 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29455 goto done;
29456 }
29457 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029458 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29460 }
29461 _res = NULL;
29462 done:
29463 D(p->level--);
29464 return _res;
29465}
29466
Pablo Galindob2802482021-04-15 21:38:45 +010029467// _tmp_165: 'as' NAME
29468static void *
29469_tmp_165_rule(Parser *p)
29470{
29471 D(p->level++);
29472 if (p->error_indicator) {
29473 D(p->level--);
29474 return NULL;
29475 }
29476 void * _res = NULL;
29477 int _mark = p->mark;
29478 { // 'as' NAME
29479 if (p->error_indicator) {
29480 D(p->level--);
29481 return NULL;
29482 }
29483 D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
29484 Token * _keyword;
29485 expr_ty name_var;
29486 if (
29487 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29488 &&
29489 (name_var = _PyPegen_name_token(p)) // NAME
29490 )
29491 {
29492 D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
29493 _res = _PyPegen_dummy_name(p, _keyword, name_var);
29494 goto done;
29495 }
29496 p->mark = _mark;
29497 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
29498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
29499 }
29500 _res = NULL;
29501 done:
29502 D(p->level--);
29503 return _res;
29504}
29505
29506// _loop0_167: ',' double_starred_kvpair
Pablo Galindoda743502021-04-15 14:06:39 +010029507static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029508_loop0_167_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010029509{
29510 D(p->level++);
29511 if (p->error_indicator) {
29512 D(p->level--);
29513 return NULL;
29514 }
29515 void *_res = NULL;
29516 int _mark = p->mark;
29517 int _start_mark = p->mark;
29518 void **_children = PyMem_Malloc(sizeof(void *));
29519 if (!_children) {
29520 p->error_indicator = 1;
29521 PyErr_NoMemory();
29522 D(p->level--);
29523 return NULL;
29524 }
29525 Py_ssize_t _children_capacity = 1;
29526 Py_ssize_t _n = 0;
29527 { // ',' double_starred_kvpair
29528 if (p->error_indicator) {
29529 D(p->level--);
29530 return NULL;
29531 }
Pablo Galindob2802482021-04-15 21:38:45 +010029532 D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010029533 Token * _literal;
29534 KeyValuePair* elem;
29535 while (
29536 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29537 &&
29538 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29539 )
29540 {
29541 _res = elem;
29542 if (_res == NULL && PyErr_Occurred()) {
29543 p->error_indicator = 1;
29544 PyMem_Free(_children);
29545 D(p->level--);
29546 return NULL;
29547 }
29548 if (_n == _children_capacity) {
29549 _children_capacity *= 2;
29550 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29551 if (!_new_children) {
29552 p->error_indicator = 1;
29553 PyErr_NoMemory();
29554 D(p->level--);
29555 return NULL;
29556 }
29557 _children = _new_children;
29558 }
29559 _children[_n++] = _res;
29560 _mark = p->mark;
29561 }
29562 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029563 D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010029564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
29565 }
29566 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29567 if (!_seq) {
29568 PyMem_Free(_children);
29569 p->error_indicator = 1;
29570 PyErr_NoMemory();
29571 D(p->level--);
29572 return NULL;
29573 }
29574 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29575 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029576 _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010029577 D(p->level--);
29578 return _seq;
29579}
29580
Pablo Galindob2802482021-04-15 21:38:45 +010029581// _gather_166: double_starred_kvpair _loop0_167
Pablo Galindoda743502021-04-15 14:06:39 +010029582static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029583_gather_166_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010029584{
29585 D(p->level++);
29586 if (p->error_indicator) {
29587 D(p->level--);
29588 return NULL;
29589 }
29590 asdl_seq * _res = NULL;
29591 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029592 { // double_starred_kvpair _loop0_167
Pablo Galindoda743502021-04-15 14:06:39 +010029593 if (p->error_indicator) {
29594 D(p->level--);
29595 return NULL;
29596 }
Pablo Galindob2802482021-04-15 21:38:45 +010029597 D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_167"));
Pablo Galindoda743502021-04-15 14:06:39 +010029598 KeyValuePair* elem;
29599 asdl_seq * seq;
29600 if (
29601 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29602 &&
Pablo Galindob2802482021-04-15 21:38:45 +010029603 (seq = _loop0_167_rule(p)) // _loop0_167
Pablo Galindoda743502021-04-15 14:06:39 +010029604 )
29605 {
Pablo Galindob2802482021-04-15 21:38:45 +010029606 D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_167"));
Pablo Galindoda743502021-04-15 14:06:39 +010029607 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29608 goto done;
29609 }
29610 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029611 D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ',
29612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_167"));
Pablo Galindoda743502021-04-15 14:06:39 +010029613 }
29614 _res = NULL;
29615 done:
29616 D(p->level--);
29617 return _res;
29618}
29619
Pablo Galindob2802482021-04-15 21:38:45 +010029620// _tmp_168: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000029621static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029622_tmp_168_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010029623{
29624 D(p->level++);
29625 if (p->error_indicator) {
29626 D(p->level--);
29627 return NULL;
29628 }
29629 void * _res = NULL;
29630 int _mark = p->mark;
29631 { // '}'
29632 if (p->error_indicator) {
29633 D(p->level--);
29634 return NULL;
29635 }
Pablo Galindob2802482021-04-15 21:38:45 +010029636 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010029637 Token * _literal;
29638 if (
29639 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
29640 )
29641 {
Pablo Galindob2802482021-04-15 21:38:45 +010029642 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010029643 _res = _literal;
29644 goto done;
29645 }
29646 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029647 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010029648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
29649 }
29650 { // ','
29651 if (p->error_indicator) {
29652 D(p->level--);
29653 return NULL;
29654 }
Pablo Galindob2802482021-04-15 21:38:45 +010029655 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010029656 Token * _literal;
29657 if (
29658 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29659 )
29660 {
Pablo Galindob2802482021-04-15 21:38:45 +010029661 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010029662 _res = _literal;
29663 goto done;
29664 }
29665 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029666 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010029667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29668 }
29669 _res = NULL;
29670 done:
29671 D(p->level--);
29672 return _res;
29673}
29674
Pablo Galindob2802482021-04-15 21:38:45 +010029675// _tmp_169: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010029676static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029677_tmp_169_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029678{
29679 D(p->level++);
29680 if (p->error_indicator) {
29681 D(p->level--);
29682 return NULL;
29683 }
29684 void * _res = NULL;
29685 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029686 { // star_targets '='
29687 if (p->error_indicator) {
29688 D(p->level--);
29689 return NULL;
29690 }
Pablo Galindob2802482021-04-15 21:38:45 +010029691 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029692 Token * _literal;
29693 expr_ty z;
29694 if (
29695 (z = star_targets_rule(p)) // star_targets
29696 &&
29697 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29698 )
29699 {
Pablo Galindob2802482021-04-15 21:38:45 +010029700 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029701 _res = z;
29702 if (_res == NULL && PyErr_Occurred()) {
29703 p->error_indicator = 1;
29704 D(p->level--);
29705 return NULL;
29706 }
29707 goto done;
29708 }
29709 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029710 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29712 }
29713 _res = NULL;
29714 done:
29715 D(p->level--);
29716 return _res;
29717}
29718
Pablo Galindoda743502021-04-15 14:06:39 +010029719// _tmp_170: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029720static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029721_tmp_170_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029722{
29723 D(p->level++);
29724 if (p->error_indicator) {
29725 D(p->level--);
29726 return NULL;
29727 }
29728 void * _res = NULL;
29729 int _mark = p->mark;
29730 { // '.'
29731 if (p->error_indicator) {
29732 D(p->level--);
29733 return NULL;
29734 }
Pablo Galindoda743502021-04-15 14:06:39 +010029735 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029736 Token * _literal;
29737 if (
29738 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29739 )
29740 {
Pablo Galindoda743502021-04-15 14:06:39 +010029741 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029742 _res = _literal;
29743 goto done;
29744 }
29745 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029746 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29748 }
29749 { // '...'
29750 if (p->error_indicator) {
29751 D(p->level--);
29752 return NULL;
29753 }
Pablo Galindoda743502021-04-15 14:06:39 +010029754 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029755 Token * _literal;
29756 if (
29757 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29758 )
29759 {
Pablo Galindoda743502021-04-15 14:06:39 +010029760 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029761 _res = _literal;
29762 goto done;
29763 }
29764 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010029765 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29767 }
29768 _res = NULL;
29769 done:
29770 D(p->level--);
29771 return _res;
29772}
29773
Pablo Galindob2802482021-04-15 21:38:45 +010029774// _tmp_171: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029775static void *
Pablo Galindoda743502021-04-15 14:06:39 +010029776_tmp_171_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029777{
29778 D(p->level++);
29779 if (p->error_indicator) {
29780 D(p->level--);
29781 return NULL;
29782 }
29783 void * _res = NULL;
29784 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029785 { // '.'
29786 if (p->error_indicator) {
29787 D(p->level--);
29788 return NULL;
29789 }
29790 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
29791 Token * _literal;
29792 if (
29793 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
29794 )
29795 {
29796 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
29797 _res = _literal;
29798 goto done;
29799 }
29800 p->mark = _mark;
29801 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
29802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
29803 }
29804 { // '...'
29805 if (p->error_indicator) {
29806 D(p->level--);
29807 return NULL;
29808 }
29809 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
29810 Token * _literal;
29811 if (
29812 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
29813 )
29814 {
29815 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
29816 _res = _literal;
29817 goto done;
29818 }
29819 p->mark = _mark;
29820 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
29821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
29822 }
29823 _res = NULL;
29824 done:
29825 D(p->level--);
29826 return _res;
29827}
29828
29829// _tmp_172: '@' named_expression NEWLINE
29830static void *
29831_tmp_172_rule(Parser *p)
29832{
29833 D(p->level++);
29834 if (p->error_indicator) {
29835 D(p->level--);
29836 return NULL;
29837 }
29838 void * _res = NULL;
29839 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029840 { // '@' named_expression NEWLINE
29841 if (p->error_indicator) {
29842 D(p->level--);
29843 return NULL;
29844 }
Pablo Galindob2802482021-04-15 21:38:45 +010029845 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029846 Token * _literal;
29847 expr_ty f;
29848 Token * newline_var;
29849 if (
29850 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
29851 &&
29852 (f = named_expression_rule(p)) // named_expression
29853 &&
29854 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
29855 )
29856 {
Pablo Galindob2802482021-04-15 21:38:45 +010029857 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029858 _res = f;
29859 if (_res == NULL && PyErr_Occurred()) {
29860 p->error_indicator = 1;
29861 D(p->level--);
29862 return NULL;
29863 }
29864 goto done;
29865 }
29866 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029867 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
29869 }
29870 _res = NULL;
29871 done:
29872 D(p->level--);
29873 return _res;
29874}
29875
Pablo Galindob2802482021-04-15 21:38:45 +010029876// _tmp_173: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029877static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029878_tmp_173_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029879{
29880 D(p->level++);
29881 if (p->error_indicator) {
29882 D(p->level--);
29883 return NULL;
29884 }
29885 void * _res = NULL;
29886 int _mark = p->mark;
29887 { // ',' star_expression
29888 if (p->error_indicator) {
29889 D(p->level--);
29890 return NULL;
29891 }
Pablo Galindob2802482021-04-15 21:38:45 +010029892 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029893 Token * _literal;
29894 expr_ty c;
29895 if (
29896 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29897 &&
29898 (c = star_expression_rule(p)) // star_expression
29899 )
29900 {
Pablo Galindob2802482021-04-15 21:38:45 +010029901 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029902 _res = c;
29903 if (_res == NULL && PyErr_Occurred()) {
29904 p->error_indicator = 1;
29905 D(p->level--);
29906 return NULL;
29907 }
29908 goto done;
29909 }
29910 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029911 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
29913 }
29914 _res = NULL;
29915 done:
29916 D(p->level--);
29917 return _res;
29918}
29919
Pablo Galindob2802482021-04-15 21:38:45 +010029920// _tmp_174: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029921static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029922_tmp_174_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029923{
29924 D(p->level++);
29925 if (p->error_indicator) {
29926 D(p->level--);
29927 return NULL;
29928 }
29929 void * _res = NULL;
29930 int _mark = p->mark;
29931 { // ',' expression
29932 if (p->error_indicator) {
29933 D(p->level--);
29934 return NULL;
29935 }
Pablo Galindob2802482021-04-15 21:38:45 +010029936 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029937 Token * _literal;
29938 expr_ty c;
29939 if (
29940 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29941 &&
29942 (c = expression_rule(p)) // expression
29943 )
29944 {
Pablo Galindob2802482021-04-15 21:38:45 +010029945 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029946 _res = c;
29947 if (_res == NULL && PyErr_Occurred()) {
29948 p->error_indicator = 1;
29949 D(p->level--);
29950 return NULL;
29951 }
29952 goto done;
29953 }
29954 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029955 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
29957 }
29958 _res = NULL;
29959 done:
29960 D(p->level--);
29961 return _res;
29962}
29963
Pablo Galindob2802482021-04-15 21:38:45 +010029964// _tmp_175: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029965static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029966_tmp_175_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029967{
29968 D(p->level++);
29969 if (p->error_indicator) {
29970 D(p->level--);
29971 return NULL;
29972 }
29973 void * _res = NULL;
29974 int _mark = p->mark;
29975 { // 'or' conjunction
29976 if (p->error_indicator) {
29977 D(p->level--);
29978 return NULL;
29979 }
Pablo Galindob2802482021-04-15 21:38:45 +010029980 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029981 Token * _keyword;
29982 expr_ty c;
29983 if (
29984 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
29985 &&
29986 (c = conjunction_rule(p)) // conjunction
29987 )
29988 {
Pablo Galindob2802482021-04-15 21:38:45 +010029989 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029990 _res = c;
29991 if (_res == NULL && PyErr_Occurred()) {
29992 p->error_indicator = 1;
29993 D(p->level--);
29994 return NULL;
29995 }
29996 goto done;
29997 }
29998 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029999 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
30001 }
30002 _res = NULL;
30003 done:
30004 D(p->level--);
30005 return _res;
30006}
30007
Pablo Galindob2802482021-04-15 21:38:45 +010030008// _tmp_176: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030009static void *
Pablo Galindob2802482021-04-15 21:38:45 +010030010_tmp_176_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030011{
30012 D(p->level++);
30013 if (p->error_indicator) {
30014 D(p->level--);
30015 return NULL;
30016 }
30017 void * _res = NULL;
30018 int _mark = p->mark;
30019 { // 'and' inversion
30020 if (p->error_indicator) {
30021 D(p->level--);
30022 return NULL;
30023 }
Pablo Galindob2802482021-04-15 21:38:45 +010030024 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030025 Token * _keyword;
30026 expr_ty c;
30027 if (
30028 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
30029 &&
30030 (c = inversion_rule(p)) // inversion
30031 )
30032 {
Pablo Galindob2802482021-04-15 21:38:45 +010030033 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030034 _res = c;
30035 if (_res == NULL && PyErr_Occurred()) {
30036 p->error_indicator = 1;
30037 D(p->level--);
30038 return NULL;
30039 }
30040 goto done;
30041 }
30042 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030043 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000030045 }
30046 _res = NULL;
30047 done:
30048 D(p->level--);
30049 return _res;
30050}
30051
Pablo Galindoda743502021-04-15 14:06:39 +010030052// _tmp_177: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000030053static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030054_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030055{
30056 D(p->level++);
30057 if (p->error_indicator) {
30058 D(p->level--);
30059 return NULL;
30060 }
30061 void * _res = NULL;
30062 int _mark = p->mark;
30063 { // 'if' disjunction
30064 if (p->error_indicator) {
30065 D(p->level--);
30066 return NULL;
30067 }
Pablo Galindoda743502021-04-15 14:06:39 +010030068 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000030069 Token * _keyword;
30070 expr_ty z;
30071 if (
30072 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
30073 &&
30074 (z = disjunction_rule(p)) // disjunction
30075 )
30076 {
Pablo Galindoda743502021-04-15 14:06:39 +010030077 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000030078 _res = z;
30079 if (_res == NULL && PyErr_Occurred()) {
30080 p->error_indicator = 1;
30081 D(p->level--);
30082 return NULL;
30083 }
30084 goto done;
30085 }
30086 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030087 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000030088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
30089 }
30090 _res = NULL;
30091 done:
30092 D(p->level--);
30093 return _res;
30094}
30095
Pablo Galindob2802482021-04-15 21:38:45 +010030096// _tmp_178: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000030097static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030098_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000030099{
30100 D(p->level++);
30101 if (p->error_indicator) {
30102 D(p->level--);
30103 return NULL;
30104 }
30105 void * _res = NULL;
30106 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030107 { // 'if' disjunction
30108 if (p->error_indicator) {
30109 D(p->level--);
30110 return NULL;
30111 }
30112 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
30113 Token * _keyword;
30114 expr_ty z;
30115 if (
30116 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
30117 &&
30118 (z = disjunction_rule(p)) // disjunction
30119 )
30120 {
30121 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
30122 _res = z;
30123 if (_res == NULL && PyErr_Occurred()) {
30124 p->error_indicator = 1;
30125 D(p->level--);
30126 return NULL;
30127 }
30128 goto done;
30129 }
30130 p->mark = _mark;
30131 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
30132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
30133 }
30134 _res = NULL;
30135 done:
30136 D(p->level--);
30137 return _res;
30138}
30139
30140// _tmp_179: starred_expression | direct_named_expression !'='
30141static void *
30142_tmp_179_rule(Parser *p)
30143{
30144 D(p->level++);
30145 if (p->error_indicator) {
30146 D(p->level--);
30147 return NULL;
30148 }
30149 void * _res = NULL;
30150 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030151 { // starred_expression
30152 if (p->error_indicator) {
30153 D(p->level--);
30154 return NULL;
30155 }
Pablo Galindob2802482021-04-15 21:38:45 +010030156 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010030157 expr_ty starred_expression_var;
30158 if (
30159 (starred_expression_var = starred_expression_rule(p)) // starred_expression
30160 )
30161 {
Pablo Galindob2802482021-04-15 21:38:45 +010030162 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010030163 _res = starred_expression_var;
30164 goto done;
30165 }
30166 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030167 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010030168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
30169 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010030170 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010030171 if (p->error_indicator) {
30172 D(p->level--);
30173 return NULL;
30174 }
Pablo Galindob2802482021-04-15 21:38:45 +010030175 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010030176 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030177 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010030178 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010030179 &&
30180 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
30181 )
30182 {
Pablo Galindob2802482021-04-15 21:38:45 +010030183 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010030184 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010030185 goto done;
30186 }
30187 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030188 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010030190 }
30191 _res = NULL;
30192 done:
30193 D(p->level--);
30194 return _res;
30195}
30196
30197// _tmp_180: ',' star_target
30198static void *
30199_tmp_180_rule(Parser *p)
30200{
30201 D(p->level++);
30202 if (p->error_indicator) {
30203 D(p->level--);
30204 return NULL;
30205 }
30206 void * _res = NULL;
30207 int _mark = p->mark;
30208 { // ',' star_target
30209 if (p->error_indicator) {
30210 D(p->level--);
30211 return NULL;
30212 }
30213 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30214 Token * _literal;
30215 expr_ty c;
30216 if (
30217 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30218 &&
30219 (c = star_target_rule(p)) // star_target
30220 )
30221 {
30222 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30223 _res = c;
30224 if (_res == NULL && PyErr_Occurred()) {
30225 p->error_indicator = 1;
30226 D(p->level--);
30227 return NULL;
30228 }
30229 goto done;
30230 }
30231 p->mark = _mark;
30232 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
30233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
30234 }
30235 _res = NULL;
30236 done:
30237 D(p->level--);
30238 return _res;
30239}
30240
Pablo Galindob2802482021-04-15 21:38:45 +010030241// _tmp_181: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010030242static void *
30243_tmp_181_rule(Parser *p)
30244{
30245 D(p->level++);
30246 if (p->error_indicator) {
30247 D(p->level--);
30248 return NULL;
30249 }
30250 void * _res = NULL;
30251 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030252 { // ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030253 if (p->error_indicator) {
30254 D(p->level--);
30255 return NULL;
30256 }
Pablo Galindob2802482021-04-15 21:38:45 +010030257 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030258 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010030259 expr_ty c;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030260 if (
Pablo Galindob2802482021-04-15 21:38:45 +010030261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030262 &&
Pablo Galindob2802482021-04-15 21:38:45 +010030263 (c = star_target_rule(p)) // star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030264 )
30265 {
Pablo Galindob2802482021-04-15 21:38:45 +010030266 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
30267 _res = c;
30268 if (_res == NULL && PyErr_Occurred()) {
30269 p->error_indicator = 1;
30270 D(p->level--);
30271 return NULL;
30272 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030273 goto done;
30274 }
30275 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030276 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030278 }
30279 _res = NULL;
30280 done:
30281 D(p->level--);
30282 return _res;
30283}
30284
Pablo Galindoda743502021-04-15 14:06:39 +010030285// _tmp_182: star_targets '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030286static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030287_tmp_182_rule(Parser *p)
30288{
30289 D(p->level++);
30290 if (p->error_indicator) {
30291 D(p->level--);
30292 return NULL;
30293 }
30294 void * _res = NULL;
30295 int _mark = p->mark;
30296 { // star_targets '='
30297 if (p->error_indicator) {
30298 D(p->level--);
30299 return NULL;
30300 }
30301 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30302 Token * _literal;
30303 expr_ty star_targets_var;
30304 if (
30305 (star_targets_var = star_targets_rule(p)) // star_targets
30306 &&
30307 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30308 )
30309 {
30310 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30311 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
30312 goto done;
30313 }
30314 p->mark = _mark;
30315 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
30316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
30317 }
30318 _res = NULL;
30319 done:
30320 D(p->level--);
30321 return _res;
30322}
30323
Pablo Galindob2802482021-04-15 21:38:45 +010030324// _tmp_183: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010030325static void *
30326_tmp_183_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000030327{
30328 D(p->level++);
30329 if (p->error_indicator) {
30330 D(p->level--);
30331 return NULL;
30332 }
30333 void * _res = NULL;
30334 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030335 { // star_targets '='
30336 if (p->error_indicator) {
30337 D(p->level--);
30338 return NULL;
30339 }
30340 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30341 Token * _literal;
30342 expr_ty star_targets_var;
30343 if (
30344 (star_targets_var = star_targets_rule(p)) // star_targets
30345 &&
30346 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30347 )
30348 {
30349 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
30350 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
30351 goto done;
30352 }
30353 p->mark = _mark;
30354 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
30355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
30356 }
30357 _res = NULL;
30358 done:
30359 D(p->level--);
30360 return _res;
30361}
30362
30363// _tmp_184: ')' | '**'
30364static void *
30365_tmp_184_rule(Parser *p)
30366{
30367 D(p->level++);
30368 if (p->error_indicator) {
30369 D(p->level--);
30370 return NULL;
30371 }
30372 void * _res = NULL;
30373 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030374 { // ')'
30375 if (p->error_indicator) {
30376 D(p->level--);
30377 return NULL;
30378 }
Pablo Galindob2802482021-04-15 21:38:45 +010030379 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030380 Token * _literal;
30381 if (
30382 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30383 )
30384 {
Pablo Galindob2802482021-04-15 21:38:45 +010030385 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030386 _res = _literal;
30387 goto done;
30388 }
30389 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030390 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030392 }
30393 { // '**'
30394 if (p->error_indicator) {
30395 D(p->level--);
30396 return NULL;
30397 }
Pablo Galindoda743502021-04-15 14:06:39 +010030398 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030399 Token * _literal;
30400 if (
30401 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
30402 )
30403 {
Pablo Galindoda743502021-04-15 14:06:39 +010030404 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000030405 _res = _literal;
30406 goto done;
30407 }
30408 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030409 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000030410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
30411 }
30412 _res = NULL;
30413 done:
30414 D(p->level--);
30415 return _res;
30416}
30417
Pablo Galindob2802482021-04-15 21:38:45 +010030418// _tmp_185: ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000030419static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030420_tmp_185_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030421{
30422 D(p->level++);
30423 if (p->error_indicator) {
30424 D(p->level--);
30425 return NULL;
30426 }
30427 void * _res = NULL;
30428 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030429 { // ':'
30430 if (p->error_indicator) {
30431 D(p->level--);
30432 return NULL;
30433 }
30434 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30435 Token * _literal;
30436 if (
30437 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30438 )
30439 {
30440 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30441 _res = _literal;
30442 goto done;
30443 }
30444 p->mark = _mark;
30445 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
30446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30447 }
30448 { // '**'
30449 if (p->error_indicator) {
30450 D(p->level--);
30451 return NULL;
30452 }
30453 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
30454 Token * _literal;
30455 if (
30456 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
30457 )
30458 {
30459 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
30460 _res = _literal;
30461 goto done;
30462 }
30463 p->mark = _mark;
30464 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
30465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
30466 }
30467 _res = NULL;
30468 done:
30469 D(p->level--);
30470 return _res;
30471}
30472
30473// _tmp_186: expression ['as' star_target]
30474static void *
30475_tmp_186_rule(Parser *p)
30476{
30477 D(p->level++);
30478 if (p->error_indicator) {
30479 D(p->level--);
30480 return NULL;
30481 }
30482 void * _res = NULL;
30483 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000030484 { // expression ['as' star_target]
30485 if (p->error_indicator) {
30486 D(p->level--);
30487 return NULL;
30488 }
Pablo Galindob2802482021-04-15 21:38:45 +010030489 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030490 void *_opt_var;
30491 UNUSED(_opt_var); // Silence compiler warnings
30492 expr_ty expression_var;
30493 if (
30494 (expression_var = expression_rule(p)) // expression
30495 &&
Pablo Galindob2802482021-04-15 21:38:45 +010030496 (_opt_var = _tmp_188_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030497 )
30498 {
Pablo Galindob2802482021-04-15 21:38:45 +010030499 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030500 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
30501 goto done;
30502 }
30503 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030504 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
30506 }
30507 _res = NULL;
30508 done:
30509 D(p->level--);
30510 return _res;
30511}
30512
Pablo Galindob2802482021-04-15 21:38:45 +010030513// _tmp_187: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030514static void *
Pablo Galindob2802482021-04-15 21:38:45 +010030515_tmp_187_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030516{
30517 D(p->level++);
30518 if (p->error_indicator) {
30519 D(p->level--);
30520 return NULL;
30521 }
30522 void * _res = NULL;
30523 int _mark = p->mark;
30524 { // expressions ['as' star_target]
30525 if (p->error_indicator) {
30526 D(p->level--);
30527 return NULL;
30528 }
Pablo Galindob2802482021-04-15 21:38:45 +010030529 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030530 void *_opt_var;
30531 UNUSED(_opt_var); // Silence compiler warnings
30532 expr_ty expressions_var;
30533 if (
30534 (expressions_var = expressions_rule(p)) // expressions
30535 &&
Pablo Galindob2802482021-04-15 21:38:45 +010030536 (_opt_var = _tmp_189_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000030537 )
30538 {
Pablo Galindob2802482021-04-15 21:38:45 +010030539 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030540 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
30541 goto done;
30542 }
30543 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030544 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030546 }
30547 _res = NULL;
30548 done:
30549 D(p->level--);
30550 return _res;
30551}
30552
Pablo Galindoda743502021-04-15 14:06:39 +010030553// _tmp_188: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000030554static void *
Pablo Galindoda743502021-04-15 14:06:39 +010030555_tmp_188_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030556{
30557 D(p->level++);
30558 if (p->error_indicator) {
30559 D(p->level--);
30560 return NULL;
30561 }
30562 void * _res = NULL;
30563 int _mark = p->mark;
30564 { // 'as' star_target
30565 if (p->error_indicator) {
30566 D(p->level--);
30567 return NULL;
30568 }
Pablo Galindoda743502021-04-15 14:06:39 +010030569 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030570 Token * _keyword;
30571 expr_ty star_target_var;
30572 if (
30573 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30574 &&
30575 (star_target_var = star_target_rule(p)) // star_target
30576 )
30577 {
Pablo Galindoda743502021-04-15 14:06:39 +010030578 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030579 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30580 goto done;
30581 }
30582 p->mark = _mark;
Pablo Galindoda743502021-04-15 14:06:39 +010030583 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000030584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30585 }
30586 _res = NULL;
30587 done:
30588 D(p->level--);
30589 return _res;
30590}
30591
Pablo Galindob2802482021-04-15 21:38:45 +010030592// _tmp_189: 'as' star_target
30593static void *
30594_tmp_189_rule(Parser *p)
30595{
30596 D(p->level++);
30597 if (p->error_indicator) {
30598 D(p->level--);
30599 return NULL;
30600 }
30601 void * _res = NULL;
30602 int _mark = p->mark;
30603 { // 'as' star_target
30604 if (p->error_indicator) {
30605 D(p->level--);
30606 return NULL;
30607 }
30608 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
30609 Token * _keyword;
30610 expr_ty star_target_var;
30611 if (
30612 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
30613 &&
30614 (star_target_var = star_target_rule(p)) // star_target
30615 )
30616 {
30617 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
30618 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
30619 goto done;
30620 }
30621 p->mark = _mark;
30622 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
30623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
30624 }
30625 _res = NULL;
30626 done:
30627 D(p->level--);
30628 return _res;
30629}
30630
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030631void *
30632_PyPegen_parse(Parser *p)
30633{
30634 // Initialize keywords
30635 p->keywords = reserved_keywords;
30636 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010030637 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030638
30639 // Run parser
30640 void *result = NULL;
30641 if (p->start_rule == Py_file_input) {
30642 result = file_rule(p);
30643 } else if (p->start_rule == Py_single_input) {
30644 result = interactive_rule(p);
30645 } else if (p->start_rule == Py_eval_input) {
30646 result = eval_rule(p);
30647 } else if (p->start_rule == Py_func_type_input) {
30648 result = func_type_rule(p);
30649 } else if (p->start_rule == Py_fstring_input) {
30650 result = fstring_rule(p);
30651 }
30652
30653 return result;
30654}
30655
30656// The end