blob: af0c088694c2cb2fbf66a0c51feee0bbf7238edb [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};
68#define file_type 1000
69#define interactive_type 1001
70#define eval_type 1002
71#define func_type_type 1003
72#define fstring_type 1004
73#define type_expressions_type 1005
74#define statements_type 1006
75#define statement_type 1007
76#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000077#define simple_stmts_type 1009
78#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010079#define compound_stmt_type 1011
80#define assignment_type 1012
81#define augassign_type 1013
82#define global_stmt_type 1014
83#define nonlocal_stmt_type 1015
84#define yield_stmt_type 1016
85#define assert_stmt_type 1017
86#define del_stmt_type 1018
87#define import_stmt_type 1019
88#define import_name_type 1020
89#define import_from_type 1021
90#define import_from_targets_type 1022
91#define import_from_as_names_type 1023
92#define import_from_as_name_type 1024
93#define dotted_as_names_type 1025
94#define dotted_as_name_type 1026
95#define dotted_name_type 1027 // Left-recursive
96#define if_stmt_type 1028
97#define elif_stmt_type 1029
98#define else_block_type 1030
99#define while_stmt_type 1031
100#define for_stmt_type 1032
101#define with_stmt_type 1033
102#define with_item_type 1034
103#define try_stmt_type 1035
104#define except_block_type 1036
105#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800106#define match_stmt_type 1038
107#define subject_expr_type 1039
108#define case_block_type 1040
109#define guard_type 1041
110#define patterns_type 1042
111#define pattern_type 1043
112#define as_pattern_type 1044
113#define or_pattern_type 1045
114#define closed_pattern_type 1046
115#define literal_pattern_type 1047
116#define signed_number_type 1048
117#define capture_pattern_type 1049
118#define wildcard_pattern_type 1050
119#define value_pattern_type 1051
120#define attr_type 1052 // Left-recursive
121#define name_or_attr_type 1053 // Left-recursive
122#define group_pattern_type 1054
123#define sequence_pattern_type 1055
124#define open_sequence_pattern_type 1056
125#define maybe_sequence_pattern_type 1057
126#define maybe_star_pattern_type 1058
127#define star_pattern_type 1059
128#define mapping_pattern_type 1060
129#define items_pattern_type 1061
130#define key_value_pattern_type 1062
131#define double_star_pattern_type 1063
132#define class_pattern_type 1064
133#define positional_patterns_type 1065
134#define keyword_patterns_type 1066
135#define keyword_pattern_type 1067
136#define return_stmt_type 1068
137#define raise_stmt_type 1069
138#define function_def_type 1070
139#define function_def_raw_type 1071
140#define func_type_comment_type 1072
141#define params_type 1073
142#define parameters_type 1074
143#define slash_no_default_type 1075
144#define slash_with_default_type 1076
145#define star_etc_type 1077
146#define kwds_type 1078
147#define param_no_default_type 1079
148#define param_with_default_type 1080
149#define param_maybe_default_type 1081
150#define param_type 1082
151#define annotation_type 1083
152#define default_type 1084
153#define decorators_type 1085
154#define class_def_type 1086
155#define class_def_raw_type 1087
156#define block_type 1088
157#define star_expressions_type 1089
158#define star_expression_type 1090
159#define star_named_expressions_type 1091
160#define star_named_expression_type 1092
161#define named_expression_type 1093
162#define annotated_rhs_type 1094
163#define expressions_type 1095
164#define expression_type 1096
165#define lambdef_type 1097
166#define lambda_params_type 1098
167#define lambda_parameters_type 1099
168#define lambda_slash_no_default_type 1100
169#define lambda_slash_with_default_type 1101
170#define lambda_star_etc_type 1102
171#define lambda_kwds_type 1103
172#define lambda_param_no_default_type 1104
173#define lambda_param_with_default_type 1105
174#define lambda_param_maybe_default_type 1106
175#define lambda_param_type 1107
176#define disjunction_type 1108
177#define conjunction_type 1109
178#define inversion_type 1110
179#define comparison_type 1111
180#define compare_op_bitwise_or_pair_type 1112
181#define eq_bitwise_or_type 1113
182#define noteq_bitwise_or_type 1114
183#define lte_bitwise_or_type 1115
184#define lt_bitwise_or_type 1116
185#define gte_bitwise_or_type 1117
186#define gt_bitwise_or_type 1118
187#define notin_bitwise_or_type 1119
188#define in_bitwise_or_type 1120
189#define isnot_bitwise_or_type 1121
190#define is_bitwise_or_type 1122
191#define bitwise_or_type 1123 // Left-recursive
192#define bitwise_xor_type 1124 // Left-recursive
193#define bitwise_and_type 1125 // Left-recursive
194#define shift_expr_type 1126 // Left-recursive
195#define sum_type 1127 // Left-recursive
196#define term_type 1128 // Left-recursive
197#define factor_type 1129
198#define power_type 1130
199#define await_primary_type 1131
200#define primary_type 1132 // Left-recursive
201#define slices_type 1133
202#define slice_type 1134
203#define atom_type 1135
204#define strings_type 1136
205#define list_type 1137
206#define listcomp_type 1138
207#define tuple_type 1139
208#define group_type 1140
209#define genexp_type 1141
210#define set_type 1142
211#define setcomp_type 1143
212#define dict_type 1144
213#define dictcomp_type 1145
214#define double_starred_kvpairs_type 1146
215#define double_starred_kvpair_type 1147
216#define kvpair_type 1148
217#define for_if_clauses_type 1149
218#define for_if_clause_type 1150
219#define yield_expr_type 1151
220#define arguments_type 1152
221#define args_type 1153
222#define kwargs_type 1154
223#define starred_expression_type 1155
224#define kwarg_or_starred_type 1156
225#define kwarg_or_double_starred_type 1157
226#define star_targets_type 1158
227#define star_targets_list_seq_type 1159
228#define star_targets_tuple_seq_type 1160
229#define star_target_type 1161
230#define target_with_star_atom_type 1162
231#define star_atom_type 1163
232#define single_target_type 1164
233#define single_subscript_attribute_target_type 1165
234#define del_targets_type 1166
235#define del_target_type 1167
236#define del_t_atom_type 1168
237#define targets_type 1169
238#define target_type 1170
239#define t_primary_type 1171 // Left-recursive
240#define t_lookahead_type 1172
241#define t_atom_type 1173
242#define invalid_arguments_type 1174
243#define invalid_kwarg_type 1175
244#define invalid_named_expression_type 1176
245#define invalid_assignment_type 1177
246#define invalid_ann_assign_target_type 1178
247#define invalid_del_stmt_type 1179
248#define invalid_block_type 1180
249#define invalid_primary_type 1181 // Left-recursive
250#define invalid_comprehension_type 1182
251#define invalid_dict_comprehension_type 1183
252#define invalid_parameters_type 1184
253#define invalid_parameters_helper_type 1185
254#define invalid_lambda_parameters_type 1186
255#define invalid_lambda_parameters_helper_type 1187
256#define invalid_star_etc_type 1188
257#define invalid_lambda_star_etc_type 1189
258#define invalid_double_type_comments_type 1190
259#define invalid_with_item_type 1191
260#define invalid_for_target_type 1192
261#define invalid_group_type 1193
262#define invalid_import_from_targets_type 1194
263#define invalid_with_stmt_type 1195
264#define invalid_except_block_type 1196
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000265#define invalid_match_stmt_type 1197
266#define invalid_case_block_type 1198
267#define _loop0_1_type 1199
268#define _loop0_2_type 1200
269#define _loop0_4_type 1201
270#define _gather_3_type 1202
271#define _loop0_6_type 1203
272#define _gather_5_type 1204
273#define _loop0_8_type 1205
274#define _gather_7_type 1206
275#define _loop0_10_type 1207
276#define _gather_9_type 1208
277#define _loop1_11_type 1209
278#define _loop0_13_type 1210
279#define _gather_12_type 1211
280#define _tmp_14_type 1212
281#define _tmp_15_type 1213
282#define _tmp_16_type 1214
283#define _tmp_17_type 1215
284#define _tmp_18_type 1216
285#define _tmp_19_type 1217
286#define _tmp_20_type 1218
287#define _tmp_21_type 1219
288#define _loop1_22_type 1220
289#define _tmp_23_type 1221
290#define _tmp_24_type 1222
291#define _loop0_26_type 1223
292#define _gather_25_type 1224
293#define _loop0_28_type 1225
294#define _gather_27_type 1226
295#define _tmp_29_type 1227
296#define _tmp_30_type 1228
297#define _loop0_31_type 1229
298#define _loop1_32_type 1230
299#define _loop0_34_type 1231
300#define _gather_33_type 1232
301#define _tmp_35_type 1233
302#define _loop0_37_type 1234
303#define _gather_36_type 1235
304#define _tmp_38_type 1236
305#define _loop0_40_type 1237
306#define _gather_39_type 1238
307#define _loop0_42_type 1239
308#define _gather_41_type 1240
309#define _loop0_44_type 1241
310#define _gather_43_type 1242
311#define _loop0_46_type 1243
312#define _gather_45_type 1244
313#define _tmp_47_type 1245
314#define _loop1_48_type 1246
315#define _tmp_49_type 1247
316#define _loop1_50_type 1248
317#define _loop0_52_type 1249
318#define _gather_51_type 1250
319#define _tmp_53_type 1251
320#define _tmp_54_type 1252
321#define _tmp_55_type 1253
322#define _loop0_57_type 1254
323#define _gather_56_type 1255
324#define _tmp_58_type 1256
325#define _loop0_60_type 1257
326#define _gather_59_type 1258
327#define _tmp_61_type 1259
328#define _loop0_63_type 1260
329#define _gather_62_type 1261
330#define _loop0_65_type 1262
331#define _gather_64_type 1263
332#define _tmp_66_type 1264
333#define _tmp_67_type 1265
334#define _tmp_68_type 1266
335#define _tmp_69_type 1267
336#define _loop0_70_type 1268
337#define _loop0_71_type 1269
338#define _loop0_72_type 1270
339#define _loop1_73_type 1271
340#define _loop0_74_type 1272
341#define _loop1_75_type 1273
342#define _loop1_76_type 1274
343#define _loop1_77_type 1275
344#define _loop0_78_type 1276
345#define _loop1_79_type 1277
346#define _loop0_80_type 1278
347#define _loop1_81_type 1279
348#define _loop0_82_type 1280
349#define _loop1_83_type 1281
350#define _loop1_84_type 1282
351#define _tmp_85_type 1283
352#define _loop1_86_type 1284
353#define _loop0_88_type 1285
354#define _gather_87_type 1286
355#define _loop1_89_type 1287
356#define _loop0_90_type 1288
357#define _loop0_91_type 1289
358#define _loop0_92_type 1290
359#define _loop1_93_type 1291
360#define _loop0_94_type 1292
361#define _loop1_95_type 1293
362#define _loop1_96_type 1294
363#define _loop1_97_type 1295
364#define _loop0_98_type 1296
365#define _loop1_99_type 1297
366#define _loop0_100_type 1298
367#define _loop1_101_type 1299
368#define _loop0_102_type 1300
369#define _loop1_103_type 1301
370#define _loop1_104_type 1302
371#define _loop1_105_type 1303
372#define _loop1_106_type 1304
373#define _tmp_107_type 1305
374#define _loop0_109_type 1306
375#define _gather_108_type 1307
376#define _tmp_110_type 1308
377#define _tmp_111_type 1309
378#define _tmp_112_type 1310
379#define _tmp_113_type 1311
380#define _loop1_114_type 1312
381#define _tmp_115_type 1313
382#define _tmp_116_type 1314
383#define _loop0_118_type 1315
384#define _gather_117_type 1316
385#define _loop1_119_type 1317
386#define _loop0_120_type 1318
387#define _loop0_121_type 1319
388#define _loop0_123_type 1320
389#define _gather_122_type 1321
390#define _tmp_124_type 1322
391#define _loop0_126_type 1323
392#define _gather_125_type 1324
393#define _loop0_128_type 1325
394#define _gather_127_type 1326
395#define _loop0_130_type 1327
396#define _gather_129_type 1328
397#define _loop0_132_type 1329
398#define _gather_131_type 1330
399#define _loop0_133_type 1331
400#define _loop0_135_type 1332
401#define _gather_134_type 1333
402#define _loop1_136_type 1334
403#define _tmp_137_type 1335
404#define _loop0_139_type 1336
405#define _gather_138_type 1337
406#define _loop0_141_type 1338
407#define _gather_140_type 1339
408#define _tmp_142_type 1340
409#define _loop0_143_type 1341
410#define _loop0_144_type 1342
411#define _loop0_145_type 1343
412#define _tmp_146_type 1344
413#define _tmp_147_type 1345
414#define _tmp_148_type 1346
415#define _loop0_149_type 1347
416#define _loop1_150_type 1348
417#define _loop0_151_type 1349
418#define _loop1_152_type 1350
419#define _tmp_153_type 1351
420#define _tmp_154_type 1352
421#define _tmp_155_type 1353
422#define _loop0_157_type 1354
423#define _gather_156_type 1355
424#define _loop0_159_type 1356
425#define _gather_158_type 1357
426#define _tmp_160_type 1358
427#define _tmp_161_type 1359
428#define _tmp_162_type 1360
429#define _tmp_163_type 1361
430#define _tmp_164_type 1362
431#define _tmp_165_type 1363
432#define _tmp_166_type 1364
433#define _tmp_167_type 1365
434#define _tmp_168_type 1366
435#define _tmp_169_type 1367
436#define _tmp_170_type 1368
437#define _tmp_171_type 1369
438#define _tmp_172_type 1370
439#define _tmp_173_type 1371
440#define _tmp_174_type 1372
441#define _tmp_175_type 1373
442#define _tmp_176_type 1374
443#define _tmp_177_type 1375
444#define _tmp_178_type 1376
445#define _tmp_179_type 1377
446#define _tmp_180_type 1378
447#define _tmp_181_type 1379
448#define _tmp_182_type 1380
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100449
450static mod_ty file_rule(Parser *p);
451static mod_ty interactive_rule(Parser *p);
452static mod_ty eval_rule(Parser *p);
453static mod_ty func_type_rule(Parser *p);
454static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100455static asdl_expr_seq* type_expressions_rule(Parser *p);
456static asdl_stmt_seq* statements_rule(Parser *p);
457static asdl_stmt_seq* statement_rule(Parser *p);
458static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000459static asdl_stmt_seq* simple_stmts_rule(Parser *p);
460static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100461static stmt_ty compound_stmt_rule(Parser *p);
462static stmt_ty assignment_rule(Parser *p);
463static AugOperator* augassign_rule(Parser *p);
464static stmt_ty global_stmt_rule(Parser *p);
465static stmt_ty nonlocal_stmt_rule(Parser *p);
466static stmt_ty yield_stmt_rule(Parser *p);
467static stmt_ty assert_stmt_rule(Parser *p);
468static stmt_ty del_stmt_rule(Parser *p);
469static stmt_ty import_stmt_rule(Parser *p);
470static stmt_ty import_name_rule(Parser *p);
471static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100472static asdl_alias_seq* import_from_targets_rule(Parser *p);
473static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100474static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100475static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100476static alias_ty dotted_as_name_rule(Parser *p);
477static expr_ty dotted_name_rule(Parser *p);
478static stmt_ty if_stmt_rule(Parser *p);
479static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100480static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100481static stmt_ty while_stmt_rule(Parser *p);
482static stmt_ty for_stmt_rule(Parser *p);
483static stmt_ty with_stmt_rule(Parser *p);
484static withitem_ty with_item_rule(Parser *p);
485static stmt_ty try_stmt_rule(Parser *p);
486static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100487static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800488static stmt_ty match_stmt_rule(Parser *p);
489static expr_ty subject_expr_rule(Parser *p);
490static match_case_ty case_block_rule(Parser *p);
491static expr_ty guard_rule(Parser *p);
492static expr_ty patterns_rule(Parser *p);
493static expr_ty pattern_rule(Parser *p);
494static expr_ty as_pattern_rule(Parser *p);
495static expr_ty or_pattern_rule(Parser *p);
496static expr_ty closed_pattern_rule(Parser *p);
497static expr_ty literal_pattern_rule(Parser *p);
498static expr_ty signed_number_rule(Parser *p);
499static expr_ty capture_pattern_rule(Parser *p);
500static expr_ty wildcard_pattern_rule(Parser *p);
501static expr_ty value_pattern_rule(Parser *p);
502static expr_ty attr_rule(Parser *p);
503static expr_ty name_or_attr_rule(Parser *p);
504static expr_ty group_pattern_rule(Parser *p);
505static expr_ty sequence_pattern_rule(Parser *p);
506static asdl_seq* open_sequence_pattern_rule(Parser *p);
507static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
508static expr_ty maybe_star_pattern_rule(Parser *p);
509static expr_ty star_pattern_rule(Parser *p);
510static expr_ty mapping_pattern_rule(Parser *p);
511static asdl_seq* items_pattern_rule(Parser *p);
512static KeyValuePair* key_value_pattern_rule(Parser *p);
513static KeyValuePair* double_star_pattern_rule(Parser *p);
514static expr_ty class_pattern_rule(Parser *p);
515static asdl_expr_seq* positional_patterns_rule(Parser *p);
516static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
517static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100518static stmt_ty return_stmt_rule(Parser *p);
519static stmt_ty raise_stmt_rule(Parser *p);
520static stmt_ty function_def_rule(Parser *p);
521static stmt_ty function_def_raw_rule(Parser *p);
522static Token* func_type_comment_rule(Parser *p);
523static arguments_ty params_rule(Parser *p);
524static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100525static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static SlashWithDefault* slash_with_default_rule(Parser *p);
527static StarEtc* star_etc_rule(Parser *p);
528static arg_ty kwds_rule(Parser *p);
529static arg_ty param_no_default_rule(Parser *p);
530static NameDefaultPair* param_with_default_rule(Parser *p);
531static NameDefaultPair* param_maybe_default_rule(Parser *p);
532static arg_ty param_rule(Parser *p);
533static expr_ty annotation_rule(Parser *p);
534static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100535static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100536static stmt_ty class_def_rule(Parser *p);
537static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100538static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100539static expr_ty star_expressions_rule(Parser *p);
540static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100541static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100542static expr_ty star_named_expression_rule(Parser *p);
543static expr_ty named_expression_rule(Parser *p);
544static expr_ty annotated_rhs_rule(Parser *p);
545static expr_ty expressions_rule(Parser *p);
546static expr_ty expression_rule(Parser *p);
547static expr_ty lambdef_rule(Parser *p);
548static arguments_ty lambda_params_rule(Parser *p);
549static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100550static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100551static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
552static StarEtc* lambda_star_etc_rule(Parser *p);
553static arg_ty lambda_kwds_rule(Parser *p);
554static arg_ty lambda_param_no_default_rule(Parser *p);
555static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
556static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
557static arg_ty lambda_param_rule(Parser *p);
558static expr_ty disjunction_rule(Parser *p);
559static expr_ty conjunction_rule(Parser *p);
560static expr_ty inversion_rule(Parser *p);
561static expr_ty comparison_rule(Parser *p);
562static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
563static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
564static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
565static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
566static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
567static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
568static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
569static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
570static CmpopExprPair* in_bitwise_or_rule(Parser *p);
571static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
572static CmpopExprPair* is_bitwise_or_rule(Parser *p);
573static expr_ty bitwise_or_rule(Parser *p);
574static expr_ty bitwise_xor_rule(Parser *p);
575static expr_ty bitwise_and_rule(Parser *p);
576static expr_ty shift_expr_rule(Parser *p);
577static expr_ty sum_rule(Parser *p);
578static expr_ty term_rule(Parser *p);
579static expr_ty factor_rule(Parser *p);
580static expr_ty power_rule(Parser *p);
581static expr_ty await_primary_rule(Parser *p);
582static expr_ty primary_rule(Parser *p);
583static expr_ty slices_rule(Parser *p);
584static expr_ty slice_rule(Parser *p);
585static expr_ty atom_rule(Parser *p);
586static expr_ty strings_rule(Parser *p);
587static expr_ty list_rule(Parser *p);
588static expr_ty listcomp_rule(Parser *p);
589static expr_ty tuple_rule(Parser *p);
590static expr_ty group_rule(Parser *p);
591static expr_ty genexp_rule(Parser *p);
592static expr_ty set_rule(Parser *p);
593static expr_ty setcomp_rule(Parser *p);
594static expr_ty dict_rule(Parser *p);
595static expr_ty dictcomp_rule(Parser *p);
596static asdl_seq* double_starred_kvpairs_rule(Parser *p);
597static KeyValuePair* double_starred_kvpair_rule(Parser *p);
598static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100599static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static comprehension_ty for_if_clause_rule(Parser *p);
601static expr_ty yield_expr_rule(Parser *p);
602static expr_ty arguments_rule(Parser *p);
603static expr_ty args_rule(Parser *p);
604static asdl_seq* kwargs_rule(Parser *p);
605static expr_ty starred_expression_rule(Parser *p);
606static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
607static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
608static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200609static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
610static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100611static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200612static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100613static expr_ty star_atom_rule(Parser *p);
614static expr_ty single_target_rule(Parser *p);
615static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100616static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100617static expr_ty del_target_rule(Parser *p);
618static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100619static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100620static expr_ty target_rule(Parser *p);
621static expr_ty t_primary_rule(Parser *p);
622static void *t_lookahead_rule(Parser *p);
623static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200624static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100625static void *invalid_kwarg_rule(Parser *p);
626static void *invalid_named_expression_rule(Parser *p);
627static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300628static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300629static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100630static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200631static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100632static void *invalid_comprehension_rule(Parser *p);
633static void *invalid_dict_comprehension_rule(Parser *p);
634static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200635static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100636static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200637static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100638static void *invalid_star_etc_rule(Parser *p);
639static void *invalid_lambda_star_etc_rule(Parser *p);
640static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300641static void *invalid_with_item_rule(Parser *p);
642static void *invalid_for_target_rule(Parser *p);
643static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100644static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000645static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000646static void *invalid_except_block_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000647static void *invalid_match_stmt_rule(Parser *p);
648static void *invalid_case_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100649static asdl_seq *_loop0_1_rule(Parser *p);
650static asdl_seq *_loop0_2_rule(Parser *p);
651static asdl_seq *_loop0_4_rule(Parser *p);
652static asdl_seq *_gather_3_rule(Parser *p);
653static asdl_seq *_loop0_6_rule(Parser *p);
654static asdl_seq *_gather_5_rule(Parser *p);
655static asdl_seq *_loop0_8_rule(Parser *p);
656static asdl_seq *_gather_7_rule(Parser *p);
657static asdl_seq *_loop0_10_rule(Parser *p);
658static asdl_seq *_gather_9_rule(Parser *p);
659static asdl_seq *_loop1_11_rule(Parser *p);
660static asdl_seq *_loop0_13_rule(Parser *p);
661static asdl_seq *_gather_12_rule(Parser *p);
662static void *_tmp_14_rule(Parser *p);
663static void *_tmp_15_rule(Parser *p);
664static void *_tmp_16_rule(Parser *p);
665static void *_tmp_17_rule(Parser *p);
666static void *_tmp_18_rule(Parser *p);
667static void *_tmp_19_rule(Parser *p);
668static void *_tmp_20_rule(Parser *p);
669static void *_tmp_21_rule(Parser *p);
670static asdl_seq *_loop1_22_rule(Parser *p);
671static void *_tmp_23_rule(Parser *p);
672static void *_tmp_24_rule(Parser *p);
673static asdl_seq *_loop0_26_rule(Parser *p);
674static asdl_seq *_gather_25_rule(Parser *p);
675static asdl_seq *_loop0_28_rule(Parser *p);
676static asdl_seq *_gather_27_rule(Parser *p);
677static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300678static void *_tmp_30_rule(Parser *p);
679static asdl_seq *_loop0_31_rule(Parser *p);
680static asdl_seq *_loop1_32_rule(Parser *p);
681static asdl_seq *_loop0_34_rule(Parser *p);
682static asdl_seq *_gather_33_rule(Parser *p);
683static void *_tmp_35_rule(Parser *p);
684static asdl_seq *_loop0_37_rule(Parser *p);
685static asdl_seq *_gather_36_rule(Parser *p);
686static void *_tmp_38_rule(Parser *p);
687static asdl_seq *_loop0_40_rule(Parser *p);
688static asdl_seq *_gather_39_rule(Parser *p);
689static asdl_seq *_loop0_42_rule(Parser *p);
690static asdl_seq *_gather_41_rule(Parser *p);
691static asdl_seq *_loop0_44_rule(Parser *p);
692static asdl_seq *_gather_43_rule(Parser *p);
693static asdl_seq *_loop0_46_rule(Parser *p);
694static asdl_seq *_gather_45_rule(Parser *p);
695static void *_tmp_47_rule(Parser *p);
696static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100697static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800698static asdl_seq *_loop1_50_rule(Parser *p);
699static asdl_seq *_loop0_52_rule(Parser *p);
700static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300701static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800702static void *_tmp_54_rule(Parser *p);
703static void *_tmp_55_rule(Parser *p);
704static asdl_seq *_loop0_57_rule(Parser *p);
705static asdl_seq *_gather_56_rule(Parser *p);
706static void *_tmp_58_rule(Parser *p);
707static asdl_seq *_loop0_60_rule(Parser *p);
708static asdl_seq *_gather_59_rule(Parser *p);
709static void *_tmp_61_rule(Parser *p);
710static asdl_seq *_loop0_63_rule(Parser *p);
711static asdl_seq *_gather_62_rule(Parser *p);
712static asdl_seq *_loop0_65_rule(Parser *p);
713static asdl_seq *_gather_64_rule(Parser *p);
714static void *_tmp_66_rule(Parser *p);
715static void *_tmp_67_rule(Parser *p);
716static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300717static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800718static asdl_seq *_loop0_70_rule(Parser *p);
719static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000720static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000721static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300722static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800723static asdl_seq *_loop1_75_rule(Parser *p);
724static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000725static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300726static asdl_seq *_loop0_78_rule(Parser *p);
727static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800728static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100729static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000730static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300731static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800732static asdl_seq *_loop1_84_rule(Parser *p);
733static void *_tmp_85_rule(Parser *p);
734static asdl_seq *_loop1_86_rule(Parser *p);
735static asdl_seq *_loop0_88_rule(Parser *p);
736static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100737static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800738static asdl_seq *_loop0_90_rule(Parser *p);
739static asdl_seq *_loop0_91_rule(Parser *p);
740static asdl_seq *_loop0_92_rule(Parser *p);
741static asdl_seq *_loop1_93_rule(Parser *p);
742static asdl_seq *_loop0_94_rule(Parser *p);
743static asdl_seq *_loop1_95_rule(Parser *p);
744static asdl_seq *_loop1_96_rule(Parser *p);
745static asdl_seq *_loop1_97_rule(Parser *p);
746static asdl_seq *_loop0_98_rule(Parser *p);
747static asdl_seq *_loop1_99_rule(Parser *p);
748static asdl_seq *_loop0_100_rule(Parser *p);
749static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000750static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000751static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800752static asdl_seq *_loop1_104_rule(Parser *p);
753static asdl_seq *_loop1_105_rule(Parser *p);
754static asdl_seq *_loop1_106_rule(Parser *p);
755static void *_tmp_107_rule(Parser *p);
756static asdl_seq *_loop0_109_rule(Parser *p);
757static asdl_seq *_gather_108_rule(Parser *p);
758static void *_tmp_110_rule(Parser *p);
759static void *_tmp_111_rule(Parser *p);
760static void *_tmp_112_rule(Parser *p);
761static void *_tmp_113_rule(Parser *p);
762static asdl_seq *_loop1_114_rule(Parser *p);
763static void *_tmp_115_rule(Parser *p);
764static void *_tmp_116_rule(Parser *p);
765static asdl_seq *_loop0_118_rule(Parser *p);
766static asdl_seq *_gather_117_rule(Parser *p);
767static asdl_seq *_loop1_119_rule(Parser *p);
768static asdl_seq *_loop0_120_rule(Parser *p);
769static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200770static asdl_seq *_loop0_123_rule(Parser *p);
771static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800772static void *_tmp_124_rule(Parser *p);
773static asdl_seq *_loop0_126_rule(Parser *p);
774static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300775static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800776static asdl_seq *_gather_127_rule(Parser *p);
777static asdl_seq *_loop0_130_rule(Parser *p);
778static asdl_seq *_gather_129_rule(Parser *p);
779static asdl_seq *_loop0_132_rule(Parser *p);
780static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000781static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000782static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000784static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100785static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800786static asdl_seq *_loop0_139_rule(Parser *p);
787static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000788static asdl_seq *_loop0_141_rule(Parser *p);
789static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static void *_tmp_142_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000791static asdl_seq *_loop0_143_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800792static asdl_seq *_loop0_144_rule(Parser *p);
793static asdl_seq *_loop0_145_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100794static void *_tmp_146_rule(Parser *p);
795static void *_tmp_147_rule(Parser *p);
796static void *_tmp_148_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800797static asdl_seq *_loop0_149_rule(Parser *p);
798static asdl_seq *_loop1_150_rule(Parser *p);
799static asdl_seq *_loop0_151_rule(Parser *p);
800static asdl_seq *_loop1_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200801static void *_tmp_153_rule(Parser *p);
802static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000803static void *_tmp_155_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop0_157_rule(Parser *p);
805static asdl_seq *_gather_156_rule(Parser *p);
806static asdl_seq *_loop0_159_rule(Parser *p);
807static asdl_seq *_gather_158_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000808static void *_tmp_160_rule(Parser *p);
809static void *_tmp_161_rule(Parser *p);
810static void *_tmp_162_rule(Parser *p);
811static void *_tmp_163_rule(Parser *p);
812static void *_tmp_164_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000813static void *_tmp_165_rule(Parser *p);
814static void *_tmp_166_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800815static void *_tmp_167_rule(Parser *p);
816static void *_tmp_168_rule(Parser *p);
817static void *_tmp_169_rule(Parser *p);
818static void *_tmp_170_rule(Parser *p);
819static void *_tmp_171_rule(Parser *p);
820static void *_tmp_172_rule(Parser *p);
821static void *_tmp_173_rule(Parser *p);
822static void *_tmp_174_rule(Parser *p);
823static void *_tmp_175_rule(Parser *p);
824static void *_tmp_176_rule(Parser *p);
825static void *_tmp_177_rule(Parser *p);
826static void *_tmp_178_rule(Parser *p);
827static void *_tmp_179_rule(Parser *p);
828static void *_tmp_180_rule(Parser *p);
829static void *_tmp_181_rule(Parser *p);
830static void *_tmp_182_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000831
832
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100833// file: statements? $
834static mod_ty
835file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000836{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100837 D(p->level++);
838 if (p->error_indicator) {
839 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000840 return NULL;
841 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100842 mod_ty _res = NULL;
843 int _mark = p->mark;
844 { // statements? $
845 if (p->error_indicator) {
846 D(p->level--);
847 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000848 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100849 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
850 void *a;
851 Token * endmarker_var;
852 if (
853 (a = statements_rule(p), 1) // statements?
854 &&
855 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
856 )
857 {
858 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
859 _res = _PyPegen_make_module ( p , a );
860 if (_res == NULL && PyErr_Occurred()) {
861 p->error_indicator = 1;
862 D(p->level--);
863 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000864 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100865 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000866 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100867 p->mark = _mark;
868 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000870 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100871 _res = NULL;
872 done:
873 D(p->level--);
874 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000875}
876
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100877// interactive: statement_newline
878static mod_ty
879interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000880{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100881 D(p->level++);
882 if (p->error_indicator) {
883 D(p->level--);
884 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000885 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100886 mod_ty _res = NULL;
887 int _mark = p->mark;
888 { // statement_newline
889 if (p->error_indicator) {
890 D(p->level--);
891 return NULL;
892 }
893 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100894 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100895 if (
896 (a = statement_newline_rule(p)) // statement_newline
897 )
898 {
899 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200900 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100901 if (_res == NULL && PyErr_Occurred()) {
902 p->error_indicator = 1;
903 D(p->level--);
904 return NULL;
905 }
906 goto done;
907 }
908 p->mark = _mark;
909 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
911 }
912 _res = NULL;
913 done:
914 D(p->level--);
915 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000916}
917
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100918// eval: expressions NEWLINE* $
919static mod_ty
920eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000921{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100922 D(p->level++);
923 if (p->error_indicator) {
924 D(p->level--);
925 return NULL;
926 }
927 mod_ty _res = NULL;
928 int _mark = p->mark;
929 { // expressions NEWLINE* $
930 if (p->error_indicator) {
931 D(p->level--);
932 return NULL;
933 }
934 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
935 asdl_seq * _loop0_1_var;
936 expr_ty a;
937 Token * endmarker_var;
938 if (
939 (a = expressions_rule(p)) // expressions
940 &&
941 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
942 &&
943 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
944 )
945 {
946 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200947 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100948 if (_res == NULL && PyErr_Occurred()) {
949 p->error_indicator = 1;
950 D(p->level--);
951 return NULL;
952 }
953 goto done;
954 }
955 p->mark = _mark;
956 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
958 }
959 _res = NULL;
960 done:
961 D(p->level--);
962 return _res;
963}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
966static mod_ty
967func_type_rule(Parser *p)
968{
969 D(p->level++);
970 if (p->error_indicator) {
971 D(p->level--);
972 return NULL;
973 }
974 mod_ty _res = NULL;
975 int _mark = p->mark;
976 { // '(' type_expressions? ')' '->' expression NEWLINE* $
977 if (p->error_indicator) {
978 D(p->level--);
979 return NULL;
980 }
981 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
982 Token * _literal;
983 Token * _literal_1;
984 Token * _literal_2;
985 asdl_seq * _loop0_2_var;
986 void *a;
987 expr_ty b;
988 Token * endmarker_var;
989 if (
990 (_literal = _PyPegen_expect_token(p, 7)) // token='('
991 &&
992 (a = type_expressions_rule(p), 1) // type_expressions?
993 &&
994 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
995 &&
996 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
997 &&
998 (b = expression_rule(p)) // expression
999 &&
1000 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1001 &&
1002 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1003 )
1004 {
1005 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 +02001006 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001007 if (_res == NULL && PyErr_Occurred()) {
1008 p->error_indicator = 1;
1009 D(p->level--);
1010 return NULL;
1011 }
1012 goto done;
1013 }
1014 p->mark = _mark;
1015 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1017 }
1018 _res = NULL;
1019 done:
1020 D(p->level--);
1021 return _res;
1022}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001023
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001024// fstring: star_expressions
1025static expr_ty
1026fstring_rule(Parser *p)
1027{
1028 D(p->level++);
1029 if (p->error_indicator) {
1030 D(p->level--);
1031 return NULL;
1032 }
1033 expr_ty _res = NULL;
1034 int _mark = p->mark;
1035 { // star_expressions
1036 if (p->error_indicator) {
1037 D(p->level--);
1038 return NULL;
1039 }
1040 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1041 expr_ty star_expressions_var;
1042 if (
1043 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1044 )
1045 {
1046 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1047 _res = star_expressions_var;
1048 goto done;
1049 }
1050 p->mark = _mark;
1051 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1053 }
1054 _res = NULL;
1055 done:
1056 D(p->level--);
1057 return _res;
1058}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001059
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001060// type_expressions:
1061// | ','.expression+ ',' '*' expression ',' '**' expression
1062// | ','.expression+ ',' '*' expression
1063// | ','.expression+ ',' '**' expression
1064// | '*' expression ',' '**' expression
1065// | '*' expression
1066// | '**' expression
1067// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001068static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001069type_expressions_rule(Parser *p)
1070{
1071 D(p->level++);
1072 if (p->error_indicator) {
1073 D(p->level--);
1074 return NULL;
1075 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001076 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001077 int _mark = p->mark;
1078 { // ','.expression+ ',' '*' expression ',' '**' expression
1079 if (p->error_indicator) {
1080 D(p->level--);
1081 return NULL;
1082 }
1083 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1084 Token * _literal;
1085 Token * _literal_1;
1086 Token * _literal_2;
1087 Token * _literal_3;
1088 asdl_seq * a;
1089 expr_ty b;
1090 expr_ty c;
1091 if (
1092 (a = _gather_3_rule(p)) // ','.expression+
1093 &&
1094 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1095 &&
1096 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1097 &&
1098 (b = expression_rule(p)) // expression
1099 &&
1100 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1101 &&
1102 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1103 &&
1104 (c = expression_rule(p)) // expression
1105 )
1106 {
1107 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 +03001108 _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 +01001109 if (_res == NULL && PyErr_Occurred()) {
1110 p->error_indicator = 1;
1111 D(p->level--);
1112 return NULL;
1113 }
1114 goto done;
1115 }
1116 p->mark = _mark;
1117 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1119 }
1120 { // ','.expression+ ',' '*' expression
1121 if (p->error_indicator) {
1122 D(p->level--);
1123 return NULL;
1124 }
1125 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1126 Token * _literal;
1127 Token * _literal_1;
1128 asdl_seq * a;
1129 expr_ty b;
1130 if (
1131 (a = _gather_5_rule(p)) // ','.expression+
1132 &&
1133 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1134 &&
1135 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1136 &&
1137 (b = expression_rule(p)) // expression
1138 )
1139 {
1140 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 +01001141 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001142 if (_res == NULL && PyErr_Occurred()) {
1143 p->error_indicator = 1;
1144 D(p->level--);
1145 return NULL;
1146 }
1147 goto done;
1148 }
1149 p->mark = _mark;
1150 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1152 }
1153 { // ','.expression+ ',' '**' expression
1154 if (p->error_indicator) {
1155 D(p->level--);
1156 return NULL;
1157 }
1158 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1159 Token * _literal;
1160 Token * _literal_1;
1161 asdl_seq * a;
1162 expr_ty b;
1163 if (
1164 (a = _gather_7_rule(p)) // ','.expression+
1165 &&
1166 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1167 &&
1168 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1169 &&
1170 (b = expression_rule(p)) // expression
1171 )
1172 {
1173 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 +01001174 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001175 if (_res == NULL && PyErr_Occurred()) {
1176 p->error_indicator = 1;
1177 D(p->level--);
1178 return NULL;
1179 }
1180 goto done;
1181 }
1182 p->mark = _mark;
1183 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1185 }
1186 { // '*' expression ',' '**' expression
1187 if (p->error_indicator) {
1188 D(p->level--);
1189 return NULL;
1190 }
1191 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1192 Token * _literal;
1193 Token * _literal_1;
1194 Token * _literal_2;
1195 expr_ty a;
1196 expr_ty b;
1197 if (
1198 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1199 &&
1200 (a = expression_rule(p)) // expression
1201 &&
1202 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1203 &&
1204 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1205 &&
1206 (b = expression_rule(p)) // expression
1207 )
1208 {
1209 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 +03001210 _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 +01001211 if (_res == NULL && PyErr_Occurred()) {
1212 p->error_indicator = 1;
1213 D(p->level--);
1214 return NULL;
1215 }
1216 goto done;
1217 }
1218 p->mark = _mark;
1219 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1221 }
1222 { // '*' expression
1223 if (p->error_indicator) {
1224 D(p->level--);
1225 return NULL;
1226 }
1227 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1228 Token * _literal;
1229 expr_ty a;
1230 if (
1231 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1232 &&
1233 (a = expression_rule(p)) // expression
1234 )
1235 {
1236 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001237 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001238 if (_res == NULL && PyErr_Occurred()) {
1239 p->error_indicator = 1;
1240 D(p->level--);
1241 return NULL;
1242 }
1243 goto done;
1244 }
1245 p->mark = _mark;
1246 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1248 }
1249 { // '**' expression
1250 if (p->error_indicator) {
1251 D(p->level--);
1252 return NULL;
1253 }
1254 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1255 Token * _literal;
1256 expr_ty a;
1257 if (
1258 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1259 &&
1260 (a = expression_rule(p)) // expression
1261 )
1262 {
1263 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001264 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001265 if (_res == NULL && PyErr_Occurred()) {
1266 p->error_indicator = 1;
1267 D(p->level--);
1268 return NULL;
1269 }
1270 goto done;
1271 }
1272 p->mark = _mark;
1273 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1275 }
1276 { // ','.expression+
1277 if (p->error_indicator) {
1278 D(p->level--);
1279 return NULL;
1280 }
1281 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001282 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001283 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001284 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001285 )
1286 {
1287 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001288 _res = a;
1289 if (_res == NULL && PyErr_Occurred()) {
1290 p->error_indicator = 1;
1291 D(p->level--);
1292 return NULL;
1293 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001294 goto done;
1295 }
1296 p->mark = _mark;
1297 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1299 }
1300 _res = NULL;
1301 done:
1302 D(p->level--);
1303 return _res;
1304}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001305
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001306// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001307static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001308statements_rule(Parser *p)
1309{
1310 D(p->level++);
1311 if (p->error_indicator) {
1312 D(p->level--);
1313 return NULL;
1314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001315 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001316 int _mark = p->mark;
1317 { // statement+
1318 if (p->error_indicator) {
1319 D(p->level--);
1320 return NULL;
1321 }
1322 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1323 asdl_seq * a;
1324 if (
1325 (a = _loop1_11_rule(p)) // statement+
1326 )
1327 {
1328 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001329 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001330 if (_res == NULL && PyErr_Occurred()) {
1331 p->error_indicator = 1;
1332 D(p->level--);
1333 return NULL;
1334 }
1335 goto done;
1336 }
1337 p->mark = _mark;
1338 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1340 }
1341 _res = NULL;
1342 done:
1343 D(p->level--);
1344 return _res;
1345}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001346
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001347// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001348static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001349statement_rule(Parser *p)
1350{
1351 D(p->level++);
1352 if (p->error_indicator) {
1353 D(p->level--);
1354 return NULL;
1355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001356 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001357 int _mark = p->mark;
1358 { // compound_stmt
1359 if (p->error_indicator) {
1360 D(p->level--);
1361 return NULL;
1362 }
1363 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1364 stmt_ty a;
1365 if (
1366 (a = compound_stmt_rule(p)) // compound_stmt
1367 )
1368 {
1369 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 if (_res == NULL && PyErr_Occurred()) {
1372 p->error_indicator = 1;
1373 D(p->level--);
1374 return NULL;
1375 }
1376 goto done;
1377 }
1378 p->mark = _mark;
1379 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1381 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001382 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383 if (p->error_indicator) {
1384 D(p->level--);
1385 return NULL;
1386 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001387 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001388 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001389 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001390 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001391 )
1392 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001393 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001394 _res = a;
1395 if (_res == NULL && PyErr_Occurred()) {
1396 p->error_indicator = 1;
1397 D(p->level--);
1398 return NULL;
1399 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001400 goto done;
1401 }
1402 p->mark = _mark;
1403 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001405 }
1406 _res = NULL;
1407 done:
1408 D(p->level--);
1409 return _res;
1410}
1411
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001412// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001413static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001414statement_newline_rule(Parser *p)
1415{
1416 D(p->level++);
1417 if (p->error_indicator) {
1418 D(p->level--);
1419 return NULL;
1420 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001421 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001422 int _mark = p->mark;
1423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1424 p->error_indicator = 1;
1425 D(p->level--);
1426 return NULL;
1427 }
1428 int _start_lineno = p->tokens[_mark]->lineno;
1429 UNUSED(_start_lineno); // Only used by EXTRA macro
1430 int _start_col_offset = p->tokens[_mark]->col_offset;
1431 UNUSED(_start_col_offset); // Only used by EXTRA macro
1432 { // compound_stmt NEWLINE
1433 if (p->error_indicator) {
1434 D(p->level--);
1435 return NULL;
1436 }
1437 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1438 stmt_ty a;
1439 Token * newline_var;
1440 if (
1441 (a = compound_stmt_rule(p)) // compound_stmt
1442 &&
1443 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1444 )
1445 {
1446 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 +01001447 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001448 if (_res == NULL && PyErr_Occurred()) {
1449 p->error_indicator = 1;
1450 D(p->level--);
1451 return NULL;
1452 }
1453 goto done;
1454 }
1455 p->mark = _mark;
1456 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1458 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001459 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001460 if (p->error_indicator) {
1461 D(p->level--);
1462 return NULL;
1463 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001464 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1465 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001466 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001467 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001468 )
1469 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001470 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1471 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001472 goto done;
1473 }
1474 p->mark = _mark;
1475 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 }
1478 { // NEWLINE
1479 if (p->error_indicator) {
1480 D(p->level--);
1481 return NULL;
1482 }
1483 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1484 Token * newline_var;
1485 if (
1486 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1487 )
1488 {
1489 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1490 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1491 if (_token == NULL) {
1492 D(p->level--);
1493 return NULL;
1494 }
1495 int _end_lineno = _token->end_lineno;
1496 UNUSED(_end_lineno); // Only used by EXTRA macro
1497 int _end_col_offset = _token->end_col_offset;
1498 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001499 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001500 if (_res == NULL && PyErr_Occurred()) {
1501 p->error_indicator = 1;
1502 D(p->level--);
1503 return NULL;
1504 }
1505 goto done;
1506 }
1507 p->mark = _mark;
1508 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1510 }
1511 { // $
1512 if (p->error_indicator) {
1513 D(p->level--);
1514 return NULL;
1515 }
1516 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1517 Token * endmarker_var;
1518 if (
1519 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1520 )
1521 {
1522 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1523 _res = _PyPegen_interactive_exit ( p );
1524 if (_res == NULL && PyErr_Occurred()) {
1525 p->error_indicator = 1;
1526 D(p->level--);
1527 return NULL;
1528 }
1529 goto done;
1530 }
1531 p->mark = _mark;
1532 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1534 }
1535 _res = NULL;
1536 done:
1537 D(p->level--);
1538 return _res;
1539}
1540
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001541// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001542static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001543simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544{
1545 D(p->level++);
1546 if (p->error_indicator) {
1547 D(p->level--);
1548 return NULL;
1549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001550 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001551 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001552 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001553 if (p->error_indicator) {
1554 D(p->level--);
1555 return NULL;
1556 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001557 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 +01001558 stmt_ty a;
1559 Token * newline_var;
1560 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001561 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 &&
1563 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1564 &&
1565 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1566 )
1567 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001568 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 +01001569 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001570 if (_res == NULL && PyErr_Occurred()) {
1571 p->error_indicator = 1;
1572 D(p->level--);
1573 return NULL;
1574 }
1575 goto done;
1576 }
1577 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001578 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001580 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001581 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001582 if (p->error_indicator) {
1583 D(p->level--);
1584 return NULL;
1585 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001586 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 +01001587 void *_opt_var;
1588 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001589 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001590 Token * newline_var;
1591 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001592 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001593 &&
1594 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1595 &&
1596 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1597 )
1598 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001599 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 +01001600 _res = a;
1601 if (_res == NULL && PyErr_Occurred()) {
1602 p->error_indicator = 1;
1603 D(p->level--);
1604 return NULL;
1605 }
1606 goto done;
1607 }
1608 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001609 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001611 }
1612 _res = NULL;
1613 done:
1614 D(p->level--);
1615 return _res;
1616}
1617
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001618// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001619// | assignment
1620// | star_expressions
1621// | &'return' return_stmt
1622// | &('import' | 'from') import_stmt
1623// | &'raise' raise_stmt
1624// | 'pass'
1625// | &'del' del_stmt
1626// | &'yield' yield_stmt
1627// | &'assert' assert_stmt
1628// | 'break'
1629// | 'continue'
1630// | &'global' global_stmt
1631// | &'nonlocal' nonlocal_stmt
1632static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001633simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001634{
1635 D(p->level++);
1636 if (p->error_indicator) {
1637 D(p->level--);
1638 return NULL;
1639 }
1640 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001641 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001642 D(p->level--);
1643 return _res;
1644 }
1645 int _mark = p->mark;
1646 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1647 p->error_indicator = 1;
1648 D(p->level--);
1649 return NULL;
1650 }
1651 int _start_lineno = p->tokens[_mark]->lineno;
1652 UNUSED(_start_lineno); // Only used by EXTRA macro
1653 int _start_col_offset = p->tokens[_mark]->col_offset;
1654 UNUSED(_start_col_offset); // Only used by EXTRA macro
1655 { // assignment
1656 if (p->error_indicator) {
1657 D(p->level--);
1658 return NULL;
1659 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001660 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001661 stmt_ty assignment_var;
1662 if (
1663 (assignment_var = assignment_rule(p)) // assignment
1664 )
1665 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001667 _res = assignment_var;
1668 goto done;
1669 }
1670 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001671 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1673 }
1674 { // star_expressions
1675 if (p->error_indicator) {
1676 D(p->level--);
1677 return NULL;
1678 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001679 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001680 expr_ty e;
1681 if (
1682 (e = star_expressions_rule(p)) // star_expressions
1683 )
1684 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 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 +01001686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1687 if (_token == NULL) {
1688 D(p->level--);
1689 return NULL;
1690 }
1691 int _end_lineno = _token->end_lineno;
1692 UNUSED(_end_lineno); // Only used by EXTRA macro
1693 int _end_col_offset = _token->end_col_offset;
1694 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001695 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001696 if (_res == NULL && PyErr_Occurred()) {
1697 p->error_indicator = 1;
1698 D(p->level--);
1699 return NULL;
1700 }
1701 goto done;
1702 }
1703 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001704 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1706 }
1707 { // &'return' return_stmt
1708 if (p->error_indicator) {
1709 D(p->level--);
1710 return NULL;
1711 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001712 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 +01001713 stmt_ty return_stmt_var;
1714 if (
1715 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1716 &&
1717 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1718 )
1719 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001720 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 +01001721 _res = return_stmt_var;
1722 goto done;
1723 }
1724 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001725 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1727 }
1728 { // &('import' | 'from') import_stmt
1729 if (p->error_indicator) {
1730 D(p->level--);
1731 return NULL;
1732 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001733 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 +01001734 stmt_ty import_stmt_var;
1735 if (
1736 _PyPegen_lookahead(1, _tmp_14_rule, p)
1737 &&
1738 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1739 )
1740 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001741 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 +01001742 _res = import_stmt_var;
1743 goto done;
1744 }
1745 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001746 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1748 }
1749 { // &'raise' raise_stmt
1750 if (p->error_indicator) {
1751 D(p->level--);
1752 return NULL;
1753 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 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 +01001755 stmt_ty raise_stmt_var;
1756 if (
1757 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1758 &&
1759 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1760 )
1761 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001762 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001763 _res = raise_stmt_var;
1764 goto done;
1765 }
1766 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1769 }
1770 { // 'pass'
1771 if (p->error_indicator) {
1772 D(p->level--);
1773 return NULL;
1774 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001775 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001776 Token * _keyword;
1777 if (
1778 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1779 )
1780 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001781 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1783 if (_token == NULL) {
1784 D(p->level--);
1785 return NULL;
1786 }
1787 int _end_lineno = _token->end_lineno;
1788 UNUSED(_end_lineno); // Only used by EXTRA macro
1789 int _end_col_offset = _token->end_col_offset;
1790 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001791 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001792 if (_res == NULL && PyErr_Occurred()) {
1793 p->error_indicator = 1;
1794 D(p->level--);
1795 return NULL;
1796 }
1797 goto done;
1798 }
1799 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001800 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1802 }
1803 { // &'del' del_stmt
1804 if (p->error_indicator) {
1805 D(p->level--);
1806 return NULL;
1807 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001809 stmt_ty del_stmt_var;
1810 if (
1811 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1812 &&
1813 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1814 )
1815 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001816 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001817 _res = del_stmt_var;
1818 goto done;
1819 }
1820 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001821 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1823 }
1824 { // &'yield' yield_stmt
1825 if (p->error_indicator) {
1826 D(p->level--);
1827 return NULL;
1828 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001830 stmt_ty yield_stmt_var;
1831 if (
1832 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1833 &&
1834 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1835 )
1836 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001837 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001838 _res = yield_stmt_var;
1839 goto done;
1840 }
1841 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1844 }
1845 { // &'assert' assert_stmt
1846 if (p->error_indicator) {
1847 D(p->level--);
1848 return NULL;
1849 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001851 stmt_ty assert_stmt_var;
1852 if (
1853 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1854 &&
1855 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1856 )
1857 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001858 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001859 _res = assert_stmt_var;
1860 goto done;
1861 }
1862 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1865 }
1866 { // 'break'
1867 if (p->error_indicator) {
1868 D(p->level--);
1869 return NULL;
1870 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001871 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001872 Token * _keyword;
1873 if (
1874 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1875 )
1876 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001877 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1879 if (_token == NULL) {
1880 D(p->level--);
1881 return NULL;
1882 }
1883 int _end_lineno = _token->end_lineno;
1884 UNUSED(_end_lineno); // Only used by EXTRA macro
1885 int _end_col_offset = _token->end_col_offset;
1886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001887 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001888 if (_res == NULL && PyErr_Occurred()) {
1889 p->error_indicator = 1;
1890 D(p->level--);
1891 return NULL;
1892 }
1893 goto done;
1894 }
1895 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001896 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1898 }
1899 { // 'continue'
1900 if (p->error_indicator) {
1901 D(p->level--);
1902 return NULL;
1903 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001904 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001905 Token * _keyword;
1906 if (
1907 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1908 )
1909 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001910 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001911 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1912 if (_token == NULL) {
1913 D(p->level--);
1914 return NULL;
1915 }
1916 int _end_lineno = _token->end_lineno;
1917 UNUSED(_end_lineno); // Only used by EXTRA macro
1918 int _end_col_offset = _token->end_col_offset;
1919 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001920 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001921 if (_res == NULL && PyErr_Occurred()) {
1922 p->error_indicator = 1;
1923 D(p->level--);
1924 return NULL;
1925 }
1926 goto done;
1927 }
1928 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001929 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1931 }
1932 { // &'global' global_stmt
1933 if (p->error_indicator) {
1934 D(p->level--);
1935 return NULL;
1936 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001937 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 +01001938 stmt_ty global_stmt_var;
1939 if (
1940 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1941 &&
1942 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1943 )
1944 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001945 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 +01001946 _res = global_stmt_var;
1947 goto done;
1948 }
1949 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001950 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1952 }
1953 { // &'nonlocal' nonlocal_stmt
1954 if (p->error_indicator) {
1955 D(p->level--);
1956 return NULL;
1957 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001958 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 +01001959 stmt_ty nonlocal_stmt_var;
1960 if (
1961 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1962 &&
1963 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1964 )
1965 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001966 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 +01001967 _res = nonlocal_stmt_var;
1968 goto done;
1969 }
1970 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001971 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1973 }
1974 _res = NULL;
1975 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001976 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001977 D(p->level--);
1978 return _res;
1979}
1980
1981// compound_stmt:
1982// | &('def' | '@' | ASYNC) function_def
1983// | &'if' if_stmt
1984// | &('class' | '@') class_def
1985// | &('with' | ASYNC) with_stmt
1986// | &('for' | ASYNC) for_stmt
1987// | &'try' try_stmt
1988// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08001989// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001990static stmt_ty
1991compound_stmt_rule(Parser *p)
1992{
1993 D(p->level++);
1994 if (p->error_indicator) {
1995 D(p->level--);
1996 return NULL;
1997 }
1998 stmt_ty _res = NULL;
1999 int _mark = p->mark;
2000 { // &('def' | '@' | ASYNC) function_def
2001 if (p->error_indicator) {
2002 D(p->level--);
2003 return NULL;
2004 }
2005 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2006 stmt_ty function_def_var;
2007 if (
2008 _PyPegen_lookahead(1, _tmp_15_rule, p)
2009 &&
2010 (function_def_var = function_def_rule(p)) // function_def
2011 )
2012 {
2013 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2014 _res = function_def_var;
2015 goto done;
2016 }
2017 p->mark = _mark;
2018 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2020 }
2021 { // &'if' if_stmt
2022 if (p->error_indicator) {
2023 D(p->level--);
2024 return NULL;
2025 }
2026 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2027 stmt_ty if_stmt_var;
2028 if (
2029 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2030 &&
2031 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2032 )
2033 {
2034 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2035 _res = if_stmt_var;
2036 goto done;
2037 }
2038 p->mark = _mark;
2039 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2041 }
2042 { // &('class' | '@') class_def
2043 if (p->error_indicator) {
2044 D(p->level--);
2045 return NULL;
2046 }
2047 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2048 stmt_ty class_def_var;
2049 if (
2050 _PyPegen_lookahead(1, _tmp_16_rule, p)
2051 &&
2052 (class_def_var = class_def_rule(p)) // class_def
2053 )
2054 {
2055 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2056 _res = class_def_var;
2057 goto done;
2058 }
2059 p->mark = _mark;
2060 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2062 }
2063 { // &('with' | ASYNC) with_stmt
2064 if (p->error_indicator) {
2065 D(p->level--);
2066 return NULL;
2067 }
2068 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2069 stmt_ty with_stmt_var;
2070 if (
2071 _PyPegen_lookahead(1, _tmp_17_rule, p)
2072 &&
2073 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2074 )
2075 {
2076 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2077 _res = with_stmt_var;
2078 goto done;
2079 }
2080 p->mark = _mark;
2081 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2083 }
2084 { // &('for' | ASYNC) for_stmt
2085 if (p->error_indicator) {
2086 D(p->level--);
2087 return NULL;
2088 }
2089 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2090 stmt_ty for_stmt_var;
2091 if (
2092 _PyPegen_lookahead(1, _tmp_18_rule, p)
2093 &&
2094 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2095 )
2096 {
2097 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2098 _res = for_stmt_var;
2099 goto done;
2100 }
2101 p->mark = _mark;
2102 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2104 }
2105 { // &'try' try_stmt
2106 if (p->error_indicator) {
2107 D(p->level--);
2108 return NULL;
2109 }
2110 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2111 stmt_ty try_stmt_var;
2112 if (
2113 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2114 &&
2115 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2116 )
2117 {
2118 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2119 _res = try_stmt_var;
2120 goto done;
2121 }
2122 p->mark = _mark;
2123 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2125 }
2126 { // &'while' while_stmt
2127 if (p->error_indicator) {
2128 D(p->level--);
2129 return NULL;
2130 }
2131 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2132 stmt_ty while_stmt_var;
2133 if (
2134 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2135 &&
2136 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2137 )
2138 {
2139 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2140 _res = while_stmt_var;
2141 goto done;
2142 }
2143 p->mark = _mark;
2144 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2146 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002147 { // match_stmt
2148 if (p->error_indicator) {
2149 D(p->level--);
2150 return NULL;
2151 }
2152 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2153 stmt_ty match_stmt_var;
2154 if (
2155 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2156 )
2157 {
2158 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2159 _res = match_stmt_var;
2160 goto done;
2161 }
2162 p->mark = _mark;
2163 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2165 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002166 _res = NULL;
2167 done:
2168 D(p->level--);
2169 return _res;
2170}
2171
2172// assignment:
2173// | NAME ':' expression ['=' annotated_rhs]
2174// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2175// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002176// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002177// | invalid_assignment
2178static stmt_ty
2179assignment_rule(Parser *p)
2180{
2181 D(p->level++);
2182 if (p->error_indicator) {
2183 D(p->level--);
2184 return NULL;
2185 }
2186 stmt_ty _res = NULL;
2187 int _mark = p->mark;
2188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2189 p->error_indicator = 1;
2190 D(p->level--);
2191 return NULL;
2192 }
2193 int _start_lineno = p->tokens[_mark]->lineno;
2194 UNUSED(_start_lineno); // Only used by EXTRA macro
2195 int _start_col_offset = p->tokens[_mark]->col_offset;
2196 UNUSED(_start_col_offset); // Only used by EXTRA macro
2197 { // NAME ':' expression ['=' annotated_rhs]
2198 if (p->error_indicator) {
2199 D(p->level--);
2200 return NULL;
2201 }
2202 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2203 Token * _literal;
2204 expr_ty a;
2205 expr_ty b;
2206 void *c;
2207 if (
2208 (a = _PyPegen_name_token(p)) // NAME
2209 &&
2210 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2211 &&
2212 (b = expression_rule(p)) // expression
2213 &&
2214 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2215 )
2216 {
2217 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2218 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2219 if (_token == NULL) {
2220 D(p->level--);
2221 return NULL;
2222 }
2223 int _end_lineno = _token->end_lineno;
2224 UNUSED(_end_lineno); // Only used by EXTRA macro
2225 int _end_col_offset = _token->end_col_offset;
2226 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002227 _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 +01002228 if (_res == NULL && PyErr_Occurred()) {
2229 p->error_indicator = 1;
2230 D(p->level--);
2231 return NULL;
2232 }
2233 goto done;
2234 }
2235 p->mark = _mark;
2236 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2238 }
2239 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2240 if (p->error_indicator) {
2241 D(p->level--);
2242 return NULL;
2243 }
2244 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2245 Token * _literal;
2246 void *a;
2247 expr_ty b;
2248 void *c;
2249 if (
2250 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2251 &&
2252 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2253 &&
2254 (b = expression_rule(p)) // expression
2255 &&
2256 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2257 )
2258 {
2259 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2260 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2261 if (_token == NULL) {
2262 D(p->level--);
2263 return NULL;
2264 }
2265 int _end_lineno = _token->end_lineno;
2266 UNUSED(_end_lineno); // Only used by EXTRA macro
2267 int _end_col_offset = _token->end_col_offset;
2268 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002269 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002270 if (_res == NULL && PyErr_Occurred()) {
2271 p->error_indicator = 1;
2272 D(p->level--);
2273 return NULL;
2274 }
2275 goto done;
2276 }
2277 p->mark = _mark;
2278 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2280 }
2281 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2282 if (p->error_indicator) {
2283 D(p->level--);
2284 return NULL;
2285 }
2286 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 +01002287 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002288 void *b;
2289 void *tc;
2290 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002291 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002292 &&
2293 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2294 &&
2295 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2296 &&
2297 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2298 )
2299 {
2300 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2302 if (_token == NULL) {
2303 D(p->level--);
2304 return NULL;
2305 }
2306 int _end_lineno = _token->end_lineno;
2307 UNUSED(_end_lineno); // Only used by EXTRA macro
2308 int _end_col_offset = _token->end_col_offset;
2309 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002310 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002311 if (_res == NULL && PyErr_Occurred()) {
2312 p->error_indicator = 1;
2313 D(p->level--);
2314 return NULL;
2315 }
2316 goto done;
2317 }
2318 p->mark = _mark;
2319 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2321 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002322 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002323 if (p->error_indicator) {
2324 D(p->level--);
2325 return NULL;
2326 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002327 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2328 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002329 expr_ty a;
2330 AugOperator* b;
2331 void *c;
2332 if (
2333 (a = single_target_rule(p)) // single_target
2334 &&
2335 (b = augassign_rule(p)) // augassign
2336 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002337 (_cut_var = 1)
2338 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002339 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2340 )
2341 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002342 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 +01002343 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2344 if (_token == NULL) {
2345 D(p->level--);
2346 return NULL;
2347 }
2348 int _end_lineno = _token->end_lineno;
2349 UNUSED(_end_lineno); // Only used by EXTRA macro
2350 int _end_col_offset = _token->end_col_offset;
2351 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002352 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002353 if (_res == NULL && PyErr_Occurred()) {
2354 p->error_indicator = 1;
2355 D(p->level--);
2356 return NULL;
2357 }
2358 goto done;
2359 }
2360 p->mark = _mark;
2361 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2363 if (_cut_var) {
2364 D(p->level--);
2365 return NULL;
2366 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002367 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002368 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002369 if (p->error_indicator) {
2370 D(p->level--);
2371 return NULL;
2372 }
2373 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2374 void *invalid_assignment_var;
2375 if (
2376 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2377 )
2378 {
2379 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2380 _res = invalid_assignment_var;
2381 goto done;
2382 }
2383 p->mark = _mark;
2384 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2386 }
2387 _res = NULL;
2388 done:
2389 D(p->level--);
2390 return _res;
2391}
2392
2393// augassign:
2394// | '+='
2395// | '-='
2396// | '*='
2397// | '@='
2398// | '/='
2399// | '%='
2400// | '&='
2401// | '|='
2402// | '^='
2403// | '<<='
2404// | '>>='
2405// | '**='
2406// | '//='
2407static AugOperator*
2408augassign_rule(Parser *p)
2409{
2410 D(p->level++);
2411 if (p->error_indicator) {
2412 D(p->level--);
2413 return NULL;
2414 }
2415 AugOperator* _res = NULL;
2416 int _mark = p->mark;
2417 { // '+='
2418 if (p->error_indicator) {
2419 D(p->level--);
2420 return NULL;
2421 }
2422 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2423 Token * _literal;
2424 if (
2425 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2426 )
2427 {
2428 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2429 _res = _PyPegen_augoperator ( p , Add );
2430 if (_res == NULL && PyErr_Occurred()) {
2431 p->error_indicator = 1;
2432 D(p->level--);
2433 return NULL;
2434 }
2435 goto done;
2436 }
2437 p->mark = _mark;
2438 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2440 }
2441 { // '-='
2442 if (p->error_indicator) {
2443 D(p->level--);
2444 return NULL;
2445 }
2446 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2447 Token * _literal;
2448 if (
2449 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2450 )
2451 {
2452 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2453 _res = _PyPegen_augoperator ( p , Sub );
2454 if (_res == NULL && PyErr_Occurred()) {
2455 p->error_indicator = 1;
2456 D(p->level--);
2457 return NULL;
2458 }
2459 goto done;
2460 }
2461 p->mark = _mark;
2462 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2464 }
2465 { // '*='
2466 if (p->error_indicator) {
2467 D(p->level--);
2468 return NULL;
2469 }
2470 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2471 Token * _literal;
2472 if (
2473 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2474 )
2475 {
2476 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2477 _res = _PyPegen_augoperator ( p , Mult );
2478 if (_res == NULL && PyErr_Occurred()) {
2479 p->error_indicator = 1;
2480 D(p->level--);
2481 return NULL;
2482 }
2483 goto done;
2484 }
2485 p->mark = _mark;
2486 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2488 }
2489 { // '@='
2490 if (p->error_indicator) {
2491 D(p->level--);
2492 return NULL;
2493 }
2494 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2495 Token * _literal;
2496 if (
2497 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2498 )
2499 {
2500 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002501 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002502 if (_res == NULL && PyErr_Occurred()) {
2503 p->error_indicator = 1;
2504 D(p->level--);
2505 return NULL;
2506 }
2507 goto done;
2508 }
2509 p->mark = _mark;
2510 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2512 }
2513 { // '/='
2514 if (p->error_indicator) {
2515 D(p->level--);
2516 return NULL;
2517 }
2518 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2519 Token * _literal;
2520 if (
2521 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2522 )
2523 {
2524 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2525 _res = _PyPegen_augoperator ( p , Div );
2526 if (_res == NULL && PyErr_Occurred()) {
2527 p->error_indicator = 1;
2528 D(p->level--);
2529 return NULL;
2530 }
2531 goto done;
2532 }
2533 p->mark = _mark;
2534 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2536 }
2537 { // '%='
2538 if (p->error_indicator) {
2539 D(p->level--);
2540 return NULL;
2541 }
2542 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2543 Token * _literal;
2544 if (
2545 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2546 )
2547 {
2548 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2549 _res = _PyPegen_augoperator ( p , Mod );
2550 if (_res == NULL && PyErr_Occurred()) {
2551 p->error_indicator = 1;
2552 D(p->level--);
2553 return NULL;
2554 }
2555 goto done;
2556 }
2557 p->mark = _mark;
2558 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2560 }
2561 { // '&='
2562 if (p->error_indicator) {
2563 D(p->level--);
2564 return NULL;
2565 }
2566 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2567 Token * _literal;
2568 if (
2569 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2570 )
2571 {
2572 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2573 _res = _PyPegen_augoperator ( p , BitAnd );
2574 if (_res == NULL && PyErr_Occurred()) {
2575 p->error_indicator = 1;
2576 D(p->level--);
2577 return NULL;
2578 }
2579 goto done;
2580 }
2581 p->mark = _mark;
2582 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2584 }
2585 { // '|='
2586 if (p->error_indicator) {
2587 D(p->level--);
2588 return NULL;
2589 }
2590 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2591 Token * _literal;
2592 if (
2593 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2594 )
2595 {
2596 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2597 _res = _PyPegen_augoperator ( p , BitOr );
2598 if (_res == NULL && PyErr_Occurred()) {
2599 p->error_indicator = 1;
2600 D(p->level--);
2601 return NULL;
2602 }
2603 goto done;
2604 }
2605 p->mark = _mark;
2606 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2608 }
2609 { // '^='
2610 if (p->error_indicator) {
2611 D(p->level--);
2612 return NULL;
2613 }
2614 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2615 Token * _literal;
2616 if (
2617 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2618 )
2619 {
2620 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2621 _res = _PyPegen_augoperator ( p , BitXor );
2622 if (_res == NULL && PyErr_Occurred()) {
2623 p->error_indicator = 1;
2624 D(p->level--);
2625 return NULL;
2626 }
2627 goto done;
2628 }
2629 p->mark = _mark;
2630 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2632 }
2633 { // '<<='
2634 if (p->error_indicator) {
2635 D(p->level--);
2636 return NULL;
2637 }
2638 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2639 Token * _literal;
2640 if (
2641 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2642 )
2643 {
2644 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2645 _res = _PyPegen_augoperator ( p , LShift );
2646 if (_res == NULL && PyErr_Occurred()) {
2647 p->error_indicator = 1;
2648 D(p->level--);
2649 return NULL;
2650 }
2651 goto done;
2652 }
2653 p->mark = _mark;
2654 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2656 }
2657 { // '>>='
2658 if (p->error_indicator) {
2659 D(p->level--);
2660 return NULL;
2661 }
2662 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2663 Token * _literal;
2664 if (
2665 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2666 )
2667 {
2668 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2669 _res = _PyPegen_augoperator ( p , RShift );
2670 if (_res == NULL && PyErr_Occurred()) {
2671 p->error_indicator = 1;
2672 D(p->level--);
2673 return NULL;
2674 }
2675 goto done;
2676 }
2677 p->mark = _mark;
2678 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2680 }
2681 { // '**='
2682 if (p->error_indicator) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2687 Token * _literal;
2688 if (
2689 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2690 )
2691 {
2692 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2693 _res = _PyPegen_augoperator ( p , Pow );
2694 if (_res == NULL && PyErr_Occurred()) {
2695 p->error_indicator = 1;
2696 D(p->level--);
2697 return NULL;
2698 }
2699 goto done;
2700 }
2701 p->mark = _mark;
2702 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2704 }
2705 { // '//='
2706 if (p->error_indicator) {
2707 D(p->level--);
2708 return NULL;
2709 }
2710 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2711 Token * _literal;
2712 if (
2713 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2714 )
2715 {
2716 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2717 _res = _PyPegen_augoperator ( p , FloorDiv );
2718 if (_res == NULL && PyErr_Occurred()) {
2719 p->error_indicator = 1;
2720 D(p->level--);
2721 return NULL;
2722 }
2723 goto done;
2724 }
2725 p->mark = _mark;
2726 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2728 }
2729 _res = NULL;
2730 done:
2731 D(p->level--);
2732 return _res;
2733}
2734
2735// global_stmt: 'global' ','.NAME+
2736static stmt_ty
2737global_stmt_rule(Parser *p)
2738{
2739 D(p->level++);
2740 if (p->error_indicator) {
2741 D(p->level--);
2742 return NULL;
2743 }
2744 stmt_ty _res = NULL;
2745 int _mark = p->mark;
2746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2747 p->error_indicator = 1;
2748 D(p->level--);
2749 return NULL;
2750 }
2751 int _start_lineno = p->tokens[_mark]->lineno;
2752 UNUSED(_start_lineno); // Only used by EXTRA macro
2753 int _start_col_offset = p->tokens[_mark]->col_offset;
2754 UNUSED(_start_col_offset); // Only used by EXTRA macro
2755 { // 'global' ','.NAME+
2756 if (p->error_indicator) {
2757 D(p->level--);
2758 return NULL;
2759 }
2760 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2761 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002762 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002763 if (
2764 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2765 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002766 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002767 )
2768 {
2769 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2771 if (_token == NULL) {
2772 D(p->level--);
2773 return NULL;
2774 }
2775 int _end_lineno = _token->end_lineno;
2776 UNUSED(_end_lineno); // Only used by EXTRA macro
2777 int _end_col_offset = _token->end_col_offset;
2778 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002779 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002780 if (_res == NULL && PyErr_Occurred()) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 goto done;
2786 }
2787 p->mark = _mark;
2788 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2790 }
2791 _res = NULL;
2792 done:
2793 D(p->level--);
2794 return _res;
2795}
2796
2797// nonlocal_stmt: 'nonlocal' ','.NAME+
2798static stmt_ty
2799nonlocal_stmt_rule(Parser *p)
2800{
2801 D(p->level++);
2802 if (p->error_indicator) {
2803 D(p->level--);
2804 return NULL;
2805 }
2806 stmt_ty _res = NULL;
2807 int _mark = p->mark;
2808 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2809 p->error_indicator = 1;
2810 D(p->level--);
2811 return NULL;
2812 }
2813 int _start_lineno = p->tokens[_mark]->lineno;
2814 UNUSED(_start_lineno); // Only used by EXTRA macro
2815 int _start_col_offset = p->tokens[_mark]->col_offset;
2816 UNUSED(_start_col_offset); // Only used by EXTRA macro
2817 { // 'nonlocal' ','.NAME+
2818 if (p->error_indicator) {
2819 D(p->level--);
2820 return NULL;
2821 }
2822 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2823 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002824 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002825 if (
2826 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2827 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002828 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002829 )
2830 {
2831 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2832 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2833 if (_token == NULL) {
2834 D(p->level--);
2835 return NULL;
2836 }
2837 int _end_lineno = _token->end_lineno;
2838 UNUSED(_end_lineno); // Only used by EXTRA macro
2839 int _end_col_offset = _token->end_col_offset;
2840 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002841 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002842 if (_res == NULL && PyErr_Occurred()) {
2843 p->error_indicator = 1;
2844 D(p->level--);
2845 return NULL;
2846 }
2847 goto done;
2848 }
2849 p->mark = _mark;
2850 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2852 }
2853 _res = NULL;
2854 done:
2855 D(p->level--);
2856 return _res;
2857}
2858
2859// yield_stmt: yield_expr
2860static stmt_ty
2861yield_stmt_rule(Parser *p)
2862{
2863 D(p->level++);
2864 if (p->error_indicator) {
2865 D(p->level--);
2866 return NULL;
2867 }
2868 stmt_ty _res = NULL;
2869 int _mark = p->mark;
2870 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2871 p->error_indicator = 1;
2872 D(p->level--);
2873 return NULL;
2874 }
2875 int _start_lineno = p->tokens[_mark]->lineno;
2876 UNUSED(_start_lineno); // Only used by EXTRA macro
2877 int _start_col_offset = p->tokens[_mark]->col_offset;
2878 UNUSED(_start_col_offset); // Only used by EXTRA macro
2879 { // yield_expr
2880 if (p->error_indicator) {
2881 D(p->level--);
2882 return NULL;
2883 }
2884 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2885 expr_ty y;
2886 if (
2887 (y = yield_expr_rule(p)) // yield_expr
2888 )
2889 {
2890 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2892 if (_token == NULL) {
2893 D(p->level--);
2894 return NULL;
2895 }
2896 int _end_lineno = _token->end_lineno;
2897 UNUSED(_end_lineno); // Only used by EXTRA macro
2898 int _end_col_offset = _token->end_col_offset;
2899 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002900 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002901 if (_res == NULL && PyErr_Occurred()) {
2902 p->error_indicator = 1;
2903 D(p->level--);
2904 return NULL;
2905 }
2906 goto done;
2907 }
2908 p->mark = _mark;
2909 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2911 }
2912 _res = NULL;
2913 done:
2914 D(p->level--);
2915 return _res;
2916}
2917
2918// assert_stmt: 'assert' expression [',' expression]
2919static stmt_ty
2920assert_stmt_rule(Parser *p)
2921{
2922 D(p->level++);
2923 if (p->error_indicator) {
2924 D(p->level--);
2925 return NULL;
2926 }
2927 stmt_ty _res = NULL;
2928 int _mark = p->mark;
2929 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2930 p->error_indicator = 1;
2931 D(p->level--);
2932 return NULL;
2933 }
2934 int _start_lineno = p->tokens[_mark]->lineno;
2935 UNUSED(_start_lineno); // Only used by EXTRA macro
2936 int _start_col_offset = p->tokens[_mark]->col_offset;
2937 UNUSED(_start_col_offset); // Only used by EXTRA macro
2938 { // 'assert' expression [',' expression]
2939 if (p->error_indicator) {
2940 D(p->level--);
2941 return NULL;
2942 }
2943 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2944 Token * _keyword;
2945 expr_ty a;
2946 void *b;
2947 if (
2948 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2949 &&
2950 (a = expression_rule(p)) // expression
2951 &&
2952 (b = _tmp_29_rule(p), 1) // [',' expression]
2953 )
2954 {
2955 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2956 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2957 if (_token == NULL) {
2958 D(p->level--);
2959 return NULL;
2960 }
2961 int _end_lineno = _token->end_lineno;
2962 UNUSED(_end_lineno); // Only used by EXTRA macro
2963 int _end_col_offset = _token->end_col_offset;
2964 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002965 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002966 if (_res == NULL && PyErr_Occurred()) {
2967 p->error_indicator = 1;
2968 D(p->level--);
2969 return NULL;
2970 }
2971 goto done;
2972 }
2973 p->mark = _mark;
2974 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2976 }
2977 _res = NULL;
2978 done:
2979 D(p->level--);
2980 return _res;
2981}
2982
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002983// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002984static stmt_ty
2985del_stmt_rule(Parser *p)
2986{
2987 D(p->level++);
2988 if (p->error_indicator) {
2989 D(p->level--);
2990 return NULL;
2991 }
2992 stmt_ty _res = NULL;
2993 int _mark = p->mark;
2994 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2995 p->error_indicator = 1;
2996 D(p->level--);
2997 return NULL;
2998 }
2999 int _start_lineno = p->tokens[_mark]->lineno;
3000 UNUSED(_start_lineno); // Only used by EXTRA macro
3001 int _start_col_offset = p->tokens[_mark]->col_offset;
3002 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003003 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003004 if (p->error_indicator) {
3005 D(p->level--);
3006 return NULL;
3007 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003008 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 +01003009 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003010 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003011 if (
3012 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3013 &&
3014 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003015 &&
3016 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003017 )
3018 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003019 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 +01003020 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3021 if (_token == NULL) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 int _end_lineno = _token->end_lineno;
3026 UNUSED(_end_lineno); // Only used by EXTRA macro
3027 int _end_col_offset = _token->end_col_offset;
3028 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003029 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003030 if (_res == NULL && PyErr_Occurred()) {
3031 p->error_indicator = 1;
3032 D(p->level--);
3033 return NULL;
3034 }
3035 goto done;
3036 }
3037 p->mark = _mark;
3038 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3040 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003041 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003042 if (p->error_indicator) {
3043 D(p->level--);
3044 return NULL;
3045 }
3046 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3047 void *invalid_del_stmt_var;
3048 if (
3049 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3050 )
3051 {
3052 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3053 _res = invalid_del_stmt_var;
3054 goto done;
3055 }
3056 p->mark = _mark;
3057 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003059 }
3060 _res = NULL;
3061 done:
3062 D(p->level--);
3063 return _res;
3064}
3065
3066// import_stmt: import_name | import_from
3067static stmt_ty
3068import_stmt_rule(Parser *p)
3069{
3070 D(p->level++);
3071 if (p->error_indicator) {
3072 D(p->level--);
3073 return NULL;
3074 }
3075 stmt_ty _res = NULL;
3076 int _mark = p->mark;
3077 { // import_name
3078 if (p->error_indicator) {
3079 D(p->level--);
3080 return NULL;
3081 }
3082 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3083 stmt_ty import_name_var;
3084 if (
3085 (import_name_var = import_name_rule(p)) // import_name
3086 )
3087 {
3088 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3089 _res = import_name_var;
3090 goto done;
3091 }
3092 p->mark = _mark;
3093 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3095 }
3096 { // import_from
3097 if (p->error_indicator) {
3098 D(p->level--);
3099 return NULL;
3100 }
3101 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3102 stmt_ty import_from_var;
3103 if (
3104 (import_from_var = import_from_rule(p)) // import_from
3105 )
3106 {
3107 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3108 _res = import_from_var;
3109 goto done;
3110 }
3111 p->mark = _mark;
3112 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3114 }
3115 _res = NULL;
3116 done:
3117 D(p->level--);
3118 return _res;
3119}
3120
3121// import_name: 'import' dotted_as_names
3122static stmt_ty
3123import_name_rule(Parser *p)
3124{
3125 D(p->level++);
3126 if (p->error_indicator) {
3127 D(p->level--);
3128 return NULL;
3129 }
3130 stmt_ty _res = NULL;
3131 int _mark = p->mark;
3132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3133 p->error_indicator = 1;
3134 D(p->level--);
3135 return NULL;
3136 }
3137 int _start_lineno = p->tokens[_mark]->lineno;
3138 UNUSED(_start_lineno); // Only used by EXTRA macro
3139 int _start_col_offset = p->tokens[_mark]->col_offset;
3140 UNUSED(_start_col_offset); // Only used by EXTRA macro
3141 { // 'import' dotted_as_names
3142 if (p->error_indicator) {
3143 D(p->level--);
3144 return NULL;
3145 }
3146 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3147 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003148 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003149 if (
3150 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3151 &&
3152 (a = dotted_as_names_rule(p)) // dotted_as_names
3153 )
3154 {
3155 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3157 if (_token == NULL) {
3158 D(p->level--);
3159 return NULL;
3160 }
3161 int _end_lineno = _token->end_lineno;
3162 UNUSED(_end_lineno); // Only used by EXTRA macro
3163 int _end_col_offset = _token->end_col_offset;
3164 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003165 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003166 if (_res == NULL && PyErr_Occurred()) {
3167 p->error_indicator = 1;
3168 D(p->level--);
3169 return NULL;
3170 }
3171 goto done;
3172 }
3173 p->mark = _mark;
3174 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3176 }
3177 _res = NULL;
3178 done:
3179 D(p->level--);
3180 return _res;
3181}
3182
3183// import_from:
3184// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3185// | 'from' (('.' | '...'))+ 'import' import_from_targets
3186static stmt_ty
3187import_from_rule(Parser *p)
3188{
3189 D(p->level++);
3190 if (p->error_indicator) {
3191 D(p->level--);
3192 return NULL;
3193 }
3194 stmt_ty _res = NULL;
3195 int _mark = p->mark;
3196 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3197 p->error_indicator = 1;
3198 D(p->level--);
3199 return NULL;
3200 }
3201 int _start_lineno = p->tokens[_mark]->lineno;
3202 UNUSED(_start_lineno); // Only used by EXTRA macro
3203 int _start_col_offset = p->tokens[_mark]->col_offset;
3204 UNUSED(_start_col_offset); // Only used by EXTRA macro
3205 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3206 if (p->error_indicator) {
3207 D(p->level--);
3208 return NULL;
3209 }
3210 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3211 Token * _keyword;
3212 Token * _keyword_1;
3213 asdl_seq * a;
3214 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003215 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003216 if (
3217 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3218 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003219 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003220 &&
3221 (b = dotted_name_rule(p)) // dotted_name
3222 &&
3223 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3224 &&
3225 (c = import_from_targets_rule(p)) // import_from_targets
3226 )
3227 {
3228 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3229 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3230 if (_token == NULL) {
3231 D(p->level--);
3232 return NULL;
3233 }
3234 int _end_lineno = _token->end_lineno;
3235 UNUSED(_end_lineno); // Only used by EXTRA macro
3236 int _end_col_offset = _token->end_col_offset;
3237 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003238 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003239 if (_res == NULL && PyErr_Occurred()) {
3240 p->error_indicator = 1;
3241 D(p->level--);
3242 return NULL;
3243 }
3244 goto done;
3245 }
3246 p->mark = _mark;
3247 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3249 }
3250 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3251 if (p->error_indicator) {
3252 D(p->level--);
3253 return NULL;
3254 }
3255 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3256 Token * _keyword;
3257 Token * _keyword_1;
3258 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003259 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003260 if (
3261 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3262 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003263 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003264 &&
3265 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3266 &&
3267 (b = import_from_targets_rule(p)) // import_from_targets
3268 )
3269 {
3270 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3271 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3272 if (_token == NULL) {
3273 D(p->level--);
3274 return NULL;
3275 }
3276 int _end_lineno = _token->end_lineno;
3277 UNUSED(_end_lineno); // Only used by EXTRA macro
3278 int _end_col_offset = _token->end_col_offset;
3279 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003280 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003281 if (_res == NULL && PyErr_Occurred()) {
3282 p->error_indicator = 1;
3283 D(p->level--);
3284 return NULL;
3285 }
3286 goto done;
3287 }
3288 p->mark = _mark;
3289 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3291 }
3292 _res = NULL;
3293 done:
3294 D(p->level--);
3295 return _res;
3296}
3297
3298// import_from_targets:
3299// | '(' import_from_as_names ','? ')'
3300// | import_from_as_names !','
3301// | '*'
3302// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003303static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003304import_from_targets_rule(Parser *p)
3305{
3306 D(p->level++);
3307 if (p->error_indicator) {
3308 D(p->level--);
3309 return NULL;
3310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003311 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003312 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003313 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3314 p->error_indicator = 1;
3315 D(p->level--);
3316 return NULL;
3317 }
3318 int _start_lineno = p->tokens[_mark]->lineno;
3319 UNUSED(_start_lineno); // Only used by EXTRA macro
3320 int _start_col_offset = p->tokens[_mark]->col_offset;
3321 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003322 { // '(' import_from_as_names ','? ')'
3323 if (p->error_indicator) {
3324 D(p->level--);
3325 return NULL;
3326 }
3327 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3328 Token * _literal;
3329 Token * _literal_1;
3330 void *_opt_var;
3331 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003332 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003333 if (
3334 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3335 &&
3336 (a = import_from_as_names_rule(p)) // import_from_as_names
3337 &&
3338 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3339 &&
3340 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3341 )
3342 {
3343 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3344 _res = a;
3345 if (_res == NULL && PyErr_Occurred()) {
3346 p->error_indicator = 1;
3347 D(p->level--);
3348 return NULL;
3349 }
3350 goto done;
3351 }
3352 p->mark = _mark;
3353 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3355 }
3356 { // 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 !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003362 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003363 if (
3364 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3365 &&
3366 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3367 )
3368 {
3369 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3370 _res = import_from_as_names_var;
3371 goto done;
3372 }
3373 p->mark = _mark;
3374 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3376 }
3377 { // '*'
3378 if (p->error_indicator) {
3379 D(p->level--);
3380 return NULL;
3381 }
3382 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3383 Token * _literal;
3384 if (
3385 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3386 )
3387 {
3388 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3390 if (_token == NULL) {
3391 D(p->level--);
3392 return NULL;
3393 }
3394 int _end_lineno = _token->end_lineno;
3395 UNUSED(_end_lineno); // Only used by EXTRA macro
3396 int _end_col_offset = _token->end_col_offset;
3397 UNUSED(_end_col_offset); // Only used by EXTRA macro
3398 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003399 if (_res == NULL && PyErr_Occurred()) {
3400 p->error_indicator = 1;
3401 D(p->level--);
3402 return NULL;
3403 }
3404 goto done;
3405 }
3406 p->mark = _mark;
3407 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3409 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003410 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003411 if (p->error_indicator) {
3412 D(p->level--);
3413 return NULL;
3414 }
3415 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3416 void *invalid_import_from_targets_var;
3417 if (
3418 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3419 )
3420 {
3421 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3422 _res = invalid_import_from_targets_var;
3423 goto done;
3424 }
3425 p->mark = _mark;
3426 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3428 }
3429 _res = NULL;
3430 done:
3431 D(p->level--);
3432 return _res;
3433}
3434
3435// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003436static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003437import_from_as_names_rule(Parser *p)
3438{
3439 D(p->level++);
3440 if (p->error_indicator) {
3441 D(p->level--);
3442 return NULL;
3443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003444 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003445 int _mark = p->mark;
3446 { // ','.import_from_as_name+
3447 if (p->error_indicator) {
3448 D(p->level--);
3449 return NULL;
3450 }
3451 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 +01003452 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003453 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003454 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003455 )
3456 {
3457 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3458 _res = a;
3459 if (_res == NULL && PyErr_Occurred()) {
3460 p->error_indicator = 1;
3461 D(p->level--);
3462 return NULL;
3463 }
3464 goto done;
3465 }
3466 p->mark = _mark;
3467 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3469 }
3470 _res = NULL;
3471 done:
3472 D(p->level--);
3473 return _res;
3474}
3475
3476// import_from_as_name: NAME ['as' NAME]
3477static alias_ty
3478import_from_as_name_rule(Parser *p)
3479{
3480 D(p->level++);
3481 if (p->error_indicator) {
3482 D(p->level--);
3483 return NULL;
3484 }
3485 alias_ty _res = NULL;
3486 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003487 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3488 p->error_indicator = 1;
3489 D(p->level--);
3490 return NULL;
3491 }
3492 int _start_lineno = p->tokens[_mark]->lineno;
3493 UNUSED(_start_lineno); // Only used by EXTRA macro
3494 int _start_col_offset = p->tokens[_mark]->col_offset;
3495 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003496 { // NAME ['as' NAME]
3497 if (p->error_indicator) {
3498 D(p->level--);
3499 return NULL;
3500 }
3501 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3502 expr_ty a;
3503 void *b;
3504 if (
3505 (a = _PyPegen_name_token(p)) // NAME
3506 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003507 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003508 )
3509 {
3510 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 -04003511 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3512 if (_token == NULL) {
3513 D(p->level--);
3514 return NULL;
3515 }
3516 int _end_lineno = _token->end_lineno;
3517 UNUSED(_end_lineno); // Only used by EXTRA macro
3518 int _end_col_offset = _token->end_col_offset;
3519 UNUSED(_end_col_offset); // Only used by EXTRA macro
3520 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003521 if (_res == NULL && PyErr_Occurred()) {
3522 p->error_indicator = 1;
3523 D(p->level--);
3524 return NULL;
3525 }
3526 goto done;
3527 }
3528 p->mark = _mark;
3529 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3531 }
3532 _res = NULL;
3533 done:
3534 D(p->level--);
3535 return _res;
3536}
3537
3538// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003539static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003540dotted_as_names_rule(Parser *p)
3541{
3542 D(p->level++);
3543 if (p->error_indicator) {
3544 D(p->level--);
3545 return NULL;
3546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003547 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003548 int _mark = p->mark;
3549 { // ','.dotted_as_name+
3550 if (p->error_indicator) {
3551 D(p->level--);
3552 return NULL;
3553 }
3554 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 +01003555 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003556 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003557 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003558 )
3559 {
3560 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3561 _res = a;
3562 if (_res == NULL && PyErr_Occurred()) {
3563 p->error_indicator = 1;
3564 D(p->level--);
3565 return NULL;
3566 }
3567 goto done;
3568 }
3569 p->mark = _mark;
3570 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3572 }
3573 _res = NULL;
3574 done:
3575 D(p->level--);
3576 return _res;
3577}
3578
3579// dotted_as_name: dotted_name ['as' NAME]
3580static alias_ty
3581dotted_as_name_rule(Parser *p)
3582{
3583 D(p->level++);
3584 if (p->error_indicator) {
3585 D(p->level--);
3586 return NULL;
3587 }
3588 alias_ty _res = NULL;
3589 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003590 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3591 p->error_indicator = 1;
3592 D(p->level--);
3593 return NULL;
3594 }
3595 int _start_lineno = p->tokens[_mark]->lineno;
3596 UNUSED(_start_lineno); // Only used by EXTRA macro
3597 int _start_col_offset = p->tokens[_mark]->col_offset;
3598 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003599 { // dotted_name ['as' NAME]
3600 if (p->error_indicator) {
3601 D(p->level--);
3602 return NULL;
3603 }
3604 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3605 expr_ty a;
3606 void *b;
3607 if (
3608 (a = dotted_name_rule(p)) // dotted_name
3609 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003610 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003611 )
3612 {
3613 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 -04003614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3615 if (_token == NULL) {
3616 D(p->level--);
3617 return NULL;
3618 }
3619 int _end_lineno = _token->end_lineno;
3620 UNUSED(_end_lineno); // Only used by EXTRA macro
3621 int _end_col_offset = _token->end_col_offset;
3622 UNUSED(_end_col_offset); // Only used by EXTRA macro
3623 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003624 if (_res == NULL && PyErr_Occurred()) {
3625 p->error_indicator = 1;
3626 D(p->level--);
3627 return NULL;
3628 }
3629 goto done;
3630 }
3631 p->mark = _mark;
3632 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3634 }
3635 _res = NULL;
3636 done:
3637 D(p->level--);
3638 return _res;
3639}
3640
3641// Left-recursive
3642// dotted_name: dotted_name '.' NAME | NAME
3643static expr_ty dotted_name_raw(Parser *);
3644static expr_ty
3645dotted_name_rule(Parser *p)
3646{
3647 D(p->level++);
3648 expr_ty _res = NULL;
3649 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3650 D(p->level--);
3651 return _res;
3652 }
3653 int _mark = p->mark;
3654 int _resmark = p->mark;
3655 while (1) {
3656 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3657 if (tmpvar_0) {
3658 D(p->level--);
3659 return _res;
3660 }
3661 p->mark = _mark;
3662 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003663 if (p->error_indicator)
3664 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003665 if (_raw == NULL || p->mark <= _resmark)
3666 break;
3667 _resmark = p->mark;
3668 _res = _raw;
3669 }
3670 p->mark = _resmark;
3671 D(p->level--);
3672 return _res;
3673}
3674static expr_ty
3675dotted_name_raw(Parser *p)
3676{
3677 D(p->level++);
3678 if (p->error_indicator) {
3679 D(p->level--);
3680 return NULL;
3681 }
3682 expr_ty _res = NULL;
3683 int _mark = p->mark;
3684 { // dotted_name '.' NAME
3685 if (p->error_indicator) {
3686 D(p->level--);
3687 return NULL;
3688 }
3689 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3690 Token * _literal;
3691 expr_ty a;
3692 expr_ty b;
3693 if (
3694 (a = dotted_name_rule(p)) // dotted_name
3695 &&
3696 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3697 &&
3698 (b = _PyPegen_name_token(p)) // NAME
3699 )
3700 {
3701 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3702 _res = _PyPegen_join_names_with_dot ( p , a , b );
3703 if (_res == NULL && PyErr_Occurred()) {
3704 p->error_indicator = 1;
3705 D(p->level--);
3706 return NULL;
3707 }
3708 goto done;
3709 }
3710 p->mark = _mark;
3711 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3713 }
3714 { // NAME
3715 if (p->error_indicator) {
3716 D(p->level--);
3717 return NULL;
3718 }
3719 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3720 expr_ty name_var;
3721 if (
3722 (name_var = _PyPegen_name_token(p)) // NAME
3723 )
3724 {
3725 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3726 _res = name_var;
3727 goto done;
3728 }
3729 p->mark = _mark;
3730 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3732 }
3733 _res = NULL;
3734 done:
3735 D(p->level--);
3736 return _res;
3737}
3738
3739// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003740// | 'if' named_expression &&':' block elif_stmt
3741// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003742static stmt_ty
3743if_stmt_rule(Parser *p)
3744{
3745 D(p->level++);
3746 if (p->error_indicator) {
3747 D(p->level--);
3748 return NULL;
3749 }
3750 stmt_ty _res = NULL;
3751 int _mark = p->mark;
3752 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3753 p->error_indicator = 1;
3754 D(p->level--);
3755 return NULL;
3756 }
3757 int _start_lineno = p->tokens[_mark]->lineno;
3758 UNUSED(_start_lineno); // Only used by EXTRA macro
3759 int _start_col_offset = p->tokens[_mark]->col_offset;
3760 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003761 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003762 if (p->error_indicator) {
3763 D(p->level--);
3764 return NULL;
3765 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003766 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 +01003767 Token * _keyword;
3768 Token * _literal;
3769 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003770 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003771 stmt_ty c;
3772 if (
3773 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3774 &&
3775 (a = named_expression_rule(p)) // named_expression
3776 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003777 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003778 &&
3779 (b = block_rule(p)) // block
3780 &&
3781 (c = elif_stmt_rule(p)) // elif_stmt
3782 )
3783 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003784 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 +01003785 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3786 if (_token == NULL) {
3787 D(p->level--);
3788 return NULL;
3789 }
3790 int _end_lineno = _token->end_lineno;
3791 UNUSED(_end_lineno); // Only used by EXTRA macro
3792 int _end_col_offset = _token->end_col_offset;
3793 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003794 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003795 if (_res == NULL && PyErr_Occurred()) {
3796 p->error_indicator = 1;
3797 D(p->level--);
3798 return NULL;
3799 }
3800 goto done;
3801 }
3802 p->mark = _mark;
3803 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003805 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003806 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003807 if (p->error_indicator) {
3808 D(p->level--);
3809 return NULL;
3810 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003811 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 +01003812 Token * _keyword;
3813 Token * _literal;
3814 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003815 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003816 void *c;
3817 if (
3818 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3819 &&
3820 (a = named_expression_rule(p)) // named_expression
3821 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003822 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003823 &&
3824 (b = block_rule(p)) // block
3825 &&
3826 (c = else_block_rule(p), 1) // else_block?
3827 )
3828 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003829 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 +01003830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3831 if (_token == NULL) {
3832 D(p->level--);
3833 return NULL;
3834 }
3835 int _end_lineno = _token->end_lineno;
3836 UNUSED(_end_lineno); // Only used by EXTRA macro
3837 int _end_col_offset = _token->end_col_offset;
3838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003839 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003840 if (_res == NULL && PyErr_Occurred()) {
3841 p->error_indicator = 1;
3842 D(p->level--);
3843 return NULL;
3844 }
3845 goto done;
3846 }
3847 p->mark = _mark;
3848 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003850 }
3851 _res = NULL;
3852 done:
3853 D(p->level--);
3854 return _res;
3855}
3856
3857// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003858// | 'elif' named_expression &&':' block elif_stmt
3859// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003860static stmt_ty
3861elif_stmt_rule(Parser *p)
3862{
3863 D(p->level++);
3864 if (p->error_indicator) {
3865 D(p->level--);
3866 return NULL;
3867 }
3868 stmt_ty _res = NULL;
3869 int _mark = p->mark;
3870 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3871 p->error_indicator = 1;
3872 D(p->level--);
3873 return NULL;
3874 }
3875 int _start_lineno = p->tokens[_mark]->lineno;
3876 UNUSED(_start_lineno); // Only used by EXTRA macro
3877 int _start_col_offset = p->tokens[_mark]->col_offset;
3878 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003879 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003880 if (p->error_indicator) {
3881 D(p->level--);
3882 return NULL;
3883 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003884 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 +01003885 Token * _keyword;
3886 Token * _literal;
3887 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003888 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003889 stmt_ty c;
3890 if (
3891 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3892 &&
3893 (a = named_expression_rule(p)) // named_expression
3894 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003895 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003896 &&
3897 (b = block_rule(p)) // block
3898 &&
3899 (c = elif_stmt_rule(p)) // elif_stmt
3900 )
3901 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003902 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 +01003903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3904 if (_token == NULL) {
3905 D(p->level--);
3906 return NULL;
3907 }
3908 int _end_lineno = _token->end_lineno;
3909 UNUSED(_end_lineno); // Only used by EXTRA macro
3910 int _end_col_offset = _token->end_col_offset;
3911 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003912 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003913 if (_res == NULL && PyErr_Occurred()) {
3914 p->error_indicator = 1;
3915 D(p->level--);
3916 return NULL;
3917 }
3918 goto done;
3919 }
3920 p->mark = _mark;
3921 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003924 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 if (p->error_indicator) {
3926 D(p->level--);
3927 return NULL;
3928 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003929 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 +01003930 Token * _keyword;
3931 Token * _literal;
3932 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003933 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934 void *c;
3935 if (
3936 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3937 &&
3938 (a = named_expression_rule(p)) // named_expression
3939 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003940 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 &&
3942 (b = block_rule(p)) // block
3943 &&
3944 (c = else_block_rule(p), 1) // else_block?
3945 )
3946 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003947 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 +01003948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3949 if (_token == NULL) {
3950 D(p->level--);
3951 return NULL;
3952 }
3953 int _end_lineno = _token->end_lineno;
3954 UNUSED(_end_lineno); // Only used by EXTRA macro
3955 int _end_col_offset = _token->end_col_offset;
3956 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003957 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 if (_res == NULL && PyErr_Occurred()) {
3959 p->error_indicator = 1;
3960 D(p->level--);
3961 return NULL;
3962 }
3963 goto done;
3964 }
3965 p->mark = _mark;
3966 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003968 }
3969 _res = NULL;
3970 done:
3971 D(p->level--);
3972 return _res;
3973}
3974
Pablo Galindo58fb1562021-02-02 19:54:22 +00003975// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003976static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003977else_block_rule(Parser *p)
3978{
3979 D(p->level++);
3980 if (p->error_indicator) {
3981 D(p->level--);
3982 return NULL;
3983 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003984 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003985 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003986 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003987 if (p->error_indicator) {
3988 D(p->level--);
3989 return NULL;
3990 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003991 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003992 Token * _keyword;
3993 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003994 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003995 if (
3996 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3997 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003998 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003999 &&
4000 (b = block_rule(p)) // block
4001 )
4002 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004003 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 +01004004 _res = b;
4005 if (_res == NULL && PyErr_Occurred()) {
4006 p->error_indicator = 1;
4007 D(p->level--);
4008 return NULL;
4009 }
4010 goto done;
4011 }
4012 p->mark = _mark;
4013 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004015 }
4016 _res = NULL;
4017 done:
4018 D(p->level--);
4019 return _res;
4020}
4021
Pablo Galindo58fb1562021-02-02 19:54:22 +00004022// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004023static stmt_ty
4024while_stmt_rule(Parser *p)
4025{
4026 D(p->level++);
4027 if (p->error_indicator) {
4028 D(p->level--);
4029 return NULL;
4030 }
4031 stmt_ty _res = NULL;
4032 int _mark = p->mark;
4033 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4034 p->error_indicator = 1;
4035 D(p->level--);
4036 return NULL;
4037 }
4038 int _start_lineno = p->tokens[_mark]->lineno;
4039 UNUSED(_start_lineno); // Only used by EXTRA macro
4040 int _start_col_offset = p->tokens[_mark]->col_offset;
4041 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004042 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004043 if (p->error_indicator) {
4044 D(p->level--);
4045 return NULL;
4046 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004047 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 +01004048 Token * _keyword;
4049 Token * _literal;
4050 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004051 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004052 void *c;
4053 if (
4054 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4055 &&
4056 (a = named_expression_rule(p)) // named_expression
4057 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004058 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004059 &&
4060 (b = block_rule(p)) // block
4061 &&
4062 (c = else_block_rule(p), 1) // else_block?
4063 )
4064 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004065 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 +01004066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4067 if (_token == NULL) {
4068 D(p->level--);
4069 return NULL;
4070 }
4071 int _end_lineno = _token->end_lineno;
4072 UNUSED(_end_lineno); // Only used by EXTRA macro
4073 int _end_col_offset = _token->end_col_offset;
4074 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004075 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004076 if (_res == NULL && PyErr_Occurred()) {
4077 p->error_indicator = 1;
4078 D(p->level--);
4079 return NULL;
4080 }
4081 goto done;
4082 }
4083 p->mark = _mark;
4084 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004086 }
4087 _res = NULL;
4088 done:
4089 D(p->level--);
4090 return _res;
4091}
4092
4093// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004094// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4095// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004096// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097static stmt_ty
4098for_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 Galindo58fb1562021-02-02 19:54:22 +00004116 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004117 if (p->error_indicator) {
4118 D(p->level--);
4119 return NULL;
4120 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004121 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 +03004122 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004123 Token * _keyword;
4124 Token * _keyword_1;
4125 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004126 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004127 void *el;
4128 expr_ty ex;
4129 expr_ty t;
4130 void *tc;
4131 if (
4132 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4133 &&
4134 (t = star_targets_rule(p)) // star_targets
4135 &&
4136 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4137 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004138 (_cut_var = 1)
4139 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004140 (ex = star_expressions_rule(p)) // star_expressions
4141 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004142 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004143 &&
4144 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4145 &&
4146 (b = block_rule(p)) // block
4147 &&
4148 (el = else_block_rule(p), 1) // else_block?
4149 )
4150 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004151 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 +01004152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4153 if (_token == NULL) {
4154 D(p->level--);
4155 return NULL;
4156 }
4157 int _end_lineno = _token->end_lineno;
4158 UNUSED(_end_lineno); // Only used by EXTRA macro
4159 int _end_col_offset = _token->end_col_offset;
4160 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004161 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004162 if (_res == NULL && PyErr_Occurred()) {
4163 p->error_indicator = 1;
4164 D(p->level--);
4165 return NULL;
4166 }
4167 goto done;
4168 }
4169 p->mark = _mark;
4170 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004171 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 +03004172 if (_cut_var) {
4173 D(p->level--);
4174 return NULL;
4175 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004176 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004177 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178 if (p->error_indicator) {
4179 D(p->level--);
4180 return NULL;
4181 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004182 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 +03004183 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004184 Token * _keyword;
4185 Token * _keyword_1;
4186 Token * _literal;
4187 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004188 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004189 void *el;
4190 expr_ty ex;
4191 expr_ty t;
4192 void *tc;
4193 if (
4194 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4195 &&
4196 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4197 &&
4198 (t = star_targets_rule(p)) // star_targets
4199 &&
4200 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4201 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004202 (_cut_var = 1)
4203 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004204 (ex = star_expressions_rule(p)) // star_expressions
4205 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004206 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004207 &&
4208 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4209 &&
4210 (b = block_rule(p)) // block
4211 &&
4212 (el = else_block_rule(p), 1) // else_block?
4213 )
4214 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004215 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 +01004216 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4217 if (_token == NULL) {
4218 D(p->level--);
4219 return NULL;
4220 }
4221 int _end_lineno = _token->end_lineno;
4222 UNUSED(_end_lineno); // Only used by EXTRA macro
4223 int _end_col_offset = _token->end_col_offset;
4224 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004225 _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 +01004226 if (_res == NULL && PyErr_Occurred()) {
4227 p->error_indicator = 1;
4228 D(p->level--);
4229 return NULL;
4230 }
4231 goto done;
4232 }
4233 p->mark = _mark;
4234 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004235 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 +03004236 if (_cut_var) {
4237 D(p->level--);
4238 return NULL;
4239 }
4240 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004241 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004242 if (p->error_indicator) {
4243 D(p->level--);
4244 return NULL;
4245 }
4246 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4247 void *invalid_for_target_var;
4248 if (
4249 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4250 )
4251 {
4252 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4253 _res = invalid_for_target_var;
4254 goto done;
4255 }
4256 p->mark = _mark;
4257 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004259 }
4260 _res = NULL;
4261 done:
4262 D(p->level--);
4263 return _res;
4264}
4265
4266// with_stmt:
4267// | 'with' '(' ','.with_item+ ','? ')' ':' block
4268// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4269// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4270// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004271// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004272static stmt_ty
4273with_stmt_rule(Parser *p)
4274{
4275 D(p->level++);
4276 if (p->error_indicator) {
4277 D(p->level--);
4278 return NULL;
4279 }
4280 stmt_ty _res = NULL;
4281 int _mark = p->mark;
4282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4283 p->error_indicator = 1;
4284 D(p->level--);
4285 return NULL;
4286 }
4287 int _start_lineno = p->tokens[_mark]->lineno;
4288 UNUSED(_start_lineno); // Only used by EXTRA macro
4289 int _start_col_offset = p->tokens[_mark]->col_offset;
4290 UNUSED(_start_col_offset); // Only used by EXTRA macro
4291 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4292 if (p->error_indicator) {
4293 D(p->level--);
4294 return NULL;
4295 }
4296 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4297 Token * _keyword;
4298 Token * _literal;
4299 Token * _literal_1;
4300 Token * _literal_2;
4301 void *_opt_var;
4302 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004303 asdl_withitem_seq* a;
4304 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004305 if (
4306 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4307 &&
4308 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4309 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004310 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004311 &&
4312 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4313 &&
4314 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4315 &&
4316 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4317 &&
4318 (b = block_rule(p)) // block
4319 )
4320 {
4321 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4322 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4323 if (_token == NULL) {
4324 D(p->level--);
4325 return NULL;
4326 }
4327 int _end_lineno = _token->end_lineno;
4328 UNUSED(_end_lineno); // Only used by EXTRA macro
4329 int _end_col_offset = _token->end_col_offset;
4330 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004331 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004332 if (_res == NULL && PyErr_Occurred()) {
4333 p->error_indicator = 1;
4334 D(p->level--);
4335 return NULL;
4336 }
4337 goto done;
4338 }
4339 p->mark = _mark;
4340 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4342 }
4343 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4344 if (p->error_indicator) {
4345 D(p->level--);
4346 return NULL;
4347 }
4348 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4349 Token * _keyword;
4350 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004351 asdl_withitem_seq* a;
4352 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004353 void *tc;
4354 if (
4355 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4356 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004357 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004358 &&
4359 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4360 &&
4361 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4362 &&
4363 (b = block_rule(p)) // block
4364 )
4365 {
4366 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4368 if (_token == NULL) {
4369 D(p->level--);
4370 return NULL;
4371 }
4372 int _end_lineno = _token->end_lineno;
4373 UNUSED(_end_lineno); // Only used by EXTRA macro
4374 int _end_col_offset = _token->end_col_offset;
4375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004376 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004377 if (_res == NULL && PyErr_Occurred()) {
4378 p->error_indicator = 1;
4379 D(p->level--);
4380 return NULL;
4381 }
4382 goto done;
4383 }
4384 p->mark = _mark;
4385 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4387 }
4388 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4389 if (p->error_indicator) {
4390 D(p->level--);
4391 return NULL;
4392 }
4393 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4394 Token * _keyword;
4395 Token * _literal;
4396 Token * _literal_1;
4397 Token * _literal_2;
4398 void *_opt_var;
4399 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004400 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004401 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004402 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004403 if (
4404 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4405 &&
4406 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4407 &&
4408 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4409 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004410 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004411 &&
4412 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4413 &&
4414 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4415 &&
4416 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4417 &&
4418 (b = block_rule(p)) // block
4419 )
4420 {
4421 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4423 if (_token == NULL) {
4424 D(p->level--);
4425 return NULL;
4426 }
4427 int _end_lineno = _token->end_lineno;
4428 UNUSED(_end_lineno); // Only used by EXTRA macro
4429 int _end_col_offset = _token->end_col_offset;
4430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004431 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004432 if (_res == NULL && PyErr_Occurred()) {
4433 p->error_indicator = 1;
4434 D(p->level--);
4435 return NULL;
4436 }
4437 goto done;
4438 }
4439 p->mark = _mark;
4440 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4442 }
4443 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4444 if (p->error_indicator) {
4445 D(p->level--);
4446 return NULL;
4447 }
4448 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4449 Token * _keyword;
4450 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004451 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004452 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004453 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004454 void *tc;
4455 if (
4456 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4457 &&
4458 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4459 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004460 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004461 &&
4462 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4463 &&
4464 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4465 &&
4466 (b = block_rule(p)) // block
4467 )
4468 {
4469 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4471 if (_token == NULL) {
4472 D(p->level--);
4473 return NULL;
4474 }
4475 int _end_lineno = _token->end_lineno;
4476 UNUSED(_end_lineno); // Only used by EXTRA macro
4477 int _end_col_offset = _token->end_col_offset;
4478 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004479 _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 +01004480 if (_res == NULL && PyErr_Occurred()) {
4481 p->error_indicator = 1;
4482 D(p->level--);
4483 return NULL;
4484 }
4485 goto done;
4486 }
4487 p->mark = _mark;
4488 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4490 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004491 if (p->call_invalid_rules) { // invalid_with_stmt
4492 if (p->error_indicator) {
4493 D(p->level--);
4494 return NULL;
4495 }
4496 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4497 void *invalid_with_stmt_var;
4498 if (
4499 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4500 )
4501 {
4502 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4503 _res = invalid_with_stmt_var;
4504 goto done;
4505 }
4506 p->mark = _mark;
4507 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4509 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004510 _res = NULL;
4511 done:
4512 D(p->level--);
4513 return _res;
4514}
4515
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004516// with_item:
4517// | expression 'as' star_target &(',' | ')' | ':')
4518// | invalid_with_item
4519// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004520static withitem_ty
4521with_item_rule(Parser *p)
4522{
4523 D(p->level++);
4524 if (p->error_indicator) {
4525 D(p->level--);
4526 return NULL;
4527 }
4528 withitem_ty _res = NULL;
4529 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004530 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004531 if (p->error_indicator) {
4532 D(p->level--);
4533 return NULL;
4534 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004535 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 +03004536 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004537 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004538 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004539 if (
4540 (e = expression_rule(p)) // expression
4541 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004542 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4543 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004544 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004545 &&
4546 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 )
4548 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004549 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 +02004550 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004551 if (_res == NULL && PyErr_Occurred()) {
4552 p->error_indicator = 1;
4553 D(p->level--);
4554 return NULL;
4555 }
4556 goto done;
4557 }
4558 p->mark = _mark;
4559 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004561 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004562 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004563 if (p->error_indicator) {
4564 D(p->level--);
4565 return NULL;
4566 }
4567 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4568 void *invalid_with_item_var;
4569 if (
4570 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4571 )
4572 {
4573 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4574 _res = invalid_with_item_var;
4575 goto done;
4576 }
4577 p->mark = _mark;
4578 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4580 }
4581 { // expression
4582 if (p->error_indicator) {
4583 D(p->level--);
4584 return NULL;
4585 }
4586 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4587 expr_ty e;
4588 if (
4589 (e = expression_rule(p)) // expression
4590 )
4591 {
4592 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004593 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004594 if (_res == NULL && PyErr_Occurred()) {
4595 p->error_indicator = 1;
4596 D(p->level--);
4597 return NULL;
4598 }
4599 goto done;
4600 }
4601 p->mark = _mark;
4602 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004604 }
4605 _res = NULL;
4606 done:
4607 D(p->level--);
4608 return _res;
4609}
4610
4611// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004612// | 'try' &&':' block finally_block
4613// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004614static stmt_ty
4615try_stmt_rule(Parser *p)
4616{
4617 D(p->level++);
4618 if (p->error_indicator) {
4619 D(p->level--);
4620 return NULL;
4621 }
4622 stmt_ty _res = NULL;
4623 int _mark = p->mark;
4624 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4625 p->error_indicator = 1;
4626 D(p->level--);
4627 return NULL;
4628 }
4629 int _start_lineno = p->tokens[_mark]->lineno;
4630 UNUSED(_start_lineno); // Only used by EXTRA macro
4631 int _start_col_offset = p->tokens[_mark]->col_offset;
4632 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004633 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 if (p->error_indicator) {
4635 D(p->level--);
4636 return NULL;
4637 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004638 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 +01004639 Token * _keyword;
4640 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004641 asdl_stmt_seq* b;
4642 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004643 if (
4644 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4645 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004646 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004647 &&
4648 (b = block_rule(p)) // block
4649 &&
4650 (f = finally_block_rule(p)) // finally_block
4651 )
4652 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004653 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 +01004654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4655 if (_token == NULL) {
4656 D(p->level--);
4657 return NULL;
4658 }
4659 int _end_lineno = _token->end_lineno;
4660 UNUSED(_end_lineno); // Only used by EXTRA macro
4661 int _end_col_offset = _token->end_col_offset;
4662 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004663 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004664 if (_res == NULL && PyErr_Occurred()) {
4665 p->error_indicator = 1;
4666 D(p->level--);
4667 return NULL;
4668 }
4669 goto done;
4670 }
4671 p->mark = _mark;
4672 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004674 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004675 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004676 if (p->error_indicator) {
4677 D(p->level--);
4678 return NULL;
4679 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004680 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 +01004681 Token * _keyword;
4682 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004683 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004684 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004685 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004686 void *f;
4687 if (
4688 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4689 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004690 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004691 &&
4692 (b = block_rule(p)) // block
4693 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004694 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004695 &&
4696 (el = else_block_rule(p), 1) // else_block?
4697 &&
4698 (f = finally_block_rule(p), 1) // finally_block?
4699 )
4700 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004701 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 +01004702 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4703 if (_token == NULL) {
4704 D(p->level--);
4705 return NULL;
4706 }
4707 int _end_lineno = _token->end_lineno;
4708 UNUSED(_end_lineno); // Only used by EXTRA macro
4709 int _end_col_offset = _token->end_col_offset;
4710 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004711 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004712 if (_res == NULL && PyErr_Occurred()) {
4713 p->error_indicator = 1;
4714 D(p->level--);
4715 return NULL;
4716 }
4717 goto done;
4718 }
4719 p->mark = _mark;
4720 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004722 }
4723 _res = NULL;
4724 done:
4725 D(p->level--);
4726 return _res;
4727}
4728
Pablo Galindo206cbda2021-02-07 18:42:21 +00004729// except_block:
4730// | 'except' expression ['as' NAME] ':' block
4731// | 'except' ':' block
4732// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004733static excepthandler_ty
4734except_block_rule(Parser *p)
4735{
4736 D(p->level++);
4737 if (p->error_indicator) {
4738 D(p->level--);
4739 return NULL;
4740 }
4741 excepthandler_ty _res = NULL;
4742 int _mark = p->mark;
4743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4744 p->error_indicator = 1;
4745 D(p->level--);
4746 return NULL;
4747 }
4748 int _start_lineno = p->tokens[_mark]->lineno;
4749 UNUSED(_start_lineno); // Only used by EXTRA macro
4750 int _start_col_offset = p->tokens[_mark]->col_offset;
4751 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004752 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 if (p->error_indicator) {
4754 D(p->level--);
4755 return NULL;
4756 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004757 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 +01004758 Token * _keyword;
4759 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004760 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004761 expr_ty e;
4762 void *t;
4763 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004764 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004765 &&
4766 (e = expression_rule(p)) // expression
4767 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004768 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004769 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004770 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004771 &&
4772 (b = block_rule(p)) // block
4773 )
4774 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004775 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 +01004776 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4777 if (_token == NULL) {
4778 D(p->level--);
4779 return NULL;
4780 }
4781 int _end_lineno = _token->end_lineno;
4782 UNUSED(_end_lineno); // Only used by EXTRA macro
4783 int _end_col_offset = _token->end_col_offset;
4784 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004785 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004786 if (_res == NULL && PyErr_Occurred()) {
4787 p->error_indicator = 1;
4788 D(p->level--);
4789 return NULL;
4790 }
4791 goto done;
4792 }
4793 p->mark = _mark;
4794 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004796 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004797 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004798 if (p->error_indicator) {
4799 D(p->level--);
4800 return NULL;
4801 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004802 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004803 Token * _keyword;
4804 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004805 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004806 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004807 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004808 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004809 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004810 &&
4811 (b = block_rule(p)) // block
4812 )
4813 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004814 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 +01004815 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4816 if (_token == NULL) {
4817 D(p->level--);
4818 return NULL;
4819 }
4820 int _end_lineno = _token->end_lineno;
4821 UNUSED(_end_lineno); // Only used by EXTRA macro
4822 int _end_col_offset = _token->end_col_offset;
4823 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004824 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004825 if (_res == NULL && PyErr_Occurred()) {
4826 p->error_indicator = 1;
4827 D(p->level--);
4828 return NULL;
4829 }
4830 goto done;
4831 }
4832 p->mark = _mark;
4833 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4835 }
4836 if (p->call_invalid_rules) { // invalid_except_block
4837 if (p->error_indicator) {
4838 D(p->level--);
4839 return NULL;
4840 }
4841 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4842 void *invalid_except_block_var;
4843 if (
4844 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4845 )
4846 {
4847 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4848 _res = invalid_except_block_var;
4849 goto done;
4850 }
4851 p->mark = _mark;
4852 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004854 }
4855 _res = NULL;
4856 done:
4857 D(p->level--);
4858 return _res;
4859}
4860
4861// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004862static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004863finally_block_rule(Parser *p)
4864{
4865 D(p->level++);
4866 if (p->error_indicator) {
4867 D(p->level--);
4868 return NULL;
4869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004870 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004871 int _mark = p->mark;
4872 { // 'finally' ':' block
4873 if (p->error_indicator) {
4874 D(p->level--);
4875 return NULL;
4876 }
4877 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4878 Token * _keyword;
4879 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004880 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004882 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004883 &&
4884 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4885 &&
4886 (a = block_rule(p)) // block
4887 )
4888 {
4889 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4890 _res = a;
4891 if (_res == NULL && PyErr_Occurred()) {
4892 p->error_indicator = 1;
4893 D(p->level--);
4894 return NULL;
4895 }
4896 goto done;
4897 }
4898 p->mark = _mark;
4899 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4901 }
4902 _res = NULL;
4903 done:
4904 D(p->level--);
4905 return _res;
4906}
4907
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004908// match_stmt:
4909// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4910// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08004911static stmt_ty
4912match_stmt_rule(Parser *p)
4913{
4914 D(p->level++);
4915 if (p->error_indicator) {
4916 D(p->level--);
4917 return NULL;
4918 }
4919 stmt_ty _res = NULL;
4920 int _mark = p->mark;
4921 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4922 p->error_indicator = 1;
4923 D(p->level--);
4924 return NULL;
4925 }
4926 int _start_lineno = p->tokens[_mark]->lineno;
4927 UNUSED(_start_lineno); // Only used by EXTRA macro
4928 int _start_col_offset = p->tokens[_mark]->col_offset;
4929 UNUSED(_start_col_offset); // Only used by EXTRA macro
4930 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4931 if (p->error_indicator) {
4932 D(p->level--);
4933 return NULL;
4934 }
4935 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4936 expr_ty _keyword;
4937 Token * _literal;
4938 asdl_match_case_seq* cases;
4939 Token * dedent_var;
4940 Token * indent_var;
4941 Token * newline_var;
4942 expr_ty subject;
4943 if (
4944 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
4945 &&
4946 (subject = subject_expr_rule(p)) // subject_expr
4947 &&
4948 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4949 &&
4950 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
4951 &&
4952 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
4953 &&
4954 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
4955 &&
4956 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
4957 )
4958 {
4959 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4960 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4961 if (_token == NULL) {
4962 D(p->level--);
4963 return NULL;
4964 }
4965 int _end_lineno = _token->end_lineno;
4966 UNUSED(_end_lineno); // Only used by EXTRA macro
4967 int _end_col_offset = _token->end_col_offset;
4968 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004969 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08004970 if (_res == NULL && PyErr_Occurred()) {
4971 p->error_indicator = 1;
4972 D(p->level--);
4973 return NULL;
4974 }
4975 goto done;
4976 }
4977 p->mark = _mark;
4978 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4980 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00004981 if (p->call_invalid_rules) { // invalid_match_stmt
4982 if (p->error_indicator) {
4983 D(p->level--);
4984 return NULL;
4985 }
4986 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
4987 void *invalid_match_stmt_var;
4988 if (
4989 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
4990 )
4991 {
4992 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
4993 _res = invalid_match_stmt_var;
4994 goto done;
4995 }
4996 p->mark = _mark;
4997 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
4999 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005000 _res = NULL;
5001 done:
5002 D(p->level--);
5003 return _res;
5004}
5005
5006// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5007static expr_ty
5008subject_expr_rule(Parser *p)
5009{
5010 D(p->level++);
5011 if (p->error_indicator) {
5012 D(p->level--);
5013 return NULL;
5014 }
5015 expr_ty _res = NULL;
5016 int _mark = p->mark;
5017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5018 p->error_indicator = 1;
5019 D(p->level--);
5020 return NULL;
5021 }
5022 int _start_lineno = p->tokens[_mark]->lineno;
5023 UNUSED(_start_lineno); // Only used by EXTRA macro
5024 int _start_col_offset = p->tokens[_mark]->col_offset;
5025 UNUSED(_start_col_offset); // Only used by EXTRA macro
5026 { // star_named_expression ',' star_named_expressions?
5027 if (p->error_indicator) {
5028 D(p->level--);
5029 return NULL;
5030 }
5031 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5032 Token * _literal;
5033 expr_ty value;
5034 void *values;
5035 if (
5036 (value = star_named_expression_rule(p)) // star_named_expression
5037 &&
5038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5039 &&
5040 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5041 )
5042 {
5043 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5045 if (_token == NULL) {
5046 D(p->level--);
5047 return NULL;
5048 }
5049 int _end_lineno = _token->end_lineno;
5050 UNUSED(_end_lineno); // Only used by EXTRA macro
5051 int _end_col_offset = _token->end_col_offset;
5052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005053 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005054 if (_res == NULL && PyErr_Occurred()) {
5055 p->error_indicator = 1;
5056 D(p->level--);
5057 return NULL;
5058 }
5059 goto done;
5060 }
5061 p->mark = _mark;
5062 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5064 }
5065 { // named_expression
5066 if (p->error_indicator) {
5067 D(p->level--);
5068 return NULL;
5069 }
5070 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5071 expr_ty named_expression_var;
5072 if (
5073 (named_expression_var = named_expression_rule(p)) // named_expression
5074 )
5075 {
5076 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5077 _res = named_expression_var;
5078 goto done;
5079 }
5080 p->mark = _mark;
5081 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5083 }
5084 _res = NULL;
5085 done:
5086 D(p->level--);
5087 return _res;
5088}
5089
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005090// case_block: "case" patterns guard? ':' block | invalid_case_block
Brandt Bucher145bf262021-02-26 14:51:55 -08005091static match_case_ty
5092case_block_rule(Parser *p)
5093{
5094 D(p->level++);
5095 if (p->error_indicator) {
5096 D(p->level--);
5097 return NULL;
5098 }
5099 match_case_ty _res = NULL;
5100 int _mark = p->mark;
5101 { // "case" patterns guard? ':' block
5102 if (p->error_indicator) {
5103 D(p->level--);
5104 return NULL;
5105 }
5106 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5107 expr_ty _keyword;
5108 Token * _literal;
5109 asdl_stmt_seq* body;
5110 void *guard;
5111 expr_ty pattern;
5112 if (
5113 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5114 &&
5115 (pattern = patterns_rule(p)) // patterns
5116 &&
5117 (guard = guard_rule(p), 1) // guard?
5118 &&
5119 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5120 &&
5121 (body = block_rule(p)) // block
5122 )
5123 {
5124 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 +02005125 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005126 if (_res == NULL && PyErr_Occurred()) {
5127 p->error_indicator = 1;
5128 D(p->level--);
5129 return NULL;
5130 }
5131 goto done;
5132 }
5133 p->mark = _mark;
5134 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5136 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005137 if (p->call_invalid_rules) { // invalid_case_block
5138 if (p->error_indicator) {
5139 D(p->level--);
5140 return NULL;
5141 }
5142 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5143 void *invalid_case_block_var;
5144 if (
5145 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5146 )
5147 {
5148 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5149 _res = invalid_case_block_var;
5150 goto done;
5151 }
5152 p->mark = _mark;
5153 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5155 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005156 _res = NULL;
5157 done:
5158 D(p->level--);
5159 return _res;
5160}
5161
5162// guard: 'if' named_expression
5163static expr_ty
5164guard_rule(Parser *p)
5165{
5166 D(p->level++);
5167 if (p->error_indicator) {
5168 D(p->level--);
5169 return NULL;
5170 }
5171 expr_ty _res = NULL;
5172 int _mark = p->mark;
5173 { // 'if' named_expression
5174 if (p->error_indicator) {
5175 D(p->level--);
5176 return NULL;
5177 }
5178 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5179 Token * _keyword;
5180 expr_ty guard;
5181 if (
5182 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5183 &&
5184 (guard = named_expression_rule(p)) // named_expression
5185 )
5186 {
5187 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5188 _res = guard;
5189 if (_res == NULL && PyErr_Occurred()) {
5190 p->error_indicator = 1;
5191 D(p->level--);
5192 return NULL;
5193 }
5194 goto done;
5195 }
5196 p->mark = _mark;
5197 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5199 }
5200 _res = NULL;
5201 done:
5202 D(p->level--);
5203 return _res;
5204}
5205
5206// patterns: open_sequence_pattern | pattern
5207static expr_ty
5208patterns_rule(Parser *p)
5209{
5210 D(p->level++);
5211 if (p->error_indicator) {
5212 D(p->level--);
5213 return NULL;
5214 }
5215 expr_ty _res = NULL;
5216 int _mark = p->mark;
5217 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5218 p->error_indicator = 1;
5219 D(p->level--);
5220 return NULL;
5221 }
5222 int _start_lineno = p->tokens[_mark]->lineno;
5223 UNUSED(_start_lineno); // Only used by EXTRA macro
5224 int _start_col_offset = p->tokens[_mark]->col_offset;
5225 UNUSED(_start_col_offset); // Only used by EXTRA macro
5226 { // open_sequence_pattern
5227 if (p->error_indicator) {
5228 D(p->level--);
5229 return NULL;
5230 }
5231 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5232 asdl_expr_seq* values;
5233 if (
5234 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5235 )
5236 {
5237 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5238 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5239 if (_token == NULL) {
5240 D(p->level--);
5241 return NULL;
5242 }
5243 int _end_lineno = _token->end_lineno;
5244 UNUSED(_end_lineno); // Only used by EXTRA macro
5245 int _end_col_offset = _token->end_col_offset;
5246 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005247 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005248 if (_res == NULL && PyErr_Occurred()) {
5249 p->error_indicator = 1;
5250 D(p->level--);
5251 return NULL;
5252 }
5253 goto done;
5254 }
5255 p->mark = _mark;
5256 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5258 }
5259 { // pattern
5260 if (p->error_indicator) {
5261 D(p->level--);
5262 return NULL;
5263 }
5264 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5265 expr_ty pattern_var;
5266 if (
5267 (pattern_var = pattern_rule(p)) // pattern
5268 )
5269 {
5270 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5271 _res = pattern_var;
5272 goto done;
5273 }
5274 p->mark = _mark;
5275 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5277 }
5278 _res = NULL;
5279 done:
5280 D(p->level--);
5281 return _res;
5282}
5283
5284// pattern: as_pattern | or_pattern
5285static expr_ty
5286pattern_rule(Parser *p)
5287{
5288 D(p->level++);
5289 if (p->error_indicator) {
5290 D(p->level--);
5291 return NULL;
5292 }
5293 expr_ty _res = NULL;
5294 int _mark = p->mark;
5295 { // as_pattern
5296 if (p->error_indicator) {
5297 D(p->level--);
5298 return NULL;
5299 }
5300 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5301 expr_ty as_pattern_var;
5302 if (
5303 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5304 )
5305 {
5306 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5307 _res = as_pattern_var;
5308 goto done;
5309 }
5310 p->mark = _mark;
5311 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5313 }
5314 { // or_pattern
5315 if (p->error_indicator) {
5316 D(p->level--);
5317 return NULL;
5318 }
5319 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5320 expr_ty or_pattern_var;
5321 if (
5322 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5323 )
5324 {
5325 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5326 _res = or_pattern_var;
5327 goto done;
5328 }
5329 p->mark = _mark;
5330 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5332 }
5333 _res = NULL;
5334 done:
5335 D(p->level--);
5336 return _res;
5337}
5338
5339// as_pattern: or_pattern 'as' capture_pattern
5340static expr_ty
5341as_pattern_rule(Parser *p)
5342{
5343 D(p->level++);
5344 if (p->error_indicator) {
5345 D(p->level--);
5346 return NULL;
5347 }
5348 expr_ty _res = NULL;
5349 int _mark = p->mark;
5350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5351 p->error_indicator = 1;
5352 D(p->level--);
5353 return NULL;
5354 }
5355 int _start_lineno = p->tokens[_mark]->lineno;
5356 UNUSED(_start_lineno); // Only used by EXTRA macro
5357 int _start_col_offset = p->tokens[_mark]->col_offset;
5358 UNUSED(_start_col_offset); // Only used by EXTRA macro
5359 { // or_pattern 'as' capture_pattern
5360 if (p->error_indicator) {
5361 D(p->level--);
5362 return NULL;
5363 }
5364 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5365 Token * _keyword;
5366 expr_ty pattern;
5367 expr_ty target;
5368 if (
5369 (pattern = or_pattern_rule(p)) // or_pattern
5370 &&
5371 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5372 &&
5373 (target = capture_pattern_rule(p)) // capture_pattern
5374 )
5375 {
5376 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5378 if (_token == NULL) {
5379 D(p->level--);
5380 return NULL;
5381 }
5382 int _end_lineno = _token->end_lineno;
5383 UNUSED(_end_lineno); // Only used by EXTRA macro
5384 int _end_col_offset = _token->end_col_offset;
5385 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005386 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005387 if (_res == NULL && PyErr_Occurred()) {
5388 p->error_indicator = 1;
5389 D(p->level--);
5390 return NULL;
5391 }
5392 goto done;
5393 }
5394 p->mark = _mark;
5395 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5397 }
5398 _res = NULL;
5399 done:
5400 D(p->level--);
5401 return _res;
5402}
5403
5404// or_pattern: '|'.closed_pattern+
5405static expr_ty
5406or_pattern_rule(Parser *p)
5407{
5408 D(p->level++);
5409 if (p->error_indicator) {
5410 D(p->level--);
5411 return NULL;
5412 }
5413 expr_ty _res = NULL;
5414 int _mark = p->mark;
5415 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5416 p->error_indicator = 1;
5417 D(p->level--);
5418 return NULL;
5419 }
5420 int _start_lineno = p->tokens[_mark]->lineno;
5421 UNUSED(_start_lineno); // Only used by EXTRA macro
5422 int _start_col_offset = p->tokens[_mark]->col_offset;
5423 UNUSED(_start_col_offset); // Only used by EXTRA macro
5424 { // '|'.closed_pattern+
5425 if (p->error_indicator) {
5426 D(p->level--);
5427 return NULL;
5428 }
5429 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5430 asdl_expr_seq* patterns;
5431 if (
5432 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5433 )
5434 {
5435 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5436 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5437 if (_token == NULL) {
5438 D(p->level--);
5439 return NULL;
5440 }
5441 int _end_lineno = _token->end_lineno;
5442 UNUSED(_end_lineno); // Only used by EXTRA macro
5443 int _end_col_offset = _token->end_col_offset;
5444 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005445 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005446 if (_res == NULL && PyErr_Occurred()) {
5447 p->error_indicator = 1;
5448 D(p->level--);
5449 return NULL;
5450 }
5451 goto done;
5452 }
5453 p->mark = _mark;
5454 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5456 }
5457 _res = NULL;
5458 done:
5459 D(p->level--);
5460 return _res;
5461}
5462
5463// closed_pattern:
5464// | literal_pattern
5465// | capture_pattern
5466// | wildcard_pattern
5467// | value_pattern
5468// | group_pattern
5469// | sequence_pattern
5470// | mapping_pattern
5471// | class_pattern
5472static expr_ty
5473closed_pattern_rule(Parser *p)
5474{
5475 D(p->level++);
5476 if (p->error_indicator) {
5477 D(p->level--);
5478 return NULL;
5479 }
5480 expr_ty _res = NULL;
5481 int _mark = p->mark;
5482 { // literal_pattern
5483 if (p->error_indicator) {
5484 D(p->level--);
5485 return NULL;
5486 }
5487 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5488 expr_ty literal_pattern_var;
5489 if (
5490 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5491 )
5492 {
5493 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5494 _res = literal_pattern_var;
5495 goto done;
5496 }
5497 p->mark = _mark;
5498 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5500 }
5501 { // capture_pattern
5502 if (p->error_indicator) {
5503 D(p->level--);
5504 return NULL;
5505 }
5506 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5507 expr_ty capture_pattern_var;
5508 if (
5509 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5510 )
5511 {
5512 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5513 _res = capture_pattern_var;
5514 goto done;
5515 }
5516 p->mark = _mark;
5517 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5519 }
5520 { // wildcard_pattern
5521 if (p->error_indicator) {
5522 D(p->level--);
5523 return NULL;
5524 }
5525 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5526 expr_ty wildcard_pattern_var;
5527 if (
5528 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5529 )
5530 {
5531 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5532 _res = wildcard_pattern_var;
5533 goto done;
5534 }
5535 p->mark = _mark;
5536 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5538 }
5539 { // value_pattern
5540 if (p->error_indicator) {
5541 D(p->level--);
5542 return NULL;
5543 }
5544 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5545 expr_ty value_pattern_var;
5546 if (
5547 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5548 )
5549 {
5550 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5551 _res = value_pattern_var;
5552 goto done;
5553 }
5554 p->mark = _mark;
5555 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5557 }
5558 { // group_pattern
5559 if (p->error_indicator) {
5560 D(p->level--);
5561 return NULL;
5562 }
5563 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5564 expr_ty group_pattern_var;
5565 if (
5566 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5567 )
5568 {
5569 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5570 _res = group_pattern_var;
5571 goto done;
5572 }
5573 p->mark = _mark;
5574 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5576 }
5577 { // sequence_pattern
5578 if (p->error_indicator) {
5579 D(p->level--);
5580 return NULL;
5581 }
5582 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5583 expr_ty sequence_pattern_var;
5584 if (
5585 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5586 )
5587 {
5588 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5589 _res = sequence_pattern_var;
5590 goto done;
5591 }
5592 p->mark = _mark;
5593 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5595 }
5596 { // mapping_pattern
5597 if (p->error_indicator) {
5598 D(p->level--);
5599 return NULL;
5600 }
5601 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5602 expr_ty mapping_pattern_var;
5603 if (
5604 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5605 )
5606 {
5607 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5608 _res = mapping_pattern_var;
5609 goto done;
5610 }
5611 p->mark = _mark;
5612 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5614 }
5615 { // class_pattern
5616 if (p->error_indicator) {
5617 D(p->level--);
5618 return NULL;
5619 }
5620 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5621 expr_ty class_pattern_var;
5622 if (
5623 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5624 )
5625 {
5626 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5627 _res = class_pattern_var;
5628 goto done;
5629 }
5630 p->mark = _mark;
5631 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5633 }
5634 _res = NULL;
5635 done:
5636 D(p->level--);
5637 return _res;
5638}
5639
5640// literal_pattern:
5641// | signed_number !('+' | '-')
5642// | signed_number '+' NUMBER
5643// | signed_number '-' NUMBER
5644// | strings
5645// | 'None'
5646// | 'True'
5647// | 'False'
5648static expr_ty
5649literal_pattern_rule(Parser *p)
5650{
5651 D(p->level++);
5652 if (p->error_indicator) {
5653 D(p->level--);
5654 return NULL;
5655 }
5656 expr_ty _res = NULL;
5657 int _mark = p->mark;
5658 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5659 p->error_indicator = 1;
5660 D(p->level--);
5661 return NULL;
5662 }
5663 int _start_lineno = p->tokens[_mark]->lineno;
5664 UNUSED(_start_lineno); // Only used by EXTRA macro
5665 int _start_col_offset = p->tokens[_mark]->col_offset;
5666 UNUSED(_start_col_offset); // Only used by EXTRA macro
5667 { // signed_number !('+' | '-')
5668 if (p->error_indicator) {
5669 D(p->level--);
5670 return NULL;
5671 }
5672 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5673 expr_ty signed_number_var;
5674 if (
5675 (signed_number_var = signed_number_rule(p)) // signed_number
5676 &&
5677 _PyPegen_lookahead(0, _tmp_53_rule, p)
5678 )
5679 {
5680 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5681 _res = signed_number_var;
5682 goto done;
5683 }
5684 p->mark = _mark;
5685 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5687 }
5688 { // signed_number '+' NUMBER
5689 if (p->error_indicator) {
5690 D(p->level--);
5691 return NULL;
5692 }
5693 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5694 Token * _literal;
5695 expr_ty imag;
5696 expr_ty real;
5697 if (
5698 (real = signed_number_rule(p)) // signed_number
5699 &&
5700 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5701 &&
5702 (imag = _PyPegen_number_token(p)) // NUMBER
5703 )
5704 {
5705 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5707 if (_token == NULL) {
5708 D(p->level--);
5709 return NULL;
5710 }
5711 int _end_lineno = _token->end_lineno;
5712 UNUSED(_end_lineno); // Only used by EXTRA macro
5713 int _end_col_offset = _token->end_col_offset;
5714 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005715 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005716 if (_res == NULL && PyErr_Occurred()) {
5717 p->error_indicator = 1;
5718 D(p->level--);
5719 return NULL;
5720 }
5721 goto done;
5722 }
5723 p->mark = _mark;
5724 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5726 }
5727 { // signed_number '-' NUMBER
5728 if (p->error_indicator) {
5729 D(p->level--);
5730 return NULL;
5731 }
5732 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5733 Token * _literal;
5734 expr_ty imag;
5735 expr_ty real;
5736 if (
5737 (real = signed_number_rule(p)) // signed_number
5738 &&
5739 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5740 &&
5741 (imag = _PyPegen_number_token(p)) // NUMBER
5742 )
5743 {
5744 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5746 if (_token == NULL) {
5747 D(p->level--);
5748 return NULL;
5749 }
5750 int _end_lineno = _token->end_lineno;
5751 UNUSED(_end_lineno); // Only used by EXTRA macro
5752 int _end_col_offset = _token->end_col_offset;
5753 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005754 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005755 if (_res == NULL && PyErr_Occurred()) {
5756 p->error_indicator = 1;
5757 D(p->level--);
5758 return NULL;
5759 }
5760 goto done;
5761 }
5762 p->mark = _mark;
5763 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5765 }
5766 { // strings
5767 if (p->error_indicator) {
5768 D(p->level--);
5769 return NULL;
5770 }
5771 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5772 expr_ty strings_var;
5773 if (
5774 (strings_var = strings_rule(p)) // strings
5775 )
5776 {
5777 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5778 _res = strings_var;
5779 goto done;
5780 }
5781 p->mark = _mark;
5782 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5784 }
5785 { // 'None'
5786 if (p->error_indicator) {
5787 D(p->level--);
5788 return NULL;
5789 }
5790 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5791 Token * _keyword;
5792 if (
5793 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5794 )
5795 {
5796 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5797 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5798 if (_token == NULL) {
5799 D(p->level--);
5800 return NULL;
5801 }
5802 int _end_lineno = _token->end_lineno;
5803 UNUSED(_end_lineno); // Only used by EXTRA macro
5804 int _end_col_offset = _token->end_col_offset;
5805 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005806 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005807 if (_res == NULL && PyErr_Occurred()) {
5808 p->error_indicator = 1;
5809 D(p->level--);
5810 return NULL;
5811 }
5812 goto done;
5813 }
5814 p->mark = _mark;
5815 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5817 }
5818 { // 'True'
5819 if (p->error_indicator) {
5820 D(p->level--);
5821 return NULL;
5822 }
5823 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5824 Token * _keyword;
5825 if (
5826 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5827 )
5828 {
5829 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5831 if (_token == NULL) {
5832 D(p->level--);
5833 return NULL;
5834 }
5835 int _end_lineno = _token->end_lineno;
5836 UNUSED(_end_lineno); // Only used by EXTRA macro
5837 int _end_col_offset = _token->end_col_offset;
5838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005839 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005840 if (_res == NULL && PyErr_Occurred()) {
5841 p->error_indicator = 1;
5842 D(p->level--);
5843 return NULL;
5844 }
5845 goto done;
5846 }
5847 p->mark = _mark;
5848 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5850 }
5851 { // 'False'
5852 if (p->error_indicator) {
5853 D(p->level--);
5854 return NULL;
5855 }
5856 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5857 Token * _keyword;
5858 if (
5859 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5860 )
5861 {
5862 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5863 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5864 if (_token == NULL) {
5865 D(p->level--);
5866 return NULL;
5867 }
5868 int _end_lineno = _token->end_lineno;
5869 UNUSED(_end_lineno); // Only used by EXTRA macro
5870 int _end_col_offset = _token->end_col_offset;
5871 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005872 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005873 if (_res == NULL && PyErr_Occurred()) {
5874 p->error_indicator = 1;
5875 D(p->level--);
5876 return NULL;
5877 }
5878 goto done;
5879 }
5880 p->mark = _mark;
5881 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5883 }
5884 _res = NULL;
5885 done:
5886 D(p->level--);
5887 return _res;
5888}
5889
5890// signed_number: NUMBER | '-' NUMBER
5891static expr_ty
5892signed_number_rule(Parser *p)
5893{
5894 D(p->level++);
5895 if (p->error_indicator) {
5896 D(p->level--);
5897 return NULL;
5898 }
5899 expr_ty _res = NULL;
5900 int _mark = p->mark;
5901 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5902 p->error_indicator = 1;
5903 D(p->level--);
5904 return NULL;
5905 }
5906 int _start_lineno = p->tokens[_mark]->lineno;
5907 UNUSED(_start_lineno); // Only used by EXTRA macro
5908 int _start_col_offset = p->tokens[_mark]->col_offset;
5909 UNUSED(_start_col_offset); // Only used by EXTRA macro
5910 { // NUMBER
5911 if (p->error_indicator) {
5912 D(p->level--);
5913 return NULL;
5914 }
5915 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5916 expr_ty number_var;
5917 if (
5918 (number_var = _PyPegen_number_token(p)) // NUMBER
5919 )
5920 {
5921 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5922 _res = number_var;
5923 goto done;
5924 }
5925 p->mark = _mark;
5926 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
5928 }
5929 { // '-' NUMBER
5930 if (p->error_indicator) {
5931 D(p->level--);
5932 return NULL;
5933 }
5934 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5935 Token * _literal;
5936 expr_ty number;
5937 if (
5938 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5939 &&
5940 (number = _PyPegen_number_token(p)) // NUMBER
5941 )
5942 {
5943 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5945 if (_token == NULL) {
5946 D(p->level--);
5947 return NULL;
5948 }
5949 int _end_lineno = _token->end_lineno;
5950 UNUSED(_end_lineno); // Only used by EXTRA macro
5951 int _end_col_offset = _token->end_col_offset;
5952 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005953 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005954 if (_res == NULL && PyErr_Occurred()) {
5955 p->error_indicator = 1;
5956 D(p->level--);
5957 return NULL;
5958 }
5959 goto done;
5960 }
5961 p->mark = _mark;
5962 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
5964 }
5965 _res = NULL;
5966 done:
5967 D(p->level--);
5968 return _res;
5969}
5970
5971// capture_pattern: !"_" NAME !('.' | '(' | '=')
5972static expr_ty
5973capture_pattern_rule(Parser *p)
5974{
5975 D(p->level++);
5976 if (p->error_indicator) {
5977 D(p->level--);
5978 return NULL;
5979 }
5980 expr_ty _res = NULL;
5981 int _mark = p->mark;
5982 { // !"_" NAME !('.' | '(' | '=')
5983 if (p->error_indicator) {
5984 D(p->level--);
5985 return NULL;
5986 }
5987 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5988 expr_ty name;
5989 if (
5990 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
5991 &&
5992 (name = _PyPegen_name_token(p)) // NAME
5993 &&
5994 _PyPegen_lookahead(0, _tmp_54_rule, p)
5995 )
5996 {
5997 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5998 _res = _PyPegen_set_expr_context ( p , name , Store );
5999 if (_res == NULL && PyErr_Occurred()) {
6000 p->error_indicator = 1;
6001 D(p->level--);
6002 return NULL;
6003 }
6004 goto done;
6005 }
6006 p->mark = _mark;
6007 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6009 }
6010 _res = NULL;
6011 done:
6012 D(p->level--);
6013 return _res;
6014}
6015
6016// wildcard_pattern: "_"
6017static expr_ty
6018wildcard_pattern_rule(Parser *p)
6019{
6020 D(p->level++);
6021 if (p->error_indicator) {
6022 D(p->level--);
6023 return NULL;
6024 }
6025 expr_ty _res = NULL;
6026 int _mark = p->mark;
6027 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6028 p->error_indicator = 1;
6029 D(p->level--);
6030 return NULL;
6031 }
6032 int _start_lineno = p->tokens[_mark]->lineno;
6033 UNUSED(_start_lineno); // Only used by EXTRA macro
6034 int _start_col_offset = p->tokens[_mark]->col_offset;
6035 UNUSED(_start_col_offset); // Only used by EXTRA macro
6036 { // "_"
6037 if (p->error_indicator) {
6038 D(p->level--);
6039 return NULL;
6040 }
6041 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6042 expr_ty _keyword;
6043 if (
6044 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6045 )
6046 {
6047 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6048 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6049 if (_token == NULL) {
6050 D(p->level--);
6051 return NULL;
6052 }
6053 int _end_lineno = _token->end_lineno;
6054 UNUSED(_end_lineno); // Only used by EXTRA macro
6055 int _end_col_offset = _token->end_col_offset;
6056 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006057 _res = _PyAST_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006058 if (_res == NULL && PyErr_Occurred()) {
6059 p->error_indicator = 1;
6060 D(p->level--);
6061 return NULL;
6062 }
6063 goto done;
6064 }
6065 p->mark = _mark;
6066 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6068 }
6069 _res = NULL;
6070 done:
6071 D(p->level--);
6072 return _res;
6073}
6074
6075// value_pattern: attr !('.' | '(' | '=')
6076static expr_ty
6077value_pattern_rule(Parser *p)
6078{
6079 D(p->level++);
6080 if (p->error_indicator) {
6081 D(p->level--);
6082 return NULL;
6083 }
6084 expr_ty _res = NULL;
6085 int _mark = p->mark;
6086 { // attr !('.' | '(' | '=')
6087 if (p->error_indicator) {
6088 D(p->level--);
6089 return NULL;
6090 }
6091 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6092 expr_ty attr;
6093 if (
6094 (attr = attr_rule(p)) // attr
6095 &&
6096 _PyPegen_lookahead(0, _tmp_55_rule, p)
6097 )
6098 {
6099 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6100 _res = attr;
6101 if (_res == NULL && PyErr_Occurred()) {
6102 p->error_indicator = 1;
6103 D(p->level--);
6104 return NULL;
6105 }
6106 goto done;
6107 }
6108 p->mark = _mark;
6109 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6111 }
6112 _res = NULL;
6113 done:
6114 D(p->level--);
6115 return _res;
6116}
6117
6118// Left-recursive
6119// attr: name_or_attr '.' NAME
6120static expr_ty attr_raw(Parser *);
6121static expr_ty
6122attr_rule(Parser *p)
6123{
6124 D(p->level++);
6125 expr_ty _res = NULL;
6126 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6127 D(p->level--);
6128 return _res;
6129 }
6130 int _mark = p->mark;
6131 int _resmark = p->mark;
6132 while (1) {
6133 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6134 if (tmpvar_1) {
6135 D(p->level--);
6136 return _res;
6137 }
6138 p->mark = _mark;
6139 void *_raw = attr_raw(p);
6140 if (p->error_indicator)
6141 return NULL;
6142 if (_raw == NULL || p->mark <= _resmark)
6143 break;
6144 _resmark = p->mark;
6145 _res = _raw;
6146 }
6147 p->mark = _resmark;
6148 D(p->level--);
6149 return _res;
6150}
6151static expr_ty
6152attr_raw(Parser *p)
6153{
6154 D(p->level++);
6155 if (p->error_indicator) {
6156 D(p->level--);
6157 return NULL;
6158 }
6159 expr_ty _res = NULL;
6160 int _mark = p->mark;
6161 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6162 p->error_indicator = 1;
6163 D(p->level--);
6164 return NULL;
6165 }
6166 int _start_lineno = p->tokens[_mark]->lineno;
6167 UNUSED(_start_lineno); // Only used by EXTRA macro
6168 int _start_col_offset = p->tokens[_mark]->col_offset;
6169 UNUSED(_start_col_offset); // Only used by EXTRA macro
6170 { // name_or_attr '.' NAME
6171 if (p->error_indicator) {
6172 D(p->level--);
6173 return NULL;
6174 }
6175 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6176 Token * _literal;
6177 expr_ty attr;
6178 expr_ty value;
6179 if (
6180 (value = name_or_attr_rule(p)) // name_or_attr
6181 &&
6182 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6183 &&
6184 (attr = _PyPegen_name_token(p)) // NAME
6185 )
6186 {
6187 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6189 if (_token == NULL) {
6190 D(p->level--);
6191 return NULL;
6192 }
6193 int _end_lineno = _token->end_lineno;
6194 UNUSED(_end_lineno); // Only used by EXTRA macro
6195 int _end_col_offset = _token->end_col_offset;
6196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006197 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006198 if (_res == NULL && PyErr_Occurred()) {
6199 p->error_indicator = 1;
6200 D(p->level--);
6201 return NULL;
6202 }
6203 goto done;
6204 }
6205 p->mark = _mark;
6206 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6208 }
6209 _res = NULL;
6210 done:
6211 D(p->level--);
6212 return _res;
6213}
6214
6215// Left-recursive
6216// name_or_attr: attr | NAME
6217static expr_ty
6218name_or_attr_rule(Parser *p)
6219{
6220 D(p->level++);
6221 if (p->error_indicator) {
6222 D(p->level--);
6223 return NULL;
6224 }
6225 expr_ty _res = NULL;
6226 int _mark = p->mark;
6227 { // attr
6228 if (p->error_indicator) {
6229 D(p->level--);
6230 return NULL;
6231 }
6232 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6233 expr_ty attr_var;
6234 if (
6235 (attr_var = attr_rule(p)) // attr
6236 )
6237 {
6238 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6239 _res = attr_var;
6240 goto done;
6241 }
6242 p->mark = _mark;
6243 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6245 }
6246 { // NAME
6247 if (p->error_indicator) {
6248 D(p->level--);
6249 return NULL;
6250 }
6251 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6252 expr_ty name_var;
6253 if (
6254 (name_var = _PyPegen_name_token(p)) // NAME
6255 )
6256 {
6257 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6258 _res = name_var;
6259 goto done;
6260 }
6261 p->mark = _mark;
6262 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6264 }
6265 _res = NULL;
6266 done:
6267 D(p->level--);
6268 return _res;
6269}
6270
6271// group_pattern: '(' pattern ')'
6272static expr_ty
6273group_pattern_rule(Parser *p)
6274{
6275 D(p->level++);
6276 if (p->error_indicator) {
6277 D(p->level--);
6278 return NULL;
6279 }
6280 expr_ty _res = NULL;
6281 int _mark = p->mark;
6282 { // '(' pattern ')'
6283 if (p->error_indicator) {
6284 D(p->level--);
6285 return NULL;
6286 }
6287 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6288 Token * _literal;
6289 Token * _literal_1;
6290 expr_ty pattern;
6291 if (
6292 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6293 &&
6294 (pattern = pattern_rule(p)) // pattern
6295 &&
6296 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6297 )
6298 {
6299 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6300 _res = pattern;
6301 if (_res == NULL && PyErr_Occurred()) {
6302 p->error_indicator = 1;
6303 D(p->level--);
6304 return NULL;
6305 }
6306 goto done;
6307 }
6308 p->mark = _mark;
6309 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6311 }
6312 _res = NULL;
6313 done:
6314 D(p->level--);
6315 return _res;
6316}
6317
6318// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6319static expr_ty
6320sequence_pattern_rule(Parser *p)
6321{
6322 D(p->level++);
6323 if (p->error_indicator) {
6324 D(p->level--);
6325 return NULL;
6326 }
6327 expr_ty _res = NULL;
6328 int _mark = p->mark;
6329 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6330 p->error_indicator = 1;
6331 D(p->level--);
6332 return NULL;
6333 }
6334 int _start_lineno = p->tokens[_mark]->lineno;
6335 UNUSED(_start_lineno); // Only used by EXTRA macro
6336 int _start_col_offset = p->tokens[_mark]->col_offset;
6337 UNUSED(_start_col_offset); // Only used by EXTRA macro
6338 { // '[' maybe_sequence_pattern? ']'
6339 if (p->error_indicator) {
6340 D(p->level--);
6341 return NULL;
6342 }
6343 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6344 Token * _literal;
6345 Token * _literal_1;
6346 void *values;
6347 if (
6348 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6349 &&
6350 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6351 &&
6352 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6353 )
6354 {
6355 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6357 if (_token == NULL) {
6358 D(p->level--);
6359 return NULL;
6360 }
6361 int _end_lineno = _token->end_lineno;
6362 UNUSED(_end_lineno); // Only used by EXTRA macro
6363 int _end_col_offset = _token->end_col_offset;
6364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006365 _res = _PyAST_List ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006366 if (_res == NULL && PyErr_Occurred()) {
6367 p->error_indicator = 1;
6368 D(p->level--);
6369 return NULL;
6370 }
6371 goto done;
6372 }
6373 p->mark = _mark;
6374 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6376 }
6377 { // '(' open_sequence_pattern? ')'
6378 if (p->error_indicator) {
6379 D(p->level--);
6380 return NULL;
6381 }
6382 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6383 Token * _literal;
6384 Token * _literal_1;
6385 void *values;
6386 if (
6387 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6388 &&
6389 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6390 &&
6391 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6392 )
6393 {
6394 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6396 if (_token == NULL) {
6397 D(p->level--);
6398 return NULL;
6399 }
6400 int _end_lineno = _token->end_lineno;
6401 UNUSED(_end_lineno); // Only used by EXTRA macro
6402 int _end_col_offset = _token->end_col_offset;
6403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006404 _res = _PyAST_Tuple ( values , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006405 if (_res == NULL && PyErr_Occurred()) {
6406 p->error_indicator = 1;
6407 D(p->level--);
6408 return NULL;
6409 }
6410 goto done;
6411 }
6412 p->mark = _mark;
6413 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6415 }
6416 _res = NULL;
6417 done:
6418 D(p->level--);
6419 return _res;
6420}
6421
6422// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6423static asdl_seq*
6424open_sequence_pattern_rule(Parser *p)
6425{
6426 D(p->level++);
6427 if (p->error_indicator) {
6428 D(p->level--);
6429 return NULL;
6430 }
6431 asdl_seq* _res = NULL;
6432 int _mark = p->mark;
6433 { // maybe_star_pattern ',' maybe_sequence_pattern?
6434 if (p->error_indicator) {
6435 D(p->level--);
6436 return NULL;
6437 }
6438 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6439 Token * _literal;
6440 expr_ty value;
6441 void *values;
6442 if (
6443 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6444 &&
6445 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6446 &&
6447 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6448 )
6449 {
6450 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6451 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6452 if (_res == NULL && PyErr_Occurred()) {
6453 p->error_indicator = 1;
6454 D(p->level--);
6455 return NULL;
6456 }
6457 goto done;
6458 }
6459 p->mark = _mark;
6460 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6462 }
6463 _res = NULL;
6464 done:
6465 D(p->level--);
6466 return _res;
6467}
6468
6469// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6470static asdl_seq*
6471maybe_sequence_pattern_rule(Parser *p)
6472{
6473 D(p->level++);
6474 if (p->error_indicator) {
6475 D(p->level--);
6476 return NULL;
6477 }
6478 asdl_seq* _res = NULL;
6479 int _mark = p->mark;
6480 { // ','.maybe_star_pattern+ ','?
6481 if (p->error_indicator) {
6482 D(p->level--);
6483 return NULL;
6484 }
6485 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6486 void *_opt_var;
6487 UNUSED(_opt_var); // Silence compiler warnings
6488 asdl_seq * values;
6489 if (
6490 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6491 &&
6492 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6493 )
6494 {
6495 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6496 _res = values;
6497 if (_res == NULL && PyErr_Occurred()) {
6498 p->error_indicator = 1;
6499 D(p->level--);
6500 return NULL;
6501 }
6502 goto done;
6503 }
6504 p->mark = _mark;
6505 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6507 }
6508 _res = NULL;
6509 done:
6510 D(p->level--);
6511 return _res;
6512}
6513
6514// maybe_star_pattern: star_pattern | pattern
6515static expr_ty
6516maybe_star_pattern_rule(Parser *p)
6517{
6518 D(p->level++);
6519 if (p->error_indicator) {
6520 D(p->level--);
6521 return NULL;
6522 }
6523 expr_ty _res = NULL;
6524 int _mark = p->mark;
6525 { // star_pattern
6526 if (p->error_indicator) {
6527 D(p->level--);
6528 return NULL;
6529 }
6530 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6531 expr_ty star_pattern_var;
6532 if (
6533 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6534 )
6535 {
6536 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6537 _res = star_pattern_var;
6538 goto done;
6539 }
6540 p->mark = _mark;
6541 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6543 }
6544 { // pattern
6545 if (p->error_indicator) {
6546 D(p->level--);
6547 return NULL;
6548 }
6549 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6550 expr_ty pattern_var;
6551 if (
6552 (pattern_var = pattern_rule(p)) // pattern
6553 )
6554 {
6555 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6556 _res = pattern_var;
6557 goto done;
6558 }
6559 p->mark = _mark;
6560 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6562 }
6563 _res = NULL;
6564 done:
6565 D(p->level--);
6566 return _res;
6567}
6568
6569// star_pattern: '*' (capture_pattern | wildcard_pattern)
6570static expr_ty
6571star_pattern_rule(Parser *p)
6572{
6573 D(p->level++);
6574 if (p->error_indicator) {
6575 D(p->level--);
6576 return NULL;
6577 }
6578 expr_ty _res = NULL;
6579 int _mark = p->mark;
6580 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6581 p->error_indicator = 1;
6582 D(p->level--);
6583 return NULL;
6584 }
6585 int _start_lineno = p->tokens[_mark]->lineno;
6586 UNUSED(_start_lineno); // Only used by EXTRA macro
6587 int _start_col_offset = p->tokens[_mark]->col_offset;
6588 UNUSED(_start_col_offset); // Only used by EXTRA macro
6589 { // '*' (capture_pattern | wildcard_pattern)
6590 if (p->error_indicator) {
6591 D(p->level--);
6592 return NULL;
6593 }
6594 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6595 Token * _literal;
6596 void *value;
6597 if (
6598 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6599 &&
6600 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6601 )
6602 {
6603 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6604 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6605 if (_token == NULL) {
6606 D(p->level--);
6607 return NULL;
6608 }
6609 int _end_lineno = _token->end_lineno;
6610 UNUSED(_end_lineno); // Only used by EXTRA macro
6611 int _end_col_offset = _token->end_col_offset;
6612 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006613 _res = _PyAST_Starred ( value , Store , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006614 if (_res == NULL && PyErr_Occurred()) {
6615 p->error_indicator = 1;
6616 D(p->level--);
6617 return NULL;
6618 }
6619 goto done;
6620 }
6621 p->mark = _mark;
6622 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6624 }
6625 _res = NULL;
6626 done:
6627 D(p->level--);
6628 return _res;
6629}
6630
6631// mapping_pattern: '{' items_pattern? '}'
6632static expr_ty
6633mapping_pattern_rule(Parser *p)
6634{
6635 D(p->level++);
6636 if (p->error_indicator) {
6637 D(p->level--);
6638 return NULL;
6639 }
6640 expr_ty _res = NULL;
6641 int _mark = p->mark;
6642 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6643 p->error_indicator = 1;
6644 D(p->level--);
6645 return NULL;
6646 }
6647 int _start_lineno = p->tokens[_mark]->lineno;
6648 UNUSED(_start_lineno); // Only used by EXTRA macro
6649 int _start_col_offset = p->tokens[_mark]->col_offset;
6650 UNUSED(_start_col_offset); // Only used by EXTRA macro
6651 { // '{' items_pattern? '}'
6652 if (p->error_indicator) {
6653 D(p->level--);
6654 return NULL;
6655 }
6656 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6657 Token * _literal;
6658 Token * _literal_1;
6659 void *items;
6660 if (
6661 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6662 &&
6663 (items = items_pattern_rule(p), 1) // items_pattern?
6664 &&
6665 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6666 )
6667 {
6668 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6669 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6670 if (_token == NULL) {
6671 D(p->level--);
6672 return NULL;
6673 }
6674 int _end_lineno = _token->end_lineno;
6675 UNUSED(_end_lineno); // Only used by EXTRA macro
6676 int _end_col_offset = _token->end_col_offset;
6677 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006678 _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 -08006679 if (_res == NULL && PyErr_Occurred()) {
6680 p->error_indicator = 1;
6681 D(p->level--);
6682 return NULL;
6683 }
6684 goto done;
6685 }
6686 p->mark = _mark;
6687 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6689 }
6690 _res = NULL;
6691 done:
6692 D(p->level--);
6693 return _res;
6694}
6695
6696// items_pattern: ','.key_value_pattern+ ','?
6697static asdl_seq*
6698items_pattern_rule(Parser *p)
6699{
6700 D(p->level++);
6701 if (p->error_indicator) {
6702 D(p->level--);
6703 return NULL;
6704 }
6705 asdl_seq* _res = NULL;
6706 int _mark = p->mark;
6707 { // ','.key_value_pattern+ ','?
6708 if (p->error_indicator) {
6709 D(p->level--);
6710 return NULL;
6711 }
6712 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6713 void *_opt_var;
6714 UNUSED(_opt_var); // Silence compiler warnings
6715 asdl_seq * items;
6716 if (
6717 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6718 &&
6719 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6720 )
6721 {
6722 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6723 _res = items;
6724 if (_res == NULL && PyErr_Occurred()) {
6725 p->error_indicator = 1;
6726 D(p->level--);
6727 return NULL;
6728 }
6729 goto done;
6730 }
6731 p->mark = _mark;
6732 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6734 }
6735 _res = NULL;
6736 done:
6737 D(p->level--);
6738 return _res;
6739}
6740
6741// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6742static KeyValuePair*
6743key_value_pattern_rule(Parser *p)
6744{
6745 D(p->level++);
6746 if (p->error_indicator) {
6747 D(p->level--);
6748 return NULL;
6749 }
6750 KeyValuePair* _res = NULL;
6751 int _mark = p->mark;
6752 { // (literal_pattern | value_pattern) ':' pattern
6753 if (p->error_indicator) {
6754 D(p->level--);
6755 return NULL;
6756 }
6757 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6758 Token * _literal;
6759 void *key;
6760 expr_ty value;
6761 if (
6762 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6763 &&
6764 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6765 &&
6766 (value = pattern_rule(p)) // pattern
6767 )
6768 {
6769 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6770 _res = _PyPegen_key_value_pair ( p , key , value );
6771 if (_res == NULL && PyErr_Occurred()) {
6772 p->error_indicator = 1;
6773 D(p->level--);
6774 return NULL;
6775 }
6776 goto done;
6777 }
6778 p->mark = _mark;
6779 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6781 }
6782 { // double_star_pattern
6783 if (p->error_indicator) {
6784 D(p->level--);
6785 return NULL;
6786 }
6787 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6788 KeyValuePair* double_star_pattern_var;
6789 if (
6790 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6791 )
6792 {
6793 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6794 _res = double_star_pattern_var;
6795 goto done;
6796 }
6797 p->mark = _mark;
6798 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6800 }
6801 _res = NULL;
6802 done:
6803 D(p->level--);
6804 return _res;
6805}
6806
6807// double_star_pattern: '**' capture_pattern
6808static KeyValuePair*
6809double_star_pattern_rule(Parser *p)
6810{
6811 D(p->level++);
6812 if (p->error_indicator) {
6813 D(p->level--);
6814 return NULL;
6815 }
6816 KeyValuePair* _res = NULL;
6817 int _mark = p->mark;
6818 { // '**' capture_pattern
6819 if (p->error_indicator) {
6820 D(p->level--);
6821 return NULL;
6822 }
6823 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6824 Token * _literal;
6825 expr_ty value;
6826 if (
6827 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6828 &&
6829 (value = capture_pattern_rule(p)) // capture_pattern
6830 )
6831 {
6832 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6833 _res = _PyPegen_key_value_pair ( p , NULL , value );
6834 if (_res == NULL && PyErr_Occurred()) {
6835 p->error_indicator = 1;
6836 D(p->level--);
6837 return NULL;
6838 }
6839 goto done;
6840 }
6841 p->mark = _mark;
6842 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6844 }
6845 _res = NULL;
6846 done:
6847 D(p->level--);
6848 return _res;
6849}
6850
6851// class_pattern:
6852// | name_or_attr '(' ')'
6853// | name_or_attr '(' positional_patterns ','? ')'
6854// | name_or_attr '(' keyword_patterns ','? ')'
6855// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6856static expr_ty
6857class_pattern_rule(Parser *p)
6858{
6859 D(p->level++);
6860 if (p->error_indicator) {
6861 D(p->level--);
6862 return NULL;
6863 }
6864 expr_ty _res = NULL;
6865 int _mark = p->mark;
6866 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6867 p->error_indicator = 1;
6868 D(p->level--);
6869 return NULL;
6870 }
6871 int _start_lineno = p->tokens[_mark]->lineno;
6872 UNUSED(_start_lineno); // Only used by EXTRA macro
6873 int _start_col_offset = p->tokens[_mark]->col_offset;
6874 UNUSED(_start_col_offset); // Only used by EXTRA macro
6875 { // name_or_attr '(' ')'
6876 if (p->error_indicator) {
6877 D(p->level--);
6878 return NULL;
6879 }
6880 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6881 Token * _literal;
6882 Token * _literal_1;
6883 expr_ty func;
6884 if (
6885 (func = name_or_attr_rule(p)) // name_or_attr
6886 &&
6887 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6888 &&
6889 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6890 )
6891 {
6892 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6893 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6894 if (_token == NULL) {
6895 D(p->level--);
6896 return NULL;
6897 }
6898 int _end_lineno = _token->end_lineno;
6899 UNUSED(_end_lineno); // Only used by EXTRA macro
6900 int _end_col_offset = _token->end_col_offset;
6901 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006902 _res = _PyAST_Call ( func , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006903 if (_res == NULL && PyErr_Occurred()) {
6904 p->error_indicator = 1;
6905 D(p->level--);
6906 return NULL;
6907 }
6908 goto done;
6909 }
6910 p->mark = _mark;
6911 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
6913 }
6914 { // name_or_attr '(' positional_patterns ','? ')'
6915 if (p->error_indicator) {
6916 D(p->level--);
6917 return NULL;
6918 }
6919 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6920 Token * _literal;
6921 Token * _literal_1;
6922 void *_opt_var;
6923 UNUSED(_opt_var); // Silence compiler warnings
6924 asdl_expr_seq* args;
6925 expr_ty func;
6926 if (
6927 (func = name_or_attr_rule(p)) // name_or_attr
6928 &&
6929 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6930 &&
6931 (args = positional_patterns_rule(p)) // positional_patterns
6932 &&
6933 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6934 &&
6935 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6936 )
6937 {
6938 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6939 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6940 if (_token == NULL) {
6941 D(p->level--);
6942 return NULL;
6943 }
6944 int _end_lineno = _token->end_lineno;
6945 UNUSED(_end_lineno); // Only used by EXTRA macro
6946 int _end_col_offset = _token->end_col_offset;
6947 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006948 _res = _PyAST_Call ( func , args , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006949 if (_res == NULL && PyErr_Occurred()) {
6950 p->error_indicator = 1;
6951 D(p->level--);
6952 return NULL;
6953 }
6954 goto done;
6955 }
6956 p->mark = _mark;
6957 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6959 }
6960 { // name_or_attr '(' keyword_patterns ','? ')'
6961 if (p->error_indicator) {
6962 D(p->level--);
6963 return NULL;
6964 }
6965 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6966 Token * _literal;
6967 Token * _literal_1;
6968 void *_opt_var;
6969 UNUSED(_opt_var); // Silence compiler warnings
6970 expr_ty func;
6971 asdl_keyword_seq* keywords;
6972 if (
6973 (func = name_or_attr_rule(p)) // name_or_attr
6974 &&
6975 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6976 &&
6977 (keywords = keyword_patterns_rule(p)) // keyword_patterns
6978 &&
6979 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6980 &&
6981 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6982 )
6983 {
6984 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6986 if (_token == NULL) {
6987 D(p->level--);
6988 return NULL;
6989 }
6990 int _end_lineno = _token->end_lineno;
6991 UNUSED(_end_lineno); // Only used by EXTRA macro
6992 int _end_col_offset = _token->end_col_offset;
6993 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006994 _res = _PyAST_Call ( func , NULL , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006995 if (_res == NULL && PyErr_Occurred()) {
6996 p->error_indicator = 1;
6997 D(p->level--);
6998 return NULL;
6999 }
7000 goto done;
7001 }
7002 p->mark = _mark;
7003 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7005 }
7006 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7007 if (p->error_indicator) {
7008 D(p->level--);
7009 return NULL;
7010 }
7011 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7012 Token * _literal;
7013 Token * _literal_1;
7014 Token * _literal_2;
7015 void *_opt_var;
7016 UNUSED(_opt_var); // Silence compiler warnings
7017 asdl_expr_seq* args;
7018 expr_ty func;
7019 asdl_keyword_seq* keywords;
7020 if (
7021 (func = name_or_attr_rule(p)) // name_or_attr
7022 &&
7023 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7024 &&
7025 (args = positional_patterns_rule(p)) // positional_patterns
7026 &&
7027 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7028 &&
7029 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7030 &&
7031 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7032 &&
7033 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7034 )
7035 {
7036 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7037 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7038 if (_token == NULL) {
7039 D(p->level--);
7040 return NULL;
7041 }
7042 int _end_lineno = _token->end_lineno;
7043 UNUSED(_end_lineno); // Only used by EXTRA macro
7044 int _end_col_offset = _token->end_col_offset;
7045 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007046 _res = _PyAST_Call ( func , args , keywords , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007047 if (_res == NULL && PyErr_Occurred()) {
7048 p->error_indicator = 1;
7049 D(p->level--);
7050 return NULL;
7051 }
7052 goto done;
7053 }
7054 p->mark = _mark;
7055 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7057 }
7058 _res = NULL;
7059 done:
7060 D(p->level--);
7061 return _res;
7062}
7063
7064// positional_patterns: ','.pattern+
7065static asdl_expr_seq*
7066positional_patterns_rule(Parser *p)
7067{
7068 D(p->level++);
7069 if (p->error_indicator) {
7070 D(p->level--);
7071 return NULL;
7072 }
7073 asdl_expr_seq* _res = NULL;
7074 int _mark = p->mark;
7075 { // ','.pattern+
7076 if (p->error_indicator) {
7077 D(p->level--);
7078 return NULL;
7079 }
7080 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7081 asdl_expr_seq* args;
7082 if (
7083 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
7084 )
7085 {
7086 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
7087 _res = args;
7088 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 positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7098 }
7099 _res = NULL;
7100 done:
7101 D(p->level--);
7102 return _res;
7103}
7104
7105// keyword_patterns: ','.keyword_pattern+
7106static asdl_keyword_seq*
7107keyword_patterns_rule(Parser *p)
7108{
7109 D(p->level++);
7110 if (p->error_indicator) {
7111 D(p->level--);
7112 return NULL;
7113 }
7114 asdl_keyword_seq* _res = NULL;
7115 int _mark = p->mark;
7116 { // ','.keyword_pattern+
7117 if (p->error_indicator) {
7118 D(p->level--);
7119 return NULL;
7120 }
7121 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7122 asdl_keyword_seq* keywords;
7123 if (
7124 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7125 )
7126 {
7127 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7128 _res = keywords;
7129 if (_res == NULL && PyErr_Occurred()) {
7130 p->error_indicator = 1;
7131 D(p->level--);
7132 return NULL;
7133 }
7134 goto done;
7135 }
7136 p->mark = _mark;
7137 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7139 }
7140 _res = NULL;
7141 done:
7142 D(p->level--);
7143 return _res;
7144}
7145
7146// keyword_pattern: NAME '=' pattern
7147static keyword_ty
7148keyword_pattern_rule(Parser *p)
7149{
7150 D(p->level++);
7151 if (p->error_indicator) {
7152 D(p->level--);
7153 return NULL;
7154 }
7155 keyword_ty _res = NULL;
7156 int _mark = p->mark;
7157 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7158 p->error_indicator = 1;
7159 D(p->level--);
7160 return NULL;
7161 }
7162 int _start_lineno = p->tokens[_mark]->lineno;
7163 UNUSED(_start_lineno); // Only used by EXTRA macro
7164 int _start_col_offset = p->tokens[_mark]->col_offset;
7165 UNUSED(_start_col_offset); // Only used by EXTRA macro
7166 { // NAME '=' pattern
7167 if (p->error_indicator) {
7168 D(p->level--);
7169 return NULL;
7170 }
7171 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7172 Token * _literal;
7173 expr_ty arg;
7174 expr_ty value;
7175 if (
7176 (arg = _PyPegen_name_token(p)) // NAME
7177 &&
7178 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7179 &&
7180 (value = pattern_rule(p)) // pattern
7181 )
7182 {
7183 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7184 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7185 if (_token == NULL) {
7186 D(p->level--);
7187 return NULL;
7188 }
7189 int _end_lineno = _token->end_lineno;
7190 UNUSED(_end_lineno); // Only used by EXTRA macro
7191 int _end_col_offset = _token->end_col_offset;
7192 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007193 _res = _PyAST_keyword ( arg -> v . Name . id , value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007194 if (_res == NULL && PyErr_Occurred()) {
7195 p->error_indicator = 1;
7196 D(p->level--);
7197 return NULL;
7198 }
7199 goto done;
7200 }
7201 p->mark = _mark;
7202 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7204 }
7205 _res = NULL;
7206 done:
7207 D(p->level--);
7208 return _res;
7209}
7210
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007211// return_stmt: 'return' star_expressions?
7212static stmt_ty
7213return_stmt_rule(Parser *p)
7214{
7215 D(p->level++);
7216 if (p->error_indicator) {
7217 D(p->level--);
7218 return NULL;
7219 }
7220 stmt_ty _res = NULL;
7221 int _mark = p->mark;
7222 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7223 p->error_indicator = 1;
7224 D(p->level--);
7225 return NULL;
7226 }
7227 int _start_lineno = p->tokens[_mark]->lineno;
7228 UNUSED(_start_lineno); // Only used by EXTRA macro
7229 int _start_col_offset = p->tokens[_mark]->col_offset;
7230 UNUSED(_start_col_offset); // Only used by EXTRA macro
7231 { // 'return' star_expressions?
7232 if (p->error_indicator) {
7233 D(p->level--);
7234 return NULL;
7235 }
7236 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7237 Token * _keyword;
7238 void *a;
7239 if (
7240 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7241 &&
7242 (a = star_expressions_rule(p), 1) // star_expressions?
7243 )
7244 {
7245 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7247 if (_token == NULL) {
7248 D(p->level--);
7249 return NULL;
7250 }
7251 int _end_lineno = _token->end_lineno;
7252 UNUSED(_end_lineno); // Only used by EXTRA macro
7253 int _end_col_offset = _token->end_col_offset;
7254 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007255 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007256 if (_res == NULL && PyErr_Occurred()) {
7257 p->error_indicator = 1;
7258 D(p->level--);
7259 return NULL;
7260 }
7261 goto done;
7262 }
7263 p->mark = _mark;
7264 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7266 }
7267 _res = NULL;
7268 done:
7269 D(p->level--);
7270 return _res;
7271}
7272
7273// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7274static stmt_ty
7275raise_stmt_rule(Parser *p)
7276{
7277 D(p->level++);
7278 if (p->error_indicator) {
7279 D(p->level--);
7280 return NULL;
7281 }
7282 stmt_ty _res = NULL;
7283 int _mark = p->mark;
7284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7285 p->error_indicator = 1;
7286 D(p->level--);
7287 return NULL;
7288 }
7289 int _start_lineno = p->tokens[_mark]->lineno;
7290 UNUSED(_start_lineno); // Only used by EXTRA macro
7291 int _start_col_offset = p->tokens[_mark]->col_offset;
7292 UNUSED(_start_col_offset); // Only used by EXTRA macro
7293 { // 'raise' expression ['from' expression]
7294 if (p->error_indicator) {
7295 D(p->level--);
7296 return NULL;
7297 }
7298 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7299 Token * _keyword;
7300 expr_ty a;
7301 void *b;
7302 if (
7303 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7304 &&
7305 (a = expression_rule(p)) // expression
7306 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007307 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007308 )
7309 {
7310 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7312 if (_token == NULL) {
7313 D(p->level--);
7314 return NULL;
7315 }
7316 int _end_lineno = _token->end_lineno;
7317 UNUSED(_end_lineno); // Only used by EXTRA macro
7318 int _end_col_offset = _token->end_col_offset;
7319 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007320 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007321 if (_res == NULL && PyErr_Occurred()) {
7322 p->error_indicator = 1;
7323 D(p->level--);
7324 return NULL;
7325 }
7326 goto done;
7327 }
7328 p->mark = _mark;
7329 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7331 }
7332 { // 'raise'
7333 if (p->error_indicator) {
7334 D(p->level--);
7335 return NULL;
7336 }
7337 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7338 Token * _keyword;
7339 if (
7340 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7341 )
7342 {
7343 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7344 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7345 if (_token == NULL) {
7346 D(p->level--);
7347 return NULL;
7348 }
7349 int _end_lineno = _token->end_lineno;
7350 UNUSED(_end_lineno); // Only used by EXTRA macro
7351 int _end_col_offset = _token->end_col_offset;
7352 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007353 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007354 if (_res == NULL && PyErr_Occurred()) {
7355 p->error_indicator = 1;
7356 D(p->level--);
7357 return NULL;
7358 }
7359 goto done;
7360 }
7361 p->mark = _mark;
7362 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7364 }
7365 _res = NULL;
7366 done:
7367 D(p->level--);
7368 return _res;
7369}
7370
7371// function_def: decorators function_def_raw | function_def_raw
7372static stmt_ty
7373function_def_rule(Parser *p)
7374{
7375 D(p->level++);
7376 if (p->error_indicator) {
7377 D(p->level--);
7378 return NULL;
7379 }
7380 stmt_ty _res = NULL;
7381 int _mark = p->mark;
7382 { // decorators function_def_raw
7383 if (p->error_indicator) {
7384 D(p->level--);
7385 return NULL;
7386 }
7387 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 +01007388 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007389 stmt_ty f;
7390 if (
7391 (d = decorators_rule(p)) // decorators
7392 &&
7393 (f = function_def_raw_rule(p)) // function_def_raw
7394 )
7395 {
7396 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7397 _res = _PyPegen_function_def_decorators ( p , d , f );
7398 if (_res == NULL && PyErr_Occurred()) {
7399 p->error_indicator = 1;
7400 D(p->level--);
7401 return NULL;
7402 }
7403 goto done;
7404 }
7405 p->mark = _mark;
7406 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7408 }
7409 { // function_def_raw
7410 if (p->error_indicator) {
7411 D(p->level--);
7412 return NULL;
7413 }
7414 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7415 stmt_ty function_def_raw_var;
7416 if (
7417 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7418 )
7419 {
7420 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7421 _res = function_def_raw_var;
7422 goto done;
7423 }
7424 p->mark = _mark;
7425 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7427 }
7428 _res = NULL;
7429 done:
7430 D(p->level--);
7431 return _res;
7432}
7433
7434// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007435// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7436// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007437static stmt_ty
7438function_def_raw_rule(Parser *p)
7439{
7440 D(p->level++);
7441 if (p->error_indicator) {
7442 D(p->level--);
7443 return NULL;
7444 }
7445 stmt_ty _res = NULL;
7446 int _mark = p->mark;
7447 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7448 p->error_indicator = 1;
7449 D(p->level--);
7450 return NULL;
7451 }
7452 int _start_lineno = p->tokens[_mark]->lineno;
7453 UNUSED(_start_lineno); // Only used by EXTRA macro
7454 int _start_col_offset = p->tokens[_mark]->col_offset;
7455 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007456 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007457 if (p->error_indicator) {
7458 D(p->level--);
7459 return NULL;
7460 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007461 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 +01007462 Token * _keyword;
7463 Token * _literal;
7464 Token * _literal_1;
7465 Token * _literal_2;
7466 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007467 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007468 expr_ty n;
7469 void *params;
7470 void *tc;
7471 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007472 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007473 &&
7474 (n = _PyPegen_name_token(p)) // NAME
7475 &&
7476 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7477 &&
7478 (params = params_rule(p), 1) // params?
7479 &&
7480 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7481 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007482 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007483 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007484 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007485 &&
7486 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7487 &&
7488 (b = block_rule(p)) // block
7489 )
7490 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007491 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 +01007492 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7493 if (_token == NULL) {
7494 D(p->level--);
7495 return NULL;
7496 }
7497 int _end_lineno = _token->end_lineno;
7498 UNUSED(_end_lineno); // Only used by EXTRA macro
7499 int _end_col_offset = _token->end_col_offset;
7500 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007501 _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 +01007502 if (_res == NULL && PyErr_Occurred()) {
7503 p->error_indicator = 1;
7504 D(p->level--);
7505 return NULL;
7506 }
7507 goto done;
7508 }
7509 p->mark = _mark;
7510 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007512 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007513 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007514 if (p->error_indicator) {
7515 D(p->level--);
7516 return NULL;
7517 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007518 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 +01007519 Token * _keyword;
7520 Token * _literal;
7521 Token * _literal_1;
7522 Token * _literal_2;
7523 void *a;
7524 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007525 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007526 expr_ty n;
7527 void *params;
7528 void *tc;
7529 if (
7530 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7531 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007532 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007533 &&
7534 (n = _PyPegen_name_token(p)) // NAME
7535 &&
7536 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7537 &&
7538 (params = params_rule(p), 1) // params?
7539 &&
7540 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7541 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007542 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007543 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007544 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007545 &&
7546 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7547 &&
7548 (b = block_rule(p)) // block
7549 )
7550 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007551 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 +01007552 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7553 if (_token == NULL) {
7554 D(p->level--);
7555 return NULL;
7556 }
7557 int _end_lineno = _token->end_lineno;
7558 UNUSED(_end_lineno); // Only used by EXTRA macro
7559 int _end_col_offset = _token->end_col_offset;
7560 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007561 _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 +01007562 if (_res == NULL && PyErr_Occurred()) {
7563 p->error_indicator = 1;
7564 D(p->level--);
7565 return NULL;
7566 }
7567 goto done;
7568 }
7569 p->mark = _mark;
7570 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007572 }
7573 _res = NULL;
7574 done:
7575 D(p->level--);
7576 return _res;
7577}
7578
7579// func_type_comment:
7580// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7581// | invalid_double_type_comments
7582// | TYPE_COMMENT
7583static Token*
7584func_type_comment_rule(Parser *p)
7585{
7586 D(p->level++);
7587 if (p->error_indicator) {
7588 D(p->level--);
7589 return NULL;
7590 }
7591 Token* _res = NULL;
7592 int _mark = p->mark;
7593 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7594 if (p->error_indicator) {
7595 D(p->level--);
7596 return NULL;
7597 }
7598 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7599 Token * newline_var;
7600 Token * t;
7601 if (
7602 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7603 &&
7604 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7605 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007606 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007607 )
7608 {
7609 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7610 _res = t;
7611 if (_res == NULL && PyErr_Occurred()) {
7612 p->error_indicator = 1;
7613 D(p->level--);
7614 return NULL;
7615 }
7616 goto done;
7617 }
7618 p->mark = _mark;
7619 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7621 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007622 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007623 if (p->error_indicator) {
7624 D(p->level--);
7625 return NULL;
7626 }
7627 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7628 void *invalid_double_type_comments_var;
7629 if (
7630 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7631 )
7632 {
7633 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7634 _res = invalid_double_type_comments_var;
7635 goto done;
7636 }
7637 p->mark = _mark;
7638 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7640 }
7641 { // TYPE_COMMENT
7642 if (p->error_indicator) {
7643 D(p->level--);
7644 return NULL;
7645 }
7646 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7647 Token * type_comment_var;
7648 if (
7649 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7650 )
7651 {
7652 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7653 _res = type_comment_var;
7654 goto done;
7655 }
7656 p->mark = _mark;
7657 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7659 }
7660 _res = NULL;
7661 done:
7662 D(p->level--);
7663 return _res;
7664}
7665
7666// params: invalid_parameters | parameters
7667static arguments_ty
7668params_rule(Parser *p)
7669{
7670 D(p->level++);
7671 if (p->error_indicator) {
7672 D(p->level--);
7673 return NULL;
7674 }
7675 arguments_ty _res = NULL;
7676 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007677 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007678 if (p->error_indicator) {
7679 D(p->level--);
7680 return NULL;
7681 }
7682 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7683 void *invalid_parameters_var;
7684 if (
7685 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7686 )
7687 {
7688 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7689 _res = invalid_parameters_var;
7690 goto done;
7691 }
7692 p->mark = _mark;
7693 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7695 }
7696 { // parameters
7697 if (p->error_indicator) {
7698 D(p->level--);
7699 return NULL;
7700 }
7701 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7702 arguments_ty parameters_var;
7703 if (
7704 (parameters_var = parameters_rule(p)) // parameters
7705 )
7706 {
7707 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7708 _res = parameters_var;
7709 goto done;
7710 }
7711 p->mark = _mark;
7712 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7714 }
7715 _res = NULL;
7716 done:
7717 D(p->level--);
7718 return _res;
7719}
7720
7721// parameters:
7722// | slash_no_default param_no_default* param_with_default* star_etc?
7723// | slash_with_default param_with_default* star_etc?
7724// | param_no_default+ param_with_default* star_etc?
7725// | param_with_default+ star_etc?
7726// | star_etc
7727static arguments_ty
7728parameters_rule(Parser *p)
7729{
7730 D(p->level++);
7731 if (p->error_indicator) {
7732 D(p->level--);
7733 return NULL;
7734 }
7735 arguments_ty _res = NULL;
7736 int _mark = p->mark;
7737 { // slash_no_default param_no_default* param_with_default* star_etc?
7738 if (p->error_indicator) {
7739 D(p->level--);
7740 return NULL;
7741 }
7742 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 +01007743 asdl_arg_seq* a;
7744 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007745 asdl_seq * c;
7746 void *d;
7747 if (
7748 (a = slash_no_default_rule(p)) // slash_no_default
7749 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007750 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007751 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007752 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007753 &&
7754 (d = star_etc_rule(p), 1) // star_etc?
7755 )
7756 {
7757 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?"));
7758 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7759 if (_res == NULL && PyErr_Occurred()) {
7760 p->error_indicator = 1;
7761 D(p->level--);
7762 return NULL;
7763 }
7764 goto done;
7765 }
7766 p->mark = _mark;
7767 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7769 }
7770 { // slash_with_default param_with_default* star_etc?
7771 if (p->error_indicator) {
7772 D(p->level--);
7773 return NULL;
7774 }
7775 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7776 SlashWithDefault* a;
7777 asdl_seq * b;
7778 void *c;
7779 if (
7780 (a = slash_with_default_rule(p)) // slash_with_default
7781 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007782 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007783 &&
7784 (c = star_etc_rule(p), 1) // star_etc?
7785 )
7786 {
7787 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7788 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7789 if (_res == NULL && PyErr_Occurred()) {
7790 p->error_indicator = 1;
7791 D(p->level--);
7792 return NULL;
7793 }
7794 goto done;
7795 }
7796 p->mark = _mark;
7797 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7799 }
7800 { // param_no_default+ param_with_default* star_etc?
7801 if (p->error_indicator) {
7802 D(p->level--);
7803 return NULL;
7804 }
7805 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 +01007806 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007807 asdl_seq * b;
7808 void *c;
7809 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007810 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007811 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007812 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007813 &&
7814 (c = star_etc_rule(p), 1) // star_etc?
7815 )
7816 {
7817 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7818 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7819 if (_res == NULL && PyErr_Occurred()) {
7820 p->error_indicator = 1;
7821 D(p->level--);
7822 return NULL;
7823 }
7824 goto done;
7825 }
7826 p->mark = _mark;
7827 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7829 }
7830 { // 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, "param_with_default+ star_etc?"));
7836 asdl_seq * a;
7837 void *b;
7838 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007839 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007840 &&
7841 (b = star_etc_rule(p), 1) // star_etc?
7842 )
7843 {
7844 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7845 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7846 if (_res == NULL && PyErr_Occurred()) {
7847 p->error_indicator = 1;
7848 D(p->level--);
7849 return NULL;
7850 }
7851 goto done;
7852 }
7853 p->mark = _mark;
7854 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7856 }
7857 { // star_etc
7858 if (p->error_indicator) {
7859 D(p->level--);
7860 return NULL;
7861 }
7862 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7863 StarEtc* a;
7864 if (
7865 (a = star_etc_rule(p)) // star_etc
7866 )
7867 {
7868 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7869 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7870 if (_res == NULL && PyErr_Occurred()) {
7871 p->error_indicator = 1;
7872 D(p->level--);
7873 return NULL;
7874 }
7875 goto done;
7876 }
7877 p->mark = _mark;
7878 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7880 }
7881 _res = NULL;
7882 done:
7883 D(p->level--);
7884 return _res;
7885}
7886
7887// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007888static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007889slash_no_default_rule(Parser *p)
7890{
7891 D(p->level++);
7892 if (p->error_indicator) {
7893 D(p->level--);
7894 return NULL;
7895 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007896 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007897 int _mark = p->mark;
7898 { // param_no_default+ '/' ','
7899 if (p->error_indicator) {
7900 D(p->level--);
7901 return NULL;
7902 }
7903 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7904 Token * _literal;
7905 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007906 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007907 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007908 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007909 &&
7910 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7911 &&
7912 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7913 )
7914 {
7915 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7916 _res = a;
7917 if (_res == NULL && PyErr_Occurred()) {
7918 p->error_indicator = 1;
7919 D(p->level--);
7920 return NULL;
7921 }
7922 goto done;
7923 }
7924 p->mark = _mark;
7925 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
7927 }
7928 { // param_no_default+ '/' &')'
7929 if (p->error_indicator) {
7930 D(p->level--);
7931 return NULL;
7932 }
7933 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7934 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007935 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007936 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007937 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007938 &&
7939 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7940 &&
7941 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
7942 )
7943 {
7944 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7945 _res = a;
7946 if (_res == NULL && PyErr_Occurred()) {
7947 p->error_indicator = 1;
7948 D(p->level--);
7949 return NULL;
7950 }
7951 goto done;
7952 }
7953 p->mark = _mark;
7954 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
7956 }
7957 _res = NULL;
7958 done:
7959 D(p->level--);
7960 return _res;
7961}
7962
7963// slash_with_default:
7964// | param_no_default* param_with_default+ '/' ','
7965// | param_no_default* param_with_default+ '/' &')'
7966static SlashWithDefault*
7967slash_with_default_rule(Parser *p)
7968{
7969 D(p->level++);
7970 if (p->error_indicator) {
7971 D(p->level--);
7972 return NULL;
7973 }
7974 SlashWithDefault* _res = NULL;
7975 int _mark = p->mark;
7976 { // param_no_default* param_with_default+ '/' ','
7977 if (p->error_indicator) {
7978 D(p->level--);
7979 return NULL;
7980 }
7981 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
7982 Token * _literal;
7983 Token * _literal_1;
7984 asdl_seq * a;
7985 asdl_seq * b;
7986 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007987 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007988 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007989 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007990 &&
7991 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7992 &&
7993 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7994 )
7995 {
7996 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 +01007997 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007998 if (_res == NULL && PyErr_Occurred()) {
7999 p->error_indicator = 1;
8000 D(p->level--);
8001 return NULL;
8002 }
8003 goto done;
8004 }
8005 p->mark = _mark;
8006 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8008 }
8009 { // param_no_default* param_with_default+ '/' &')'
8010 if (p->error_indicator) {
8011 D(p->level--);
8012 return NULL;
8013 }
8014 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8015 Token * _literal;
8016 asdl_seq * a;
8017 asdl_seq * b;
8018 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008019 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008020 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008021 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008022 &&
8023 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8024 &&
8025 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8026 )
8027 {
8028 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 +01008029 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008030 if (_res == NULL && PyErr_Occurred()) {
8031 p->error_indicator = 1;
8032 D(p->level--);
8033 return NULL;
8034 }
8035 goto done;
8036 }
8037 p->mark = _mark;
8038 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8040 }
8041 _res = NULL;
8042 done:
8043 D(p->level--);
8044 return _res;
8045}
8046
8047// star_etc:
8048// | '*' param_no_default param_maybe_default* kwds?
8049// | '*' ',' param_maybe_default+ kwds?
8050// | kwds
8051// | invalid_star_etc
8052static StarEtc*
8053star_etc_rule(Parser *p)
8054{
8055 D(p->level++);
8056 if (p->error_indicator) {
8057 D(p->level--);
8058 return NULL;
8059 }
8060 StarEtc* _res = NULL;
8061 int _mark = p->mark;
8062 { // '*' param_no_default param_maybe_default* kwds?
8063 if (p->error_indicator) {
8064 D(p->level--);
8065 return NULL;
8066 }
8067 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8068 Token * _literal;
8069 arg_ty a;
8070 asdl_seq * b;
8071 void *c;
8072 if (
8073 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8074 &&
8075 (a = param_no_default_rule(p)) // param_no_default
8076 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008077 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008078 &&
8079 (c = kwds_rule(p), 1) // kwds?
8080 )
8081 {
8082 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8083 _res = _PyPegen_star_etc ( p , a , b , c );
8084 if (_res == NULL && PyErr_Occurred()) {
8085 p->error_indicator = 1;
8086 D(p->level--);
8087 return NULL;
8088 }
8089 goto done;
8090 }
8091 p->mark = _mark;
8092 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8094 }
8095 { // '*' ',' param_maybe_default+ kwds?
8096 if (p->error_indicator) {
8097 D(p->level--);
8098 return NULL;
8099 }
8100 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8101 Token * _literal;
8102 Token * _literal_1;
8103 asdl_seq * b;
8104 void *c;
8105 if (
8106 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8107 &&
8108 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8109 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008110 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008111 &&
8112 (c = kwds_rule(p), 1) // kwds?
8113 )
8114 {
8115 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8116 _res = _PyPegen_star_etc ( p , NULL , b , c );
8117 if (_res == NULL && PyErr_Occurred()) {
8118 p->error_indicator = 1;
8119 D(p->level--);
8120 return NULL;
8121 }
8122 goto done;
8123 }
8124 p->mark = _mark;
8125 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8127 }
8128 { // kwds
8129 if (p->error_indicator) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8134 arg_ty a;
8135 if (
8136 (a = kwds_rule(p)) // kwds
8137 )
8138 {
8139 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8140 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8141 if (_res == NULL && PyErr_Occurred()) {
8142 p->error_indicator = 1;
8143 D(p->level--);
8144 return NULL;
8145 }
8146 goto done;
8147 }
8148 p->mark = _mark;
8149 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8151 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008152 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008153 if (p->error_indicator) {
8154 D(p->level--);
8155 return NULL;
8156 }
8157 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8158 void *invalid_star_etc_var;
8159 if (
8160 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8161 )
8162 {
8163 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8164 _res = invalid_star_etc_var;
8165 goto done;
8166 }
8167 p->mark = _mark;
8168 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8170 }
8171 _res = NULL;
8172 done:
8173 D(p->level--);
8174 return _res;
8175}
8176
8177// kwds: '**' param_no_default
8178static arg_ty
8179kwds_rule(Parser *p)
8180{
8181 D(p->level++);
8182 if (p->error_indicator) {
8183 D(p->level--);
8184 return NULL;
8185 }
8186 arg_ty _res = NULL;
8187 int _mark = p->mark;
8188 { // '**' param_no_default
8189 if (p->error_indicator) {
8190 D(p->level--);
8191 return NULL;
8192 }
8193 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8194 Token * _literal;
8195 arg_ty a;
8196 if (
8197 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8198 &&
8199 (a = param_no_default_rule(p)) // param_no_default
8200 )
8201 {
8202 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8203 _res = a;
8204 if (_res == NULL && PyErr_Occurred()) {
8205 p->error_indicator = 1;
8206 D(p->level--);
8207 return NULL;
8208 }
8209 goto done;
8210 }
8211 p->mark = _mark;
8212 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8214 }
8215 _res = NULL;
8216 done:
8217 D(p->level--);
8218 return _res;
8219}
8220
8221// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8222static arg_ty
8223param_no_default_rule(Parser *p)
8224{
8225 D(p->level++);
8226 if (p->error_indicator) {
8227 D(p->level--);
8228 return NULL;
8229 }
8230 arg_ty _res = NULL;
8231 int _mark = p->mark;
8232 { // param ',' TYPE_COMMENT?
8233 if (p->error_indicator) {
8234 D(p->level--);
8235 return NULL;
8236 }
8237 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8238 Token * _literal;
8239 arg_ty a;
8240 void *tc;
8241 if (
8242 (a = param_rule(p)) // param
8243 &&
8244 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8245 &&
8246 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8247 )
8248 {
8249 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8250 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8251 if (_res == NULL && PyErr_Occurred()) {
8252 p->error_indicator = 1;
8253 D(p->level--);
8254 return NULL;
8255 }
8256 goto done;
8257 }
8258 p->mark = _mark;
8259 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8261 }
8262 { // param TYPE_COMMENT? &')'
8263 if (p->error_indicator) {
8264 D(p->level--);
8265 return NULL;
8266 }
8267 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8268 arg_ty a;
8269 void *tc;
8270 if (
8271 (a = param_rule(p)) // param
8272 &&
8273 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8274 &&
8275 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8276 )
8277 {
8278 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8279 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8280 if (_res == NULL && PyErr_Occurred()) {
8281 p->error_indicator = 1;
8282 D(p->level--);
8283 return NULL;
8284 }
8285 goto done;
8286 }
8287 p->mark = _mark;
8288 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8290 }
8291 _res = NULL;
8292 done:
8293 D(p->level--);
8294 return _res;
8295}
8296
8297// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8298static NameDefaultPair*
8299param_with_default_rule(Parser *p)
8300{
8301 D(p->level++);
8302 if (p->error_indicator) {
8303 D(p->level--);
8304 return NULL;
8305 }
8306 NameDefaultPair* _res = NULL;
8307 int _mark = p->mark;
8308 { // param default ',' TYPE_COMMENT?
8309 if (p->error_indicator) {
8310 D(p->level--);
8311 return NULL;
8312 }
8313 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8314 Token * _literal;
8315 arg_ty a;
8316 expr_ty c;
8317 void *tc;
8318 if (
8319 (a = param_rule(p)) // param
8320 &&
8321 (c = default_rule(p)) // default
8322 &&
8323 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8324 &&
8325 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8326 )
8327 {
8328 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8329 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8330 if (_res == NULL && PyErr_Occurred()) {
8331 p->error_indicator = 1;
8332 D(p->level--);
8333 return NULL;
8334 }
8335 goto done;
8336 }
8337 p->mark = _mark;
8338 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8340 }
8341 { // param default TYPE_COMMENT? &')'
8342 if (p->error_indicator) {
8343 D(p->level--);
8344 return NULL;
8345 }
8346 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8347 arg_ty a;
8348 expr_ty c;
8349 void *tc;
8350 if (
8351 (a = param_rule(p)) // param
8352 &&
8353 (c = default_rule(p)) // default
8354 &&
8355 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8356 &&
8357 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8358 )
8359 {
8360 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8361 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8362 if (_res == NULL && PyErr_Occurred()) {
8363 p->error_indicator = 1;
8364 D(p->level--);
8365 return NULL;
8366 }
8367 goto done;
8368 }
8369 p->mark = _mark;
8370 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8372 }
8373 _res = NULL;
8374 done:
8375 D(p->level--);
8376 return _res;
8377}
8378
8379// param_maybe_default:
8380// | param default? ',' TYPE_COMMENT?
8381// | param default? TYPE_COMMENT? &')'
8382static NameDefaultPair*
8383param_maybe_default_rule(Parser *p)
8384{
8385 D(p->level++);
8386 if (p->error_indicator) {
8387 D(p->level--);
8388 return NULL;
8389 }
8390 NameDefaultPair* _res = NULL;
8391 int _mark = p->mark;
8392 { // param default? ',' TYPE_COMMENT?
8393 if (p->error_indicator) {
8394 D(p->level--);
8395 return NULL;
8396 }
8397 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8398 Token * _literal;
8399 arg_ty a;
8400 void *c;
8401 void *tc;
8402 if (
8403 (a = param_rule(p)) // param
8404 &&
8405 (c = default_rule(p), 1) // default?
8406 &&
8407 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8408 &&
8409 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8410 )
8411 {
8412 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8413 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8414 if (_res == NULL && PyErr_Occurred()) {
8415 p->error_indicator = 1;
8416 D(p->level--);
8417 return NULL;
8418 }
8419 goto done;
8420 }
8421 p->mark = _mark;
8422 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8424 }
8425 { // param default? TYPE_COMMENT? &')'
8426 if (p->error_indicator) {
8427 D(p->level--);
8428 return NULL;
8429 }
8430 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8431 arg_ty a;
8432 void *c;
8433 void *tc;
8434 if (
8435 (a = param_rule(p)) // param
8436 &&
8437 (c = default_rule(p), 1) // default?
8438 &&
8439 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8440 &&
8441 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8442 )
8443 {
8444 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8445 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8446 if (_res == NULL && PyErr_Occurred()) {
8447 p->error_indicator = 1;
8448 D(p->level--);
8449 return NULL;
8450 }
8451 goto done;
8452 }
8453 p->mark = _mark;
8454 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8456 }
8457 _res = NULL;
8458 done:
8459 D(p->level--);
8460 return _res;
8461}
8462
8463// param: NAME annotation?
8464static arg_ty
8465param_rule(Parser *p)
8466{
8467 D(p->level++);
8468 if (p->error_indicator) {
8469 D(p->level--);
8470 return NULL;
8471 }
8472 arg_ty _res = NULL;
8473 int _mark = p->mark;
8474 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8475 p->error_indicator = 1;
8476 D(p->level--);
8477 return NULL;
8478 }
8479 int _start_lineno = p->tokens[_mark]->lineno;
8480 UNUSED(_start_lineno); // Only used by EXTRA macro
8481 int _start_col_offset = p->tokens[_mark]->col_offset;
8482 UNUSED(_start_col_offset); // Only used by EXTRA macro
8483 { // NAME annotation?
8484 if (p->error_indicator) {
8485 D(p->level--);
8486 return NULL;
8487 }
8488 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8489 expr_ty a;
8490 void *b;
8491 if (
8492 (a = _PyPegen_name_token(p)) // NAME
8493 &&
8494 (b = annotation_rule(p), 1) // annotation?
8495 )
8496 {
8497 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8499 if (_token == NULL) {
8500 D(p->level--);
8501 return NULL;
8502 }
8503 int _end_lineno = _token->end_lineno;
8504 UNUSED(_end_lineno); // Only used by EXTRA macro
8505 int _end_col_offset = _token->end_col_offset;
8506 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008507 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008508 if (_res == NULL && PyErr_Occurred()) {
8509 p->error_indicator = 1;
8510 D(p->level--);
8511 return NULL;
8512 }
8513 goto done;
8514 }
8515 p->mark = _mark;
8516 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8518 }
8519 _res = NULL;
8520 done:
8521 D(p->level--);
8522 return _res;
8523}
8524
8525// annotation: ':' expression
8526static expr_ty
8527annotation_rule(Parser *p)
8528{
8529 D(p->level++);
8530 if (p->error_indicator) {
8531 D(p->level--);
8532 return NULL;
8533 }
8534 expr_ty _res = NULL;
8535 int _mark = p->mark;
8536 { // ':' expression
8537 if (p->error_indicator) {
8538 D(p->level--);
8539 return NULL;
8540 }
8541 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8542 Token * _literal;
8543 expr_ty a;
8544 if (
8545 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8546 &&
8547 (a = expression_rule(p)) // expression
8548 )
8549 {
8550 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8551 _res = a;
8552 if (_res == NULL && PyErr_Occurred()) {
8553 p->error_indicator = 1;
8554 D(p->level--);
8555 return NULL;
8556 }
8557 goto done;
8558 }
8559 p->mark = _mark;
8560 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8562 }
8563 _res = NULL;
8564 done:
8565 D(p->level--);
8566 return _res;
8567}
8568
8569// default: '=' expression
8570static expr_ty
8571default_rule(Parser *p)
8572{
8573 D(p->level++);
8574 if (p->error_indicator) {
8575 D(p->level--);
8576 return NULL;
8577 }
8578 expr_ty _res = NULL;
8579 int _mark = p->mark;
8580 { // '=' expression
8581 if (p->error_indicator) {
8582 D(p->level--);
8583 return NULL;
8584 }
8585 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8586 Token * _literal;
8587 expr_ty a;
8588 if (
8589 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8590 &&
8591 (a = expression_rule(p)) // expression
8592 )
8593 {
8594 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8595 _res = a;
8596 if (_res == NULL && PyErr_Occurred()) {
8597 p->error_indicator = 1;
8598 D(p->level--);
8599 return NULL;
8600 }
8601 goto done;
8602 }
8603 p->mark = _mark;
8604 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8606 }
8607 _res = NULL;
8608 done:
8609 D(p->level--);
8610 return _res;
8611}
8612
8613// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008614static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008615decorators_rule(Parser *p)
8616{
8617 D(p->level++);
8618 if (p->error_indicator) {
8619 D(p->level--);
8620 return NULL;
8621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008622 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008623 int _mark = p->mark;
8624 { // (('@' named_expression NEWLINE))+
8625 if (p->error_indicator) {
8626 D(p->level--);
8627 return NULL;
8628 }
8629 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008630 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008631 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008632 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008633 )
8634 {
8635 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8636 _res = a;
8637 if (_res == NULL && PyErr_Occurred()) {
8638 p->error_indicator = 1;
8639 D(p->level--);
8640 return NULL;
8641 }
8642 goto done;
8643 }
8644 p->mark = _mark;
8645 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8647 }
8648 _res = NULL;
8649 done:
8650 D(p->level--);
8651 return _res;
8652}
8653
8654// class_def: decorators class_def_raw | class_def_raw
8655static stmt_ty
8656class_def_rule(Parser *p)
8657{
8658 D(p->level++);
8659 if (p->error_indicator) {
8660 D(p->level--);
8661 return NULL;
8662 }
8663 stmt_ty _res = NULL;
8664 int _mark = p->mark;
8665 { // decorators class_def_raw
8666 if (p->error_indicator) {
8667 D(p->level--);
8668 return NULL;
8669 }
8670 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 +01008671 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008672 stmt_ty b;
8673 if (
8674 (a = decorators_rule(p)) // decorators
8675 &&
8676 (b = class_def_raw_rule(p)) // class_def_raw
8677 )
8678 {
8679 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8680 _res = _PyPegen_class_def_decorators ( p , a , b );
8681 if (_res == NULL && PyErr_Occurred()) {
8682 p->error_indicator = 1;
8683 D(p->level--);
8684 return NULL;
8685 }
8686 goto done;
8687 }
8688 p->mark = _mark;
8689 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8691 }
8692 { // class_def_raw
8693 if (p->error_indicator) {
8694 D(p->level--);
8695 return NULL;
8696 }
8697 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8698 stmt_ty class_def_raw_var;
8699 if (
8700 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8701 )
8702 {
8703 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8704 _res = class_def_raw_var;
8705 goto done;
8706 }
8707 p->mark = _mark;
8708 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8710 }
8711 _res = NULL;
8712 done:
8713 D(p->level--);
8714 return _res;
8715}
8716
Pablo Galindo58fb1562021-02-02 19:54:22 +00008717// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008718static stmt_ty
8719class_def_raw_rule(Parser *p)
8720{
8721 D(p->level++);
8722 if (p->error_indicator) {
8723 D(p->level--);
8724 return NULL;
8725 }
8726 stmt_ty _res = NULL;
8727 int _mark = p->mark;
8728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8729 p->error_indicator = 1;
8730 D(p->level--);
8731 return NULL;
8732 }
8733 int _start_lineno = p->tokens[_mark]->lineno;
8734 UNUSED(_start_lineno); // Only used by EXTRA macro
8735 int _start_col_offset = p->tokens[_mark]->col_offset;
8736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008737 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008738 if (p->error_indicator) {
8739 D(p->level--);
8740 return NULL;
8741 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008742 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 +01008743 Token * _keyword;
8744 Token * _literal;
8745 expr_ty a;
8746 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008747 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008748 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008749 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008750 &&
8751 (a = _PyPegen_name_token(p)) // NAME
8752 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008753 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008754 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008755 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008756 &&
8757 (c = block_rule(p)) // block
8758 )
8759 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008760 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 +01008761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8762 if (_token == NULL) {
8763 D(p->level--);
8764 return NULL;
8765 }
8766 int _end_lineno = _token->end_lineno;
8767 UNUSED(_end_lineno); // Only used by EXTRA macro
8768 int _end_col_offset = _token->end_col_offset;
8769 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008770 _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 +01008771 if (_res == NULL && PyErr_Occurred()) {
8772 p->error_indicator = 1;
8773 D(p->level--);
8774 return NULL;
8775 }
8776 goto done;
8777 }
8778 p->mark = _mark;
8779 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008781 }
8782 _res = NULL;
8783 done:
8784 D(p->level--);
8785 return _res;
8786}
8787
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008788// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008789static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008790block_rule(Parser *p)
8791{
8792 D(p->level++);
8793 if (p->error_indicator) {
8794 D(p->level--);
8795 return NULL;
8796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008797 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008798 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8799 D(p->level--);
8800 return _res;
8801 }
8802 int _mark = p->mark;
8803 { // NEWLINE INDENT statements DEDENT
8804 if (p->error_indicator) {
8805 D(p->level--);
8806 return NULL;
8807 }
8808 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 +01008809 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008810 Token * dedent_var;
8811 Token * indent_var;
8812 Token * newline_var;
8813 if (
8814 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8815 &&
8816 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8817 &&
8818 (a = statements_rule(p)) // statements
8819 &&
8820 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8821 )
8822 {
8823 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8824 _res = a;
8825 if (_res == NULL && PyErr_Occurred()) {
8826 p->error_indicator = 1;
8827 D(p->level--);
8828 return NULL;
8829 }
8830 goto done;
8831 }
8832 p->mark = _mark;
8833 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8835 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008836 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008837 if (p->error_indicator) {
8838 D(p->level--);
8839 return NULL;
8840 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008841 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8842 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008843 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008844 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008845 )
8846 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008847 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8848 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008849 goto done;
8850 }
8851 p->mark = _mark;
8852 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008854 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008855 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008856 if (p->error_indicator) {
8857 D(p->level--);
8858 return NULL;
8859 }
8860 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8861 void *invalid_block_var;
8862 if (
8863 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8864 )
8865 {
8866 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8867 _res = invalid_block_var;
8868 goto done;
8869 }
8870 p->mark = _mark;
8871 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8873 }
8874 _res = NULL;
8875 done:
8876 _PyPegen_insert_memo(p, _mark, block_type, _res);
8877 D(p->level--);
8878 return _res;
8879}
8880
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008881// star_expressions:
8882// | star_expression ((',' star_expression))+ ','?
8883// | star_expression ','
8884// | star_expression
8885static expr_ty
8886star_expressions_rule(Parser *p)
8887{
8888 D(p->level++);
8889 if (p->error_indicator) {
8890 D(p->level--);
8891 return NULL;
8892 }
8893 expr_ty _res = NULL;
8894 int _mark = p->mark;
8895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8896 p->error_indicator = 1;
8897 D(p->level--);
8898 return NULL;
8899 }
8900 int _start_lineno = p->tokens[_mark]->lineno;
8901 UNUSED(_start_lineno); // Only used by EXTRA macro
8902 int _start_col_offset = p->tokens[_mark]->col_offset;
8903 UNUSED(_start_col_offset); // Only used by EXTRA macro
8904 { // star_expression ((',' star_expression))+ ','?
8905 if (p->error_indicator) {
8906 D(p->level--);
8907 return NULL;
8908 }
8909 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8910 void *_opt_var;
8911 UNUSED(_opt_var); // Silence compiler warnings
8912 expr_ty a;
8913 asdl_seq * b;
8914 if (
8915 (a = star_expression_rule(p)) // star_expression
8916 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008917 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008918 &&
8919 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
8920 )
8921 {
8922 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8924 if (_token == NULL) {
8925 D(p->level--);
8926 return NULL;
8927 }
8928 int _end_lineno = _token->end_lineno;
8929 UNUSED(_end_lineno); // Only used by EXTRA macro
8930 int _end_col_offset = _token->end_col_offset;
8931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008932 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008933 if (_res == NULL && PyErr_Occurred()) {
8934 p->error_indicator = 1;
8935 D(p->level--);
8936 return NULL;
8937 }
8938 goto done;
8939 }
8940 p->mark = _mark;
8941 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8943 }
8944 { // star_expression ','
8945 if (p->error_indicator) {
8946 D(p->level--);
8947 return NULL;
8948 }
8949 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8950 Token * _literal;
8951 expr_ty a;
8952 if (
8953 (a = star_expression_rule(p)) // star_expression
8954 &&
8955 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8956 )
8957 {
8958 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8960 if (_token == NULL) {
8961 D(p->level--);
8962 return NULL;
8963 }
8964 int _end_lineno = _token->end_lineno;
8965 UNUSED(_end_lineno); // Only used by EXTRA macro
8966 int _end_col_offset = _token->end_col_offset;
8967 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008968 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008969 if (_res == NULL && PyErr_Occurred()) {
8970 p->error_indicator = 1;
8971 D(p->level--);
8972 return NULL;
8973 }
8974 goto done;
8975 }
8976 p->mark = _mark;
8977 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
8979 }
8980 { // star_expression
8981 if (p->error_indicator) {
8982 D(p->level--);
8983 return NULL;
8984 }
8985 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
8986 expr_ty star_expression_var;
8987 if (
8988 (star_expression_var = star_expression_rule(p)) // star_expression
8989 )
8990 {
8991 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
8992 _res = star_expression_var;
8993 goto done;
8994 }
8995 p->mark = _mark;
8996 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
8998 }
8999 _res = NULL;
9000 done:
9001 D(p->level--);
9002 return _res;
9003}
9004
9005// star_expression: '*' bitwise_or | expression
9006static expr_ty
9007star_expression_rule(Parser *p)
9008{
9009 D(p->level++);
9010 if (p->error_indicator) {
9011 D(p->level--);
9012 return NULL;
9013 }
9014 expr_ty _res = NULL;
9015 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9016 D(p->level--);
9017 return _res;
9018 }
9019 int _mark = p->mark;
9020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9021 p->error_indicator = 1;
9022 D(p->level--);
9023 return NULL;
9024 }
9025 int _start_lineno = p->tokens[_mark]->lineno;
9026 UNUSED(_start_lineno); // Only used by EXTRA macro
9027 int _start_col_offset = p->tokens[_mark]->col_offset;
9028 UNUSED(_start_col_offset); // Only used by EXTRA macro
9029 { // '*' bitwise_or
9030 if (p->error_indicator) {
9031 D(p->level--);
9032 return NULL;
9033 }
9034 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9035 Token * _literal;
9036 expr_ty a;
9037 if (
9038 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9039 &&
9040 (a = bitwise_or_rule(p)) // bitwise_or
9041 )
9042 {
9043 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9045 if (_token == NULL) {
9046 D(p->level--);
9047 return NULL;
9048 }
9049 int _end_lineno = _token->end_lineno;
9050 UNUSED(_end_lineno); // Only used by EXTRA macro
9051 int _end_col_offset = _token->end_col_offset;
9052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009053 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009054 if (_res == NULL && PyErr_Occurred()) {
9055 p->error_indicator = 1;
9056 D(p->level--);
9057 return NULL;
9058 }
9059 goto done;
9060 }
9061 p->mark = _mark;
9062 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9064 }
9065 { // expression
9066 if (p->error_indicator) {
9067 D(p->level--);
9068 return NULL;
9069 }
9070 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9071 expr_ty expression_var;
9072 if (
9073 (expression_var = expression_rule(p)) // expression
9074 )
9075 {
9076 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9077 _res = expression_var;
9078 goto done;
9079 }
9080 p->mark = _mark;
9081 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
9082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9083 }
9084 _res = NULL;
9085 done:
9086 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
9087 D(p->level--);
9088 return _res;
9089}
9090
9091// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01009092static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009093star_named_expressions_rule(Parser *p)
9094{
9095 D(p->level++);
9096 if (p->error_indicator) {
9097 D(p->level--);
9098 return NULL;
9099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009100 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009101 int _mark = p->mark;
9102 { // ','.star_named_expression+ ','?
9103 if (p->error_indicator) {
9104 D(p->level--);
9105 return NULL;
9106 }
9107 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9108 void *_opt_var;
9109 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009110 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009111 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009112 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009113 &&
9114 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9115 )
9116 {
9117 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9118 _res = a;
9119 if (_res == NULL && PyErr_Occurred()) {
9120 p->error_indicator = 1;
9121 D(p->level--);
9122 return NULL;
9123 }
9124 goto done;
9125 }
9126 p->mark = _mark;
9127 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9129 }
9130 _res = NULL;
9131 done:
9132 D(p->level--);
9133 return _res;
9134}
9135
9136// star_named_expression: '*' bitwise_or | named_expression
9137static expr_ty
9138star_named_expression_rule(Parser *p)
9139{
9140 D(p->level++);
9141 if (p->error_indicator) {
9142 D(p->level--);
9143 return NULL;
9144 }
9145 expr_ty _res = NULL;
9146 int _mark = p->mark;
9147 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9148 p->error_indicator = 1;
9149 D(p->level--);
9150 return NULL;
9151 }
9152 int _start_lineno = p->tokens[_mark]->lineno;
9153 UNUSED(_start_lineno); // Only used by EXTRA macro
9154 int _start_col_offset = p->tokens[_mark]->col_offset;
9155 UNUSED(_start_col_offset); // Only used by EXTRA macro
9156 { // '*' bitwise_or
9157 if (p->error_indicator) {
9158 D(p->level--);
9159 return NULL;
9160 }
9161 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9162 Token * _literal;
9163 expr_ty a;
9164 if (
9165 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9166 &&
9167 (a = bitwise_or_rule(p)) // bitwise_or
9168 )
9169 {
9170 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9172 if (_token == NULL) {
9173 D(p->level--);
9174 return NULL;
9175 }
9176 int _end_lineno = _token->end_lineno;
9177 UNUSED(_end_lineno); // Only used by EXTRA macro
9178 int _end_col_offset = _token->end_col_offset;
9179 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009180 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009181 if (_res == NULL && PyErr_Occurred()) {
9182 p->error_indicator = 1;
9183 D(p->level--);
9184 return NULL;
9185 }
9186 goto done;
9187 }
9188 p->mark = _mark;
9189 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9191 }
9192 { // named_expression
9193 if (p->error_indicator) {
9194 D(p->level--);
9195 return NULL;
9196 }
9197 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9198 expr_ty named_expression_var;
9199 if (
9200 (named_expression_var = named_expression_rule(p)) // named_expression
9201 )
9202 {
9203 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9204 _res = named_expression_var;
9205 goto done;
9206 }
9207 p->mark = _mark;
9208 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9210 }
9211 _res = NULL;
9212 done:
9213 D(p->level--);
9214 return _res;
9215}
9216
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009217// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009218static expr_ty
9219named_expression_rule(Parser *p)
9220{
9221 D(p->level++);
9222 if (p->error_indicator) {
9223 D(p->level--);
9224 return NULL;
9225 }
9226 expr_ty _res = NULL;
9227 int _mark = p->mark;
9228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9229 p->error_indicator = 1;
9230 D(p->level--);
9231 return NULL;
9232 }
9233 int _start_lineno = p->tokens[_mark]->lineno;
9234 UNUSED(_start_lineno); // Only used by EXTRA macro
9235 int _start_col_offset = p->tokens[_mark]->col_offset;
9236 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009237 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009238 if (p->error_indicator) {
9239 D(p->level--);
9240 return NULL;
9241 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009242 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9243 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009244 Token * _literal;
9245 expr_ty a;
9246 expr_ty b;
9247 if (
9248 (a = _PyPegen_name_token(p)) // NAME
9249 &&
9250 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9251 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009252 (_cut_var = 1)
9253 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009254 (b = expression_rule(p)) // expression
9255 )
9256 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009257 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 +01009258 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9259 if (_token == NULL) {
9260 D(p->level--);
9261 return NULL;
9262 }
9263 int _end_lineno = _token->end_lineno;
9264 UNUSED(_end_lineno); // Only used by EXTRA macro
9265 int _end_col_offset = _token->end_col_offset;
9266 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009267 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009268 if (_res == NULL && PyErr_Occurred()) {
9269 p->error_indicator = 1;
9270 D(p->level--);
9271 return NULL;
9272 }
9273 goto done;
9274 }
9275 p->mark = _mark;
9276 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9278 if (_cut_var) {
9279 D(p->level--);
9280 return NULL;
9281 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009282 }
9283 { // expression !':='
9284 if (p->error_indicator) {
9285 D(p->level--);
9286 return NULL;
9287 }
9288 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9289 expr_ty expression_var;
9290 if (
9291 (expression_var = expression_rule(p)) // expression
9292 &&
9293 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9294 )
9295 {
9296 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9297 _res = expression_var;
9298 goto done;
9299 }
9300 p->mark = _mark;
9301 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9303 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009304 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009305 if (p->error_indicator) {
9306 D(p->level--);
9307 return NULL;
9308 }
9309 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9310 void *invalid_named_expression_var;
9311 if (
9312 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9313 )
9314 {
9315 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9316 _res = invalid_named_expression_var;
9317 goto done;
9318 }
9319 p->mark = _mark;
9320 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9322 }
9323 _res = NULL;
9324 done:
9325 D(p->level--);
9326 return _res;
9327}
9328
9329// annotated_rhs: yield_expr | star_expressions
9330static expr_ty
9331annotated_rhs_rule(Parser *p)
9332{
9333 D(p->level++);
9334 if (p->error_indicator) {
9335 D(p->level--);
9336 return NULL;
9337 }
9338 expr_ty _res = NULL;
9339 int _mark = p->mark;
9340 { // yield_expr
9341 if (p->error_indicator) {
9342 D(p->level--);
9343 return NULL;
9344 }
9345 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9346 expr_ty yield_expr_var;
9347 if (
9348 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9349 )
9350 {
9351 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9352 _res = yield_expr_var;
9353 goto done;
9354 }
9355 p->mark = _mark;
9356 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9358 }
9359 { // star_expressions
9360 if (p->error_indicator) {
9361 D(p->level--);
9362 return NULL;
9363 }
9364 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9365 expr_ty star_expressions_var;
9366 if (
9367 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9368 )
9369 {
9370 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9371 _res = star_expressions_var;
9372 goto done;
9373 }
9374 p->mark = _mark;
9375 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9377 }
9378 _res = NULL;
9379 done:
9380 D(p->level--);
9381 return _res;
9382}
9383
9384// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9385static expr_ty
9386expressions_rule(Parser *p)
9387{
9388 D(p->level++);
9389 if (p->error_indicator) {
9390 D(p->level--);
9391 return NULL;
9392 }
9393 expr_ty _res = NULL;
9394 int _mark = p->mark;
9395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9396 p->error_indicator = 1;
9397 D(p->level--);
9398 return NULL;
9399 }
9400 int _start_lineno = p->tokens[_mark]->lineno;
9401 UNUSED(_start_lineno); // Only used by EXTRA macro
9402 int _start_col_offset = p->tokens[_mark]->col_offset;
9403 UNUSED(_start_col_offset); // Only used by EXTRA macro
9404 { // expression ((',' expression))+ ','?
9405 if (p->error_indicator) {
9406 D(p->level--);
9407 return NULL;
9408 }
9409 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9410 void *_opt_var;
9411 UNUSED(_opt_var); // Silence compiler warnings
9412 expr_ty a;
9413 asdl_seq * b;
9414 if (
9415 (a = expression_rule(p)) // expression
9416 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009417 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009418 &&
9419 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9420 )
9421 {
9422 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9424 if (_token == NULL) {
9425 D(p->level--);
9426 return NULL;
9427 }
9428 int _end_lineno = _token->end_lineno;
9429 UNUSED(_end_lineno); // Only used by EXTRA macro
9430 int _end_col_offset = _token->end_col_offset;
9431 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009432 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009433 if (_res == NULL && PyErr_Occurred()) {
9434 p->error_indicator = 1;
9435 D(p->level--);
9436 return NULL;
9437 }
9438 goto done;
9439 }
9440 p->mark = _mark;
9441 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9443 }
9444 { // expression ','
9445 if (p->error_indicator) {
9446 D(p->level--);
9447 return NULL;
9448 }
9449 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9450 Token * _literal;
9451 expr_ty a;
9452 if (
9453 (a = expression_rule(p)) // expression
9454 &&
9455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9456 )
9457 {
9458 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9460 if (_token == NULL) {
9461 D(p->level--);
9462 return NULL;
9463 }
9464 int _end_lineno = _token->end_lineno;
9465 UNUSED(_end_lineno); // Only used by EXTRA macro
9466 int _end_col_offset = _token->end_col_offset;
9467 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009468 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009469 if (_res == NULL && PyErr_Occurred()) {
9470 p->error_indicator = 1;
9471 D(p->level--);
9472 return NULL;
9473 }
9474 goto done;
9475 }
9476 p->mark = _mark;
9477 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9479 }
9480 { // expression
9481 if (p->error_indicator) {
9482 D(p->level--);
9483 return NULL;
9484 }
9485 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9486 expr_ty expression_var;
9487 if (
9488 (expression_var = expression_rule(p)) // expression
9489 )
9490 {
9491 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9492 _res = expression_var;
9493 goto done;
9494 }
9495 p->mark = _mark;
9496 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9498 }
9499 _res = NULL;
9500 done:
9501 D(p->level--);
9502 return _res;
9503}
9504
9505// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
9506static expr_ty
9507expression_rule(Parser *p)
9508{
9509 D(p->level++);
9510 if (p->error_indicator) {
9511 D(p->level--);
9512 return NULL;
9513 }
9514 expr_ty _res = NULL;
9515 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9516 D(p->level--);
9517 return _res;
9518 }
9519 int _mark = p->mark;
9520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9521 p->error_indicator = 1;
9522 D(p->level--);
9523 return NULL;
9524 }
9525 int _start_lineno = p->tokens[_mark]->lineno;
9526 UNUSED(_start_lineno); // Only used by EXTRA macro
9527 int _start_col_offset = p->tokens[_mark]->col_offset;
9528 UNUSED(_start_col_offset); // Only used by EXTRA macro
9529 { // disjunction 'if' disjunction 'else' expression
9530 if (p->error_indicator) {
9531 D(p->level--);
9532 return NULL;
9533 }
9534 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9535 Token * _keyword;
9536 Token * _keyword_1;
9537 expr_ty a;
9538 expr_ty b;
9539 expr_ty c;
9540 if (
9541 (a = disjunction_rule(p)) // disjunction
9542 &&
9543 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9544 &&
9545 (b = disjunction_rule(p)) // disjunction
9546 &&
9547 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9548 &&
9549 (c = expression_rule(p)) // expression
9550 )
9551 {
9552 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9554 if (_token == NULL) {
9555 D(p->level--);
9556 return NULL;
9557 }
9558 int _end_lineno = _token->end_lineno;
9559 UNUSED(_end_lineno); // Only used by EXTRA macro
9560 int _end_col_offset = _token->end_col_offset;
9561 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009562 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009563 if (_res == NULL && PyErr_Occurred()) {
9564 p->error_indicator = 1;
9565 D(p->level--);
9566 return NULL;
9567 }
9568 goto done;
9569 }
9570 p->mark = _mark;
9571 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9573 }
9574 { // disjunction
9575 if (p->error_indicator) {
9576 D(p->level--);
9577 return NULL;
9578 }
9579 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9580 expr_ty disjunction_var;
9581 if (
9582 (disjunction_var = disjunction_rule(p)) // disjunction
9583 )
9584 {
9585 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9586 _res = disjunction_var;
9587 goto done;
9588 }
9589 p->mark = _mark;
9590 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9592 }
9593 { // lambdef
9594 if (p->error_indicator) {
9595 D(p->level--);
9596 return NULL;
9597 }
9598 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9599 expr_ty lambdef_var;
9600 if (
9601 (lambdef_var = lambdef_rule(p)) // lambdef
9602 )
9603 {
9604 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9605 _res = lambdef_var;
9606 goto done;
9607 }
9608 p->mark = _mark;
9609 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9611 }
9612 _res = NULL;
9613 done:
9614 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9615 D(p->level--);
9616 return _res;
9617}
9618
9619// lambdef: 'lambda' lambda_params? ':' expression
9620static expr_ty
9621lambdef_rule(Parser *p)
9622{
9623 D(p->level++);
9624 if (p->error_indicator) {
9625 D(p->level--);
9626 return NULL;
9627 }
9628 expr_ty _res = NULL;
9629 int _mark = p->mark;
9630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9631 p->error_indicator = 1;
9632 D(p->level--);
9633 return NULL;
9634 }
9635 int _start_lineno = p->tokens[_mark]->lineno;
9636 UNUSED(_start_lineno); // Only used by EXTRA macro
9637 int _start_col_offset = p->tokens[_mark]->col_offset;
9638 UNUSED(_start_col_offset); // Only used by EXTRA macro
9639 { // 'lambda' lambda_params? ':' expression
9640 if (p->error_indicator) {
9641 D(p->level--);
9642 return NULL;
9643 }
9644 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9645 Token * _keyword;
9646 Token * _literal;
9647 void *a;
9648 expr_ty b;
9649 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009650 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009651 &&
9652 (a = lambda_params_rule(p), 1) // lambda_params?
9653 &&
9654 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9655 &&
9656 (b = expression_rule(p)) // expression
9657 )
9658 {
9659 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9661 if (_token == NULL) {
9662 D(p->level--);
9663 return NULL;
9664 }
9665 int _end_lineno = _token->end_lineno;
9666 UNUSED(_end_lineno); // Only used by EXTRA macro
9667 int _end_col_offset = _token->end_col_offset;
9668 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009669 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009670 if (_res == NULL && PyErr_Occurred()) {
9671 p->error_indicator = 1;
9672 D(p->level--);
9673 return NULL;
9674 }
9675 goto done;
9676 }
9677 p->mark = _mark;
9678 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9680 }
9681 _res = NULL;
9682 done:
9683 D(p->level--);
9684 return _res;
9685}
9686
9687// lambda_params: invalid_lambda_parameters | lambda_parameters
9688static arguments_ty
9689lambda_params_rule(Parser *p)
9690{
9691 D(p->level++);
9692 if (p->error_indicator) {
9693 D(p->level--);
9694 return NULL;
9695 }
9696 arguments_ty _res = NULL;
9697 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009698 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009699 if (p->error_indicator) {
9700 D(p->level--);
9701 return NULL;
9702 }
9703 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9704 void *invalid_lambda_parameters_var;
9705 if (
9706 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9707 )
9708 {
9709 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9710 _res = invalid_lambda_parameters_var;
9711 goto done;
9712 }
9713 p->mark = _mark;
9714 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9716 }
9717 { // lambda_parameters
9718 if (p->error_indicator) {
9719 D(p->level--);
9720 return NULL;
9721 }
9722 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9723 arguments_ty lambda_parameters_var;
9724 if (
9725 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9726 )
9727 {
9728 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9729 _res = lambda_parameters_var;
9730 goto done;
9731 }
9732 p->mark = _mark;
9733 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9735 }
9736 _res = NULL;
9737 done:
9738 D(p->level--);
9739 return _res;
9740}
9741
9742// lambda_parameters:
9743// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9744// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9745// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9746// | lambda_param_with_default+ lambda_star_etc?
9747// | lambda_star_etc
9748static arguments_ty
9749lambda_parameters_rule(Parser *p)
9750{
9751 D(p->level++);
9752 if (p->error_indicator) {
9753 D(p->level--);
9754 return NULL;
9755 }
9756 arguments_ty _res = NULL;
9757 int _mark = p->mark;
9758 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9759 if (p->error_indicator) {
9760 D(p->level--);
9761 return NULL;
9762 }
9763 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 +01009764 asdl_arg_seq* a;
9765 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009766 asdl_seq * c;
9767 void *d;
9768 if (
9769 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9770 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009771 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009772 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009773 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009774 &&
9775 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9776 )
9777 {
9778 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?"));
9779 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9780 if (_res == NULL && PyErr_Occurred()) {
9781 p->error_indicator = 1;
9782 D(p->level--);
9783 return NULL;
9784 }
9785 goto done;
9786 }
9787 p->mark = _mark;
9788 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9790 }
9791 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9792 if (p->error_indicator) {
9793 D(p->level--);
9794 return NULL;
9795 }
9796 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?"));
9797 SlashWithDefault* a;
9798 asdl_seq * b;
9799 void *c;
9800 if (
9801 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
9802 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009803 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009804 &&
9805 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9806 )
9807 {
9808 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?"));
9809 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9810 if (_res == NULL && PyErr_Occurred()) {
9811 p->error_indicator = 1;
9812 D(p->level--);
9813 return NULL;
9814 }
9815 goto done;
9816 }
9817 p->mark = _mark;
9818 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9820 }
9821 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9822 if (p->error_indicator) {
9823 D(p->level--);
9824 return NULL;
9825 }
9826 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 +01009827 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009828 asdl_seq * b;
9829 void *c;
9830 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009831 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009832 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009833 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009834 &&
9835 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9836 )
9837 {
9838 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?"));
9839 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
9840 if (_res == NULL && PyErr_Occurred()) {
9841 p->error_indicator = 1;
9842 D(p->level--);
9843 return NULL;
9844 }
9845 goto done;
9846 }
9847 p->mark = _mark;
9848 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
9850 }
9851 { // lambda_param_with_default+ lambda_star_etc?
9852 if (p->error_indicator) {
9853 D(p->level--);
9854 return NULL;
9855 }
9856 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9857 asdl_seq * a;
9858 void *b;
9859 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009860 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009861 &&
9862 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9863 )
9864 {
9865 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9866 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
9867 if (_res == NULL && PyErr_Occurred()) {
9868 p->error_indicator = 1;
9869 D(p->level--);
9870 return NULL;
9871 }
9872 goto done;
9873 }
9874 p->mark = _mark;
9875 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9877 }
9878 { // lambda_star_etc
9879 if (p->error_indicator) {
9880 D(p->level--);
9881 return NULL;
9882 }
9883 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9884 StarEtc* a;
9885 if (
9886 (a = lambda_star_etc_rule(p)) // lambda_star_etc
9887 )
9888 {
9889 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9890 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
9891 if (_res == NULL && PyErr_Occurred()) {
9892 p->error_indicator = 1;
9893 D(p->level--);
9894 return NULL;
9895 }
9896 goto done;
9897 }
9898 p->mark = _mark;
9899 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
9901 }
9902 _res = NULL;
9903 done:
9904 D(p->level--);
9905 return _res;
9906}
9907
9908// lambda_slash_no_default:
9909// | lambda_param_no_default+ '/' ','
9910// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01009911static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009912lambda_slash_no_default_rule(Parser *p)
9913{
9914 D(p->level++);
9915 if (p->error_indicator) {
9916 D(p->level--);
9917 return NULL;
9918 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009919 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009920 int _mark = p->mark;
9921 { // lambda_param_no_default+ '/' ','
9922 if (p->error_indicator) {
9923 D(p->level--);
9924 return NULL;
9925 }
9926 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9927 Token * _literal;
9928 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009929 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009930 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009931 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009932 &&
9933 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9934 &&
9935 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9936 )
9937 {
9938 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9939 _res = a;
9940 if (_res == NULL && PyErr_Occurred()) {
9941 p->error_indicator = 1;
9942 D(p->level--);
9943 return NULL;
9944 }
9945 goto done;
9946 }
9947 p->mark = _mark;
9948 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9950 }
9951 { // lambda_param_no_default+ '/' &':'
9952 if (p->error_indicator) {
9953 D(p->level--);
9954 return NULL;
9955 }
9956 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9957 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009958 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009959 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009960 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009961 &&
9962 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9963 &&
9964 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
9965 )
9966 {
9967 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9968 _res = a;
9969 if (_res == NULL && PyErr_Occurred()) {
9970 p->error_indicator = 1;
9971 D(p->level--);
9972 return NULL;
9973 }
9974 goto done;
9975 }
9976 p->mark = _mark;
9977 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9979 }
9980 _res = NULL;
9981 done:
9982 D(p->level--);
9983 return _res;
9984}
9985
9986// lambda_slash_with_default:
9987// | lambda_param_no_default* lambda_param_with_default+ '/' ','
9988// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
9989static SlashWithDefault*
9990lambda_slash_with_default_rule(Parser *p)
9991{
9992 D(p->level++);
9993 if (p->error_indicator) {
9994 D(p->level--);
9995 return NULL;
9996 }
9997 SlashWithDefault* _res = NULL;
9998 int _mark = p->mark;
9999 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
10000 if (p->error_indicator) {
10001 D(p->level--);
10002 return NULL;
10003 }
10004 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+ '/' ','"));
10005 Token * _literal;
10006 Token * _literal_1;
10007 asdl_seq * a;
10008 asdl_seq * b;
10009 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010010 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010011 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010012 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010013 &&
10014 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10015 &&
10016 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10017 )
10018 {
10019 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 +010010020 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010021 if (_res == NULL && PyErr_Occurred()) {
10022 p->error_indicator = 1;
10023 D(p->level--);
10024 return NULL;
10025 }
10026 goto done;
10027 }
10028 p->mark = _mark;
10029 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
10031 }
10032 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
10033 if (p->error_indicator) {
10034 D(p->level--);
10035 return NULL;
10036 }
10037 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+ '/' &':'"));
10038 Token * _literal;
10039 asdl_seq * a;
10040 asdl_seq * b;
10041 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010042 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010043 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010044 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010045 &&
10046 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10047 &&
10048 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10049 )
10050 {
10051 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 +010010052 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010053 if (_res == NULL && PyErr_Occurred()) {
10054 p->error_indicator = 1;
10055 D(p->level--);
10056 return NULL;
10057 }
10058 goto done;
10059 }
10060 p->mark = _mark;
10061 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
10063 }
10064 _res = NULL;
10065 done:
10066 D(p->level--);
10067 return _res;
10068}
10069
10070// lambda_star_etc:
10071// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10072// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
10073// | lambda_kwds
10074// | invalid_lambda_star_etc
10075static StarEtc*
10076lambda_star_etc_rule(Parser *p)
10077{
10078 D(p->level++);
10079 if (p->error_indicator) {
10080 D(p->level--);
10081 return NULL;
10082 }
10083 StarEtc* _res = NULL;
10084 int _mark = p->mark;
10085 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
10086 if (p->error_indicator) {
10087 D(p->level--);
10088 return NULL;
10089 }
10090 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?"));
10091 Token * _literal;
10092 arg_ty a;
10093 asdl_seq * b;
10094 void *c;
10095 if (
10096 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10097 &&
10098 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10099 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010100 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010101 &&
10102 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10103 )
10104 {
10105 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?"));
10106 _res = _PyPegen_star_etc ( p , a , b , c );
10107 if (_res == NULL && PyErr_Occurred()) {
10108 p->error_indicator = 1;
10109 D(p->level--);
10110 return NULL;
10111 }
10112 goto done;
10113 }
10114 p->mark = _mark;
10115 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10117 }
10118 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10119 if (p->error_indicator) {
10120 D(p->level--);
10121 return NULL;
10122 }
10123 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10124 Token * _literal;
10125 Token * _literal_1;
10126 asdl_seq * b;
10127 void *c;
10128 if (
10129 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10130 &&
10131 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10132 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010133 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010134 &&
10135 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10136 )
10137 {
10138 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10139 _res = _PyPegen_star_etc ( p , NULL , b , c );
10140 if (_res == NULL && PyErr_Occurred()) {
10141 p->error_indicator = 1;
10142 D(p->level--);
10143 return NULL;
10144 }
10145 goto done;
10146 }
10147 p->mark = _mark;
10148 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10150 }
10151 { // lambda_kwds
10152 if (p->error_indicator) {
10153 D(p->level--);
10154 return NULL;
10155 }
10156 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10157 arg_ty a;
10158 if (
10159 (a = lambda_kwds_rule(p)) // lambda_kwds
10160 )
10161 {
10162 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10163 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10164 if (_res == NULL && PyErr_Occurred()) {
10165 p->error_indicator = 1;
10166 D(p->level--);
10167 return NULL;
10168 }
10169 goto done;
10170 }
10171 p->mark = _mark;
10172 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10174 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010175 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010176 if (p->error_indicator) {
10177 D(p->level--);
10178 return NULL;
10179 }
10180 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10181 void *invalid_lambda_star_etc_var;
10182 if (
10183 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10184 )
10185 {
10186 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10187 _res = invalid_lambda_star_etc_var;
10188 goto done;
10189 }
10190 p->mark = _mark;
10191 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10193 }
10194 _res = NULL;
10195 done:
10196 D(p->level--);
10197 return _res;
10198}
10199
10200// lambda_kwds: '**' lambda_param_no_default
10201static arg_ty
10202lambda_kwds_rule(Parser *p)
10203{
10204 D(p->level++);
10205 if (p->error_indicator) {
10206 D(p->level--);
10207 return NULL;
10208 }
10209 arg_ty _res = NULL;
10210 int _mark = p->mark;
10211 { // '**' lambda_param_no_default
10212 if (p->error_indicator) {
10213 D(p->level--);
10214 return NULL;
10215 }
10216 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10217 Token * _literal;
10218 arg_ty a;
10219 if (
10220 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10221 &&
10222 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10223 )
10224 {
10225 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10226 _res = a;
10227 if (_res == NULL && PyErr_Occurred()) {
10228 p->error_indicator = 1;
10229 D(p->level--);
10230 return NULL;
10231 }
10232 goto done;
10233 }
10234 p->mark = _mark;
10235 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10237 }
10238 _res = NULL;
10239 done:
10240 D(p->level--);
10241 return _res;
10242}
10243
10244// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10245static arg_ty
10246lambda_param_no_default_rule(Parser *p)
10247{
10248 D(p->level++);
10249 if (p->error_indicator) {
10250 D(p->level--);
10251 return NULL;
10252 }
10253 arg_ty _res = NULL;
10254 int _mark = p->mark;
10255 { // lambda_param ','
10256 if (p->error_indicator) {
10257 D(p->level--);
10258 return NULL;
10259 }
10260 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10261 Token * _literal;
10262 arg_ty a;
10263 if (
10264 (a = lambda_param_rule(p)) // lambda_param
10265 &&
10266 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10267 )
10268 {
10269 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10270 _res = a;
10271 if (_res == NULL && PyErr_Occurred()) {
10272 p->error_indicator = 1;
10273 D(p->level--);
10274 return NULL;
10275 }
10276 goto done;
10277 }
10278 p->mark = _mark;
10279 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10281 }
10282 { // lambda_param &':'
10283 if (p->error_indicator) {
10284 D(p->level--);
10285 return NULL;
10286 }
10287 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10288 arg_ty a;
10289 if (
10290 (a = lambda_param_rule(p)) // lambda_param
10291 &&
10292 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10293 )
10294 {
10295 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10296 _res = a;
10297 if (_res == NULL && PyErr_Occurred()) {
10298 p->error_indicator = 1;
10299 D(p->level--);
10300 return NULL;
10301 }
10302 goto done;
10303 }
10304 p->mark = _mark;
10305 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10307 }
10308 _res = NULL;
10309 done:
10310 D(p->level--);
10311 return _res;
10312}
10313
10314// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10315static NameDefaultPair*
10316lambda_param_with_default_rule(Parser *p)
10317{
10318 D(p->level++);
10319 if (p->error_indicator) {
10320 D(p->level--);
10321 return NULL;
10322 }
10323 NameDefaultPair* _res = NULL;
10324 int _mark = p->mark;
10325 { // lambda_param default ','
10326 if (p->error_indicator) {
10327 D(p->level--);
10328 return NULL;
10329 }
10330 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10331 Token * _literal;
10332 arg_ty a;
10333 expr_ty c;
10334 if (
10335 (a = lambda_param_rule(p)) // lambda_param
10336 &&
10337 (c = default_rule(p)) // default
10338 &&
10339 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10340 )
10341 {
10342 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10343 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10344 if (_res == NULL && PyErr_Occurred()) {
10345 p->error_indicator = 1;
10346 D(p->level--);
10347 return NULL;
10348 }
10349 goto done;
10350 }
10351 p->mark = _mark;
10352 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10354 }
10355 { // lambda_param default &':'
10356 if (p->error_indicator) {
10357 D(p->level--);
10358 return NULL;
10359 }
10360 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10361 arg_ty a;
10362 expr_ty c;
10363 if (
10364 (a = lambda_param_rule(p)) // lambda_param
10365 &&
10366 (c = default_rule(p)) // default
10367 &&
10368 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10369 )
10370 {
10371 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10372 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
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_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10383 }
10384 _res = NULL;
10385 done:
10386 D(p->level--);
10387 return _res;
10388}
10389
10390// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10391static NameDefaultPair*
10392lambda_param_maybe_default_rule(Parser *p)
10393{
10394 D(p->level++);
10395 if (p->error_indicator) {
10396 D(p->level--);
10397 return NULL;
10398 }
10399 NameDefaultPair* _res = NULL;
10400 int _mark = p->mark;
10401 { // lambda_param default? ','
10402 if (p->error_indicator) {
10403 D(p->level--);
10404 return NULL;
10405 }
10406 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10407 Token * _literal;
10408 arg_ty a;
10409 void *c;
10410 if (
10411 (a = lambda_param_rule(p)) // lambda_param
10412 &&
10413 (c = default_rule(p), 1) // default?
10414 &&
10415 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10416 )
10417 {
10418 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10419 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10420 if (_res == NULL && PyErr_Occurred()) {
10421 p->error_indicator = 1;
10422 D(p->level--);
10423 return NULL;
10424 }
10425 goto done;
10426 }
10427 p->mark = _mark;
10428 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10430 }
10431 { // lambda_param default? &':'
10432 if (p->error_indicator) {
10433 D(p->level--);
10434 return NULL;
10435 }
10436 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10437 arg_ty a;
10438 void *c;
10439 if (
10440 (a = lambda_param_rule(p)) // lambda_param
10441 &&
10442 (c = default_rule(p), 1) // default?
10443 &&
10444 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10445 )
10446 {
10447 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10448 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10449 if (_res == NULL && PyErr_Occurred()) {
10450 p->error_indicator = 1;
10451 D(p->level--);
10452 return NULL;
10453 }
10454 goto done;
10455 }
10456 p->mark = _mark;
10457 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10459 }
10460 _res = NULL;
10461 done:
10462 D(p->level--);
10463 return _res;
10464}
10465
10466// lambda_param: NAME
10467static arg_ty
10468lambda_param_rule(Parser *p)
10469{
10470 D(p->level++);
10471 if (p->error_indicator) {
10472 D(p->level--);
10473 return NULL;
10474 }
10475 arg_ty _res = NULL;
10476 int _mark = p->mark;
10477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10478 p->error_indicator = 1;
10479 D(p->level--);
10480 return NULL;
10481 }
10482 int _start_lineno = p->tokens[_mark]->lineno;
10483 UNUSED(_start_lineno); // Only used by EXTRA macro
10484 int _start_col_offset = p->tokens[_mark]->col_offset;
10485 UNUSED(_start_col_offset); // Only used by EXTRA macro
10486 { // NAME
10487 if (p->error_indicator) {
10488 D(p->level--);
10489 return NULL;
10490 }
10491 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10492 expr_ty a;
10493 if (
10494 (a = _PyPegen_name_token(p)) // NAME
10495 )
10496 {
10497 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10499 if (_token == NULL) {
10500 D(p->level--);
10501 return NULL;
10502 }
10503 int _end_lineno = _token->end_lineno;
10504 UNUSED(_end_lineno); // Only used by EXTRA macro
10505 int _end_col_offset = _token->end_col_offset;
10506 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010507 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010508 if (_res == NULL && PyErr_Occurred()) {
10509 p->error_indicator = 1;
10510 D(p->level--);
10511 return NULL;
10512 }
10513 goto done;
10514 }
10515 p->mark = _mark;
10516 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10518 }
10519 _res = NULL;
10520 done:
10521 D(p->level--);
10522 return _res;
10523}
10524
10525// disjunction: conjunction (('or' conjunction))+ | conjunction
10526static expr_ty
10527disjunction_rule(Parser *p)
10528{
10529 D(p->level++);
10530 if (p->error_indicator) {
10531 D(p->level--);
10532 return NULL;
10533 }
10534 expr_ty _res = NULL;
10535 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10536 D(p->level--);
10537 return _res;
10538 }
10539 int _mark = p->mark;
10540 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10541 p->error_indicator = 1;
10542 D(p->level--);
10543 return NULL;
10544 }
10545 int _start_lineno = p->tokens[_mark]->lineno;
10546 UNUSED(_start_lineno); // Only used by EXTRA macro
10547 int _start_col_offset = p->tokens[_mark]->col_offset;
10548 UNUSED(_start_col_offset); // Only used by EXTRA macro
10549 { // conjunction (('or' conjunction))+
10550 if (p->error_indicator) {
10551 D(p->level--);
10552 return NULL;
10553 }
10554 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10555 expr_ty a;
10556 asdl_seq * b;
10557 if (
10558 (a = conjunction_rule(p)) // conjunction
10559 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010560 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010561 )
10562 {
10563 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10564 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10565 if (_token == NULL) {
10566 D(p->level--);
10567 return NULL;
10568 }
10569 int _end_lineno = _token->end_lineno;
10570 UNUSED(_end_lineno); // Only used by EXTRA macro
10571 int _end_col_offset = _token->end_col_offset;
10572 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010573 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010574 if (_res == NULL && PyErr_Occurred()) {
10575 p->error_indicator = 1;
10576 D(p->level--);
10577 return NULL;
10578 }
10579 goto done;
10580 }
10581 p->mark = _mark;
10582 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10584 }
10585 { // conjunction
10586 if (p->error_indicator) {
10587 D(p->level--);
10588 return NULL;
10589 }
10590 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10591 expr_ty conjunction_var;
10592 if (
10593 (conjunction_var = conjunction_rule(p)) // conjunction
10594 )
10595 {
10596 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10597 _res = conjunction_var;
10598 goto done;
10599 }
10600 p->mark = _mark;
10601 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10603 }
10604 _res = NULL;
10605 done:
10606 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10607 D(p->level--);
10608 return _res;
10609}
10610
10611// conjunction: inversion (('and' inversion))+ | inversion
10612static expr_ty
10613conjunction_rule(Parser *p)
10614{
10615 D(p->level++);
10616 if (p->error_indicator) {
10617 D(p->level--);
10618 return NULL;
10619 }
10620 expr_ty _res = NULL;
10621 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10622 D(p->level--);
10623 return _res;
10624 }
10625 int _mark = p->mark;
10626 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10627 p->error_indicator = 1;
10628 D(p->level--);
10629 return NULL;
10630 }
10631 int _start_lineno = p->tokens[_mark]->lineno;
10632 UNUSED(_start_lineno); // Only used by EXTRA macro
10633 int _start_col_offset = p->tokens[_mark]->col_offset;
10634 UNUSED(_start_col_offset); // Only used by EXTRA macro
10635 { // inversion (('and' inversion))+
10636 if (p->error_indicator) {
10637 D(p->level--);
10638 return NULL;
10639 }
10640 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10641 expr_ty a;
10642 asdl_seq * b;
10643 if (
10644 (a = inversion_rule(p)) // inversion
10645 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010646 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010647 )
10648 {
10649 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10651 if (_token == NULL) {
10652 D(p->level--);
10653 return NULL;
10654 }
10655 int _end_lineno = _token->end_lineno;
10656 UNUSED(_end_lineno); // Only used by EXTRA macro
10657 int _end_col_offset = _token->end_col_offset;
10658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010659 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010660 if (_res == NULL && PyErr_Occurred()) {
10661 p->error_indicator = 1;
10662 D(p->level--);
10663 return NULL;
10664 }
10665 goto done;
10666 }
10667 p->mark = _mark;
10668 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10670 }
10671 { // inversion
10672 if (p->error_indicator) {
10673 D(p->level--);
10674 return NULL;
10675 }
10676 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10677 expr_ty inversion_var;
10678 if (
10679 (inversion_var = inversion_rule(p)) // inversion
10680 )
10681 {
10682 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10683 _res = inversion_var;
10684 goto done;
10685 }
10686 p->mark = _mark;
10687 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10689 }
10690 _res = NULL;
10691 done:
10692 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10693 D(p->level--);
10694 return _res;
10695}
10696
10697// inversion: 'not' inversion | comparison
10698static expr_ty
10699inversion_rule(Parser *p)
10700{
10701 D(p->level++);
10702 if (p->error_indicator) {
10703 D(p->level--);
10704 return NULL;
10705 }
10706 expr_ty _res = NULL;
10707 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10708 D(p->level--);
10709 return _res;
10710 }
10711 int _mark = p->mark;
10712 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10713 p->error_indicator = 1;
10714 D(p->level--);
10715 return NULL;
10716 }
10717 int _start_lineno = p->tokens[_mark]->lineno;
10718 UNUSED(_start_lineno); // Only used by EXTRA macro
10719 int _start_col_offset = p->tokens[_mark]->col_offset;
10720 UNUSED(_start_col_offset); // Only used by EXTRA macro
10721 { // 'not' inversion
10722 if (p->error_indicator) {
10723 D(p->level--);
10724 return NULL;
10725 }
10726 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10727 Token * _keyword;
10728 expr_ty a;
10729 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010730 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010731 &&
10732 (a = inversion_rule(p)) // inversion
10733 )
10734 {
10735 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10736 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10737 if (_token == NULL) {
10738 D(p->level--);
10739 return NULL;
10740 }
10741 int _end_lineno = _token->end_lineno;
10742 UNUSED(_end_lineno); // Only used by EXTRA macro
10743 int _end_col_offset = _token->end_col_offset;
10744 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010745 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010746 if (_res == NULL && PyErr_Occurred()) {
10747 p->error_indicator = 1;
10748 D(p->level--);
10749 return NULL;
10750 }
10751 goto done;
10752 }
10753 p->mark = _mark;
10754 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10756 }
10757 { // comparison
10758 if (p->error_indicator) {
10759 D(p->level--);
10760 return NULL;
10761 }
10762 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10763 expr_ty comparison_var;
10764 if (
10765 (comparison_var = comparison_rule(p)) // comparison
10766 )
10767 {
10768 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10769 _res = comparison_var;
10770 goto done;
10771 }
10772 p->mark = _mark;
10773 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10775 }
10776 _res = NULL;
10777 done:
10778 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10779 D(p->level--);
10780 return _res;
10781}
10782
10783// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10784static expr_ty
10785comparison_rule(Parser *p)
10786{
10787 D(p->level++);
10788 if (p->error_indicator) {
10789 D(p->level--);
10790 return NULL;
10791 }
10792 expr_ty _res = NULL;
10793 int _mark = p->mark;
10794 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10795 p->error_indicator = 1;
10796 D(p->level--);
10797 return NULL;
10798 }
10799 int _start_lineno = p->tokens[_mark]->lineno;
10800 UNUSED(_start_lineno); // Only used by EXTRA macro
10801 int _start_col_offset = p->tokens[_mark]->col_offset;
10802 UNUSED(_start_col_offset); // Only used by EXTRA macro
10803 { // bitwise_or compare_op_bitwise_or_pair+
10804 if (p->error_indicator) {
10805 D(p->level--);
10806 return NULL;
10807 }
10808 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10809 expr_ty a;
10810 asdl_seq * b;
10811 if (
10812 (a = bitwise_or_rule(p)) // bitwise_or
10813 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010814 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010815 )
10816 {
10817 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10819 if (_token == NULL) {
10820 D(p->level--);
10821 return NULL;
10822 }
10823 int _end_lineno = _token->end_lineno;
10824 UNUSED(_end_lineno); // Only used by EXTRA macro
10825 int _end_col_offset = _token->end_col_offset;
10826 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010827 _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 +010010828 if (_res == NULL && PyErr_Occurred()) {
10829 p->error_indicator = 1;
10830 D(p->level--);
10831 return NULL;
10832 }
10833 goto done;
10834 }
10835 p->mark = _mark;
10836 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10838 }
10839 { // bitwise_or
10840 if (p->error_indicator) {
10841 D(p->level--);
10842 return NULL;
10843 }
10844 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10845 expr_ty bitwise_or_var;
10846 if (
10847 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
10848 )
10849 {
10850 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10851 _res = bitwise_or_var;
10852 goto done;
10853 }
10854 p->mark = _mark;
10855 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
10857 }
10858 _res = NULL;
10859 done:
10860 D(p->level--);
10861 return _res;
10862}
10863
10864// compare_op_bitwise_or_pair:
10865// | eq_bitwise_or
10866// | noteq_bitwise_or
10867// | lte_bitwise_or
10868// | lt_bitwise_or
10869// | gte_bitwise_or
10870// | gt_bitwise_or
10871// | notin_bitwise_or
10872// | in_bitwise_or
10873// | isnot_bitwise_or
10874// | is_bitwise_or
10875static CmpopExprPair*
10876compare_op_bitwise_or_pair_rule(Parser *p)
10877{
10878 D(p->level++);
10879 if (p->error_indicator) {
10880 D(p->level--);
10881 return NULL;
10882 }
10883 CmpopExprPair* _res = NULL;
10884 int _mark = p->mark;
10885 { // eq_bitwise_or
10886 if (p->error_indicator) {
10887 D(p->level--);
10888 return NULL;
10889 }
10890 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10891 CmpopExprPair* eq_bitwise_or_var;
10892 if (
10893 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
10894 )
10895 {
10896 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10897 _res = eq_bitwise_or_var;
10898 goto done;
10899 }
10900 p->mark = _mark;
10901 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
10903 }
10904 { // noteq_bitwise_or
10905 if (p->error_indicator) {
10906 D(p->level--);
10907 return NULL;
10908 }
10909 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10910 CmpopExprPair* noteq_bitwise_or_var;
10911 if (
10912 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
10913 )
10914 {
10915 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10916 _res = noteq_bitwise_or_var;
10917 goto done;
10918 }
10919 p->mark = _mark;
10920 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
10922 }
10923 { // lte_bitwise_or
10924 if (p->error_indicator) {
10925 D(p->level--);
10926 return NULL;
10927 }
10928 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10929 CmpopExprPair* lte_bitwise_or_var;
10930 if (
10931 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
10932 )
10933 {
10934 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10935 _res = lte_bitwise_or_var;
10936 goto done;
10937 }
10938 p->mark = _mark;
10939 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
10941 }
10942 { // lt_bitwise_or
10943 if (p->error_indicator) {
10944 D(p->level--);
10945 return NULL;
10946 }
10947 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10948 CmpopExprPair* lt_bitwise_or_var;
10949 if (
10950 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
10951 )
10952 {
10953 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10954 _res = lt_bitwise_or_var;
10955 goto done;
10956 }
10957 p->mark = _mark;
10958 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
10960 }
10961 { // gte_bitwise_or
10962 if (p->error_indicator) {
10963 D(p->level--);
10964 return NULL;
10965 }
10966 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10967 CmpopExprPair* gte_bitwise_or_var;
10968 if (
10969 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
10970 )
10971 {
10972 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10973 _res = gte_bitwise_or_var;
10974 goto done;
10975 }
10976 p->mark = _mark;
10977 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
10979 }
10980 { // gt_bitwise_or
10981 if (p->error_indicator) {
10982 D(p->level--);
10983 return NULL;
10984 }
10985 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10986 CmpopExprPair* gt_bitwise_or_var;
10987 if (
10988 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
10989 )
10990 {
10991 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10992 _res = gt_bitwise_or_var;
10993 goto done;
10994 }
10995 p->mark = _mark;
10996 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
10998 }
10999 { // notin_bitwise_or
11000 if (p->error_indicator) {
11001 D(p->level--);
11002 return NULL;
11003 }
11004 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11005 CmpopExprPair* notin_bitwise_or_var;
11006 if (
11007 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11008 )
11009 {
11010 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11011 _res = notin_bitwise_or_var;
11012 goto done;
11013 }
11014 p->mark = _mark;
11015 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11017 }
11018 { // in_bitwise_or
11019 if (p->error_indicator) {
11020 D(p->level--);
11021 return NULL;
11022 }
11023 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11024 CmpopExprPair* in_bitwise_or_var;
11025 if (
11026 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11027 )
11028 {
11029 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11030 _res = in_bitwise_or_var;
11031 goto done;
11032 }
11033 p->mark = _mark;
11034 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11036 }
11037 { // isnot_bitwise_or
11038 if (p->error_indicator) {
11039 D(p->level--);
11040 return NULL;
11041 }
11042 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11043 CmpopExprPair* isnot_bitwise_or_var;
11044 if (
11045 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11046 )
11047 {
11048 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11049 _res = isnot_bitwise_or_var;
11050 goto done;
11051 }
11052 p->mark = _mark;
11053 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11055 }
11056 { // is_bitwise_or
11057 if (p->error_indicator) {
11058 D(p->level--);
11059 return NULL;
11060 }
11061 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11062 CmpopExprPair* is_bitwise_or_var;
11063 if (
11064 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11065 )
11066 {
11067 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11068 _res = is_bitwise_or_var;
11069 goto done;
11070 }
11071 p->mark = _mark;
11072 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11074 }
11075 _res = NULL;
11076 done:
11077 D(p->level--);
11078 return _res;
11079}
11080
11081// eq_bitwise_or: '==' bitwise_or
11082static CmpopExprPair*
11083eq_bitwise_or_rule(Parser *p)
11084{
11085 D(p->level++);
11086 if (p->error_indicator) {
11087 D(p->level--);
11088 return NULL;
11089 }
11090 CmpopExprPair* _res = NULL;
11091 int _mark = p->mark;
11092 { // '==' bitwise_or
11093 if (p->error_indicator) {
11094 D(p->level--);
11095 return NULL;
11096 }
11097 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11098 Token * _literal;
11099 expr_ty a;
11100 if (
11101 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11102 &&
11103 (a = bitwise_or_rule(p)) // bitwise_or
11104 )
11105 {
11106 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11107 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11108 if (_res == NULL && PyErr_Occurred()) {
11109 p->error_indicator = 1;
11110 D(p->level--);
11111 return NULL;
11112 }
11113 goto done;
11114 }
11115 p->mark = _mark;
11116 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11118 }
11119 _res = NULL;
11120 done:
11121 D(p->level--);
11122 return _res;
11123}
11124
11125// noteq_bitwise_or: ('!=') bitwise_or
11126static CmpopExprPair*
11127noteq_bitwise_or_rule(Parser *p)
11128{
11129 D(p->level++);
11130 if (p->error_indicator) {
11131 D(p->level--);
11132 return NULL;
11133 }
11134 CmpopExprPair* _res = NULL;
11135 int _mark = p->mark;
11136 { // ('!=') bitwise_or
11137 if (p->error_indicator) {
11138 D(p->level--);
11139 return NULL;
11140 }
11141 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 -080011142 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011143 expr_ty a;
11144 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011145 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011146 &&
11147 (a = bitwise_or_rule(p)) // bitwise_or
11148 )
11149 {
11150 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11151 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11152 if (_res == NULL && PyErr_Occurred()) {
11153 p->error_indicator = 1;
11154 D(p->level--);
11155 return NULL;
11156 }
11157 goto done;
11158 }
11159 p->mark = _mark;
11160 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11162 }
11163 _res = NULL;
11164 done:
11165 D(p->level--);
11166 return _res;
11167}
11168
11169// lte_bitwise_or: '<=' bitwise_or
11170static CmpopExprPair*
11171lte_bitwise_or_rule(Parser *p)
11172{
11173 D(p->level++);
11174 if (p->error_indicator) {
11175 D(p->level--);
11176 return NULL;
11177 }
11178 CmpopExprPair* _res = NULL;
11179 int _mark = p->mark;
11180 { // '<=' bitwise_or
11181 if (p->error_indicator) {
11182 D(p->level--);
11183 return NULL;
11184 }
11185 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11186 Token * _literal;
11187 expr_ty a;
11188 if (
11189 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11190 &&
11191 (a = bitwise_or_rule(p)) // bitwise_or
11192 )
11193 {
11194 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11195 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11196 if (_res == NULL && PyErr_Occurred()) {
11197 p->error_indicator = 1;
11198 D(p->level--);
11199 return NULL;
11200 }
11201 goto done;
11202 }
11203 p->mark = _mark;
11204 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11206 }
11207 _res = NULL;
11208 done:
11209 D(p->level--);
11210 return _res;
11211}
11212
11213// lt_bitwise_or: '<' bitwise_or
11214static CmpopExprPair*
11215lt_bitwise_or_rule(Parser *p)
11216{
11217 D(p->level++);
11218 if (p->error_indicator) {
11219 D(p->level--);
11220 return NULL;
11221 }
11222 CmpopExprPair* _res = NULL;
11223 int _mark = p->mark;
11224 { // '<' bitwise_or
11225 if (p->error_indicator) {
11226 D(p->level--);
11227 return NULL;
11228 }
11229 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11230 Token * _literal;
11231 expr_ty a;
11232 if (
11233 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11234 &&
11235 (a = bitwise_or_rule(p)) // bitwise_or
11236 )
11237 {
11238 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11239 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11240 if (_res == NULL && PyErr_Occurred()) {
11241 p->error_indicator = 1;
11242 D(p->level--);
11243 return NULL;
11244 }
11245 goto done;
11246 }
11247 p->mark = _mark;
11248 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11250 }
11251 _res = NULL;
11252 done:
11253 D(p->level--);
11254 return _res;
11255}
11256
11257// gte_bitwise_or: '>=' bitwise_or
11258static CmpopExprPair*
11259gte_bitwise_or_rule(Parser *p)
11260{
11261 D(p->level++);
11262 if (p->error_indicator) {
11263 D(p->level--);
11264 return NULL;
11265 }
11266 CmpopExprPair* _res = NULL;
11267 int _mark = p->mark;
11268 { // '>=' bitwise_or
11269 if (p->error_indicator) {
11270 D(p->level--);
11271 return NULL;
11272 }
11273 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11274 Token * _literal;
11275 expr_ty a;
11276 if (
11277 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11278 &&
11279 (a = bitwise_or_rule(p)) // bitwise_or
11280 )
11281 {
11282 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11283 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11284 if (_res == NULL && PyErr_Occurred()) {
11285 p->error_indicator = 1;
11286 D(p->level--);
11287 return NULL;
11288 }
11289 goto done;
11290 }
11291 p->mark = _mark;
11292 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11294 }
11295 _res = NULL;
11296 done:
11297 D(p->level--);
11298 return _res;
11299}
11300
11301// gt_bitwise_or: '>' bitwise_or
11302static CmpopExprPair*
11303gt_bitwise_or_rule(Parser *p)
11304{
11305 D(p->level++);
11306 if (p->error_indicator) {
11307 D(p->level--);
11308 return NULL;
11309 }
11310 CmpopExprPair* _res = NULL;
11311 int _mark = p->mark;
11312 { // '>' bitwise_or
11313 if (p->error_indicator) {
11314 D(p->level--);
11315 return NULL;
11316 }
11317 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11318 Token * _literal;
11319 expr_ty a;
11320 if (
11321 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11322 &&
11323 (a = bitwise_or_rule(p)) // bitwise_or
11324 )
11325 {
11326 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11327 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11328 if (_res == NULL && PyErr_Occurred()) {
11329 p->error_indicator = 1;
11330 D(p->level--);
11331 return NULL;
11332 }
11333 goto done;
11334 }
11335 p->mark = _mark;
11336 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11338 }
11339 _res = NULL;
11340 done:
11341 D(p->level--);
11342 return _res;
11343}
11344
11345// notin_bitwise_or: 'not' 'in' bitwise_or
11346static CmpopExprPair*
11347notin_bitwise_or_rule(Parser *p)
11348{
11349 D(p->level++);
11350 if (p->error_indicator) {
11351 D(p->level--);
11352 return NULL;
11353 }
11354 CmpopExprPair* _res = NULL;
11355 int _mark = p->mark;
11356 { // 'not' 'in' bitwise_or
11357 if (p->error_indicator) {
11358 D(p->level--);
11359 return NULL;
11360 }
11361 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11362 Token * _keyword;
11363 Token * _keyword_1;
11364 expr_ty a;
11365 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011366 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011367 &&
11368 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11369 &&
11370 (a = bitwise_or_rule(p)) // bitwise_or
11371 )
11372 {
11373 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11374 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11375 if (_res == NULL && PyErr_Occurred()) {
11376 p->error_indicator = 1;
11377 D(p->level--);
11378 return NULL;
11379 }
11380 goto done;
11381 }
11382 p->mark = _mark;
11383 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11385 }
11386 _res = NULL;
11387 done:
11388 D(p->level--);
11389 return _res;
11390}
11391
11392// in_bitwise_or: 'in' bitwise_or
11393static CmpopExprPair*
11394in_bitwise_or_rule(Parser *p)
11395{
11396 D(p->level++);
11397 if (p->error_indicator) {
11398 D(p->level--);
11399 return NULL;
11400 }
11401 CmpopExprPair* _res = NULL;
11402 int _mark = p->mark;
11403 { // 'in' bitwise_or
11404 if (p->error_indicator) {
11405 D(p->level--);
11406 return NULL;
11407 }
11408 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11409 Token * _keyword;
11410 expr_ty a;
11411 if (
11412 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11413 &&
11414 (a = bitwise_or_rule(p)) // bitwise_or
11415 )
11416 {
11417 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11418 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11419 if (_res == NULL && PyErr_Occurred()) {
11420 p->error_indicator = 1;
11421 D(p->level--);
11422 return NULL;
11423 }
11424 goto done;
11425 }
11426 p->mark = _mark;
11427 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11429 }
11430 _res = NULL;
11431 done:
11432 D(p->level--);
11433 return _res;
11434}
11435
11436// isnot_bitwise_or: 'is' 'not' bitwise_or
11437static CmpopExprPair*
11438isnot_bitwise_or_rule(Parser *p)
11439{
11440 D(p->level++);
11441 if (p->error_indicator) {
11442 D(p->level--);
11443 return NULL;
11444 }
11445 CmpopExprPair* _res = NULL;
11446 int _mark = p->mark;
11447 { // 'is' 'not' bitwise_or
11448 if (p->error_indicator) {
11449 D(p->level--);
11450 return NULL;
11451 }
11452 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11453 Token * _keyword;
11454 Token * _keyword_1;
11455 expr_ty a;
11456 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011457 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011458 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011459 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011460 &&
11461 (a = bitwise_or_rule(p)) // bitwise_or
11462 )
11463 {
11464 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11465 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11466 if (_res == NULL && PyErr_Occurred()) {
11467 p->error_indicator = 1;
11468 D(p->level--);
11469 return NULL;
11470 }
11471 goto done;
11472 }
11473 p->mark = _mark;
11474 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11476 }
11477 _res = NULL;
11478 done:
11479 D(p->level--);
11480 return _res;
11481}
11482
11483// is_bitwise_or: 'is' bitwise_or
11484static CmpopExprPair*
11485is_bitwise_or_rule(Parser *p)
11486{
11487 D(p->level++);
11488 if (p->error_indicator) {
11489 D(p->level--);
11490 return NULL;
11491 }
11492 CmpopExprPair* _res = NULL;
11493 int _mark = p->mark;
11494 { // 'is' bitwise_or
11495 if (p->error_indicator) {
11496 D(p->level--);
11497 return NULL;
11498 }
11499 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11500 Token * _keyword;
11501 expr_ty a;
11502 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011503 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011504 &&
11505 (a = bitwise_or_rule(p)) // bitwise_or
11506 )
11507 {
11508 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11509 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11510 if (_res == NULL && PyErr_Occurred()) {
11511 p->error_indicator = 1;
11512 D(p->level--);
11513 return NULL;
11514 }
11515 goto done;
11516 }
11517 p->mark = _mark;
11518 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11520 }
11521 _res = NULL;
11522 done:
11523 D(p->level--);
11524 return _res;
11525}
11526
11527// Left-recursive
11528// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11529static expr_ty bitwise_or_raw(Parser *);
11530static expr_ty
11531bitwise_or_rule(Parser *p)
11532{
11533 D(p->level++);
11534 expr_ty _res = NULL;
11535 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11536 D(p->level--);
11537 return _res;
11538 }
11539 int _mark = p->mark;
11540 int _resmark = p->mark;
11541 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011542 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11543 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011544 D(p->level--);
11545 return _res;
11546 }
11547 p->mark = _mark;
11548 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011549 if (p->error_indicator)
11550 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011551 if (_raw == NULL || p->mark <= _resmark)
11552 break;
11553 _resmark = p->mark;
11554 _res = _raw;
11555 }
11556 p->mark = _resmark;
11557 D(p->level--);
11558 return _res;
11559}
11560static expr_ty
11561bitwise_or_raw(Parser *p)
11562{
11563 D(p->level++);
11564 if (p->error_indicator) {
11565 D(p->level--);
11566 return NULL;
11567 }
11568 expr_ty _res = NULL;
11569 int _mark = p->mark;
11570 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11571 p->error_indicator = 1;
11572 D(p->level--);
11573 return NULL;
11574 }
11575 int _start_lineno = p->tokens[_mark]->lineno;
11576 UNUSED(_start_lineno); // Only used by EXTRA macro
11577 int _start_col_offset = p->tokens[_mark]->col_offset;
11578 UNUSED(_start_col_offset); // Only used by EXTRA macro
11579 { // bitwise_or '|' bitwise_xor
11580 if (p->error_indicator) {
11581 D(p->level--);
11582 return NULL;
11583 }
11584 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11585 Token * _literal;
11586 expr_ty a;
11587 expr_ty b;
11588 if (
11589 (a = bitwise_or_rule(p)) // bitwise_or
11590 &&
11591 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11592 &&
11593 (b = bitwise_xor_rule(p)) // bitwise_xor
11594 )
11595 {
11596 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11598 if (_token == NULL) {
11599 D(p->level--);
11600 return NULL;
11601 }
11602 int _end_lineno = _token->end_lineno;
11603 UNUSED(_end_lineno); // Only used by EXTRA macro
11604 int _end_col_offset = _token->end_col_offset;
11605 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011606 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011607 if (_res == NULL && PyErr_Occurred()) {
11608 p->error_indicator = 1;
11609 D(p->level--);
11610 return NULL;
11611 }
11612 goto done;
11613 }
11614 p->mark = _mark;
11615 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11617 }
11618 { // bitwise_xor
11619 if (p->error_indicator) {
11620 D(p->level--);
11621 return NULL;
11622 }
11623 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11624 expr_ty bitwise_xor_var;
11625 if (
11626 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11627 )
11628 {
11629 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11630 _res = bitwise_xor_var;
11631 goto done;
11632 }
11633 p->mark = _mark;
11634 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11636 }
11637 _res = NULL;
11638 done:
11639 D(p->level--);
11640 return _res;
11641}
11642
11643// Left-recursive
11644// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11645static expr_ty bitwise_xor_raw(Parser *);
11646static expr_ty
11647bitwise_xor_rule(Parser *p)
11648{
11649 D(p->level++);
11650 expr_ty _res = NULL;
11651 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11652 D(p->level--);
11653 return _res;
11654 }
11655 int _mark = p->mark;
11656 int _resmark = p->mark;
11657 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011658 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11659 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011660 D(p->level--);
11661 return _res;
11662 }
11663 p->mark = _mark;
11664 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011665 if (p->error_indicator)
11666 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011667 if (_raw == NULL || p->mark <= _resmark)
11668 break;
11669 _resmark = p->mark;
11670 _res = _raw;
11671 }
11672 p->mark = _resmark;
11673 D(p->level--);
11674 return _res;
11675}
11676static expr_ty
11677bitwise_xor_raw(Parser *p)
11678{
11679 D(p->level++);
11680 if (p->error_indicator) {
11681 D(p->level--);
11682 return NULL;
11683 }
11684 expr_ty _res = NULL;
11685 int _mark = p->mark;
11686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11687 p->error_indicator = 1;
11688 D(p->level--);
11689 return NULL;
11690 }
11691 int _start_lineno = p->tokens[_mark]->lineno;
11692 UNUSED(_start_lineno); // Only used by EXTRA macro
11693 int _start_col_offset = p->tokens[_mark]->col_offset;
11694 UNUSED(_start_col_offset); // Only used by EXTRA macro
11695 { // bitwise_xor '^' bitwise_and
11696 if (p->error_indicator) {
11697 D(p->level--);
11698 return NULL;
11699 }
11700 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11701 Token * _literal;
11702 expr_ty a;
11703 expr_ty b;
11704 if (
11705 (a = bitwise_xor_rule(p)) // bitwise_xor
11706 &&
11707 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11708 &&
11709 (b = bitwise_and_rule(p)) // bitwise_and
11710 )
11711 {
11712 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11713 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11714 if (_token == NULL) {
11715 D(p->level--);
11716 return NULL;
11717 }
11718 int _end_lineno = _token->end_lineno;
11719 UNUSED(_end_lineno); // Only used by EXTRA macro
11720 int _end_col_offset = _token->end_col_offset;
11721 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011722 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011723 if (_res == NULL && PyErr_Occurred()) {
11724 p->error_indicator = 1;
11725 D(p->level--);
11726 return NULL;
11727 }
11728 goto done;
11729 }
11730 p->mark = _mark;
11731 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11733 }
11734 { // bitwise_and
11735 if (p->error_indicator) {
11736 D(p->level--);
11737 return NULL;
11738 }
11739 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11740 expr_ty bitwise_and_var;
11741 if (
11742 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11743 )
11744 {
11745 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11746 _res = bitwise_and_var;
11747 goto done;
11748 }
11749 p->mark = _mark;
11750 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11752 }
11753 _res = NULL;
11754 done:
11755 D(p->level--);
11756 return _res;
11757}
11758
11759// Left-recursive
11760// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11761static expr_ty bitwise_and_raw(Parser *);
11762static expr_ty
11763bitwise_and_rule(Parser *p)
11764{
11765 D(p->level++);
11766 expr_ty _res = NULL;
11767 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11768 D(p->level--);
11769 return _res;
11770 }
11771 int _mark = p->mark;
11772 int _resmark = p->mark;
11773 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011774 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11775 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011776 D(p->level--);
11777 return _res;
11778 }
11779 p->mark = _mark;
11780 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011781 if (p->error_indicator)
11782 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011783 if (_raw == NULL || p->mark <= _resmark)
11784 break;
11785 _resmark = p->mark;
11786 _res = _raw;
11787 }
11788 p->mark = _resmark;
11789 D(p->level--);
11790 return _res;
11791}
11792static expr_ty
11793bitwise_and_raw(Parser *p)
11794{
11795 D(p->level++);
11796 if (p->error_indicator) {
11797 D(p->level--);
11798 return NULL;
11799 }
11800 expr_ty _res = NULL;
11801 int _mark = p->mark;
11802 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11803 p->error_indicator = 1;
11804 D(p->level--);
11805 return NULL;
11806 }
11807 int _start_lineno = p->tokens[_mark]->lineno;
11808 UNUSED(_start_lineno); // Only used by EXTRA macro
11809 int _start_col_offset = p->tokens[_mark]->col_offset;
11810 UNUSED(_start_col_offset); // Only used by EXTRA macro
11811 { // bitwise_and '&' shift_expr
11812 if (p->error_indicator) {
11813 D(p->level--);
11814 return NULL;
11815 }
11816 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11817 Token * _literal;
11818 expr_ty a;
11819 expr_ty b;
11820 if (
11821 (a = bitwise_and_rule(p)) // bitwise_and
11822 &&
11823 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
11824 &&
11825 (b = shift_expr_rule(p)) // shift_expr
11826 )
11827 {
11828 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11829 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11830 if (_token == NULL) {
11831 D(p->level--);
11832 return NULL;
11833 }
11834 int _end_lineno = _token->end_lineno;
11835 UNUSED(_end_lineno); // Only used by EXTRA macro
11836 int _end_col_offset = _token->end_col_offset;
11837 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011838 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011839 if (_res == NULL && PyErr_Occurred()) {
11840 p->error_indicator = 1;
11841 D(p->level--);
11842 return NULL;
11843 }
11844 goto done;
11845 }
11846 p->mark = _mark;
11847 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
11849 }
11850 { // shift_expr
11851 if (p->error_indicator) {
11852 D(p->level--);
11853 return NULL;
11854 }
11855 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11856 expr_ty shift_expr_var;
11857 if (
11858 (shift_expr_var = shift_expr_rule(p)) // shift_expr
11859 )
11860 {
11861 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11862 _res = shift_expr_var;
11863 goto done;
11864 }
11865 p->mark = _mark;
11866 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
11868 }
11869 _res = NULL;
11870 done:
11871 D(p->level--);
11872 return _res;
11873}
11874
11875// Left-recursive
11876// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
11877static expr_ty shift_expr_raw(Parser *);
11878static expr_ty
11879shift_expr_rule(Parser *p)
11880{
11881 D(p->level++);
11882 expr_ty _res = NULL;
11883 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
11884 D(p->level--);
11885 return _res;
11886 }
11887 int _mark = p->mark;
11888 int _resmark = p->mark;
11889 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011890 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
11891 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011892 D(p->level--);
11893 return _res;
11894 }
11895 p->mark = _mark;
11896 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011897 if (p->error_indicator)
11898 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011899 if (_raw == NULL || p->mark <= _resmark)
11900 break;
11901 _resmark = p->mark;
11902 _res = _raw;
11903 }
11904 p->mark = _resmark;
11905 D(p->level--);
11906 return _res;
11907}
11908static expr_ty
11909shift_expr_raw(Parser *p)
11910{
11911 D(p->level++);
11912 if (p->error_indicator) {
11913 D(p->level--);
11914 return NULL;
11915 }
11916 expr_ty _res = NULL;
11917 int _mark = p->mark;
11918 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11919 p->error_indicator = 1;
11920 D(p->level--);
11921 return NULL;
11922 }
11923 int _start_lineno = p->tokens[_mark]->lineno;
11924 UNUSED(_start_lineno); // Only used by EXTRA macro
11925 int _start_col_offset = p->tokens[_mark]->col_offset;
11926 UNUSED(_start_col_offset); // Only used by EXTRA macro
11927 { // shift_expr '<<' sum
11928 if (p->error_indicator) {
11929 D(p->level--);
11930 return NULL;
11931 }
11932 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11933 Token * _literal;
11934 expr_ty a;
11935 expr_ty b;
11936 if (
11937 (a = shift_expr_rule(p)) // shift_expr
11938 &&
11939 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
11940 &&
11941 (b = sum_rule(p)) // sum
11942 )
11943 {
11944 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11946 if (_token == NULL) {
11947 D(p->level--);
11948 return NULL;
11949 }
11950 int _end_lineno = _token->end_lineno;
11951 UNUSED(_end_lineno); // Only used by EXTRA macro
11952 int _end_col_offset = _token->end_col_offset;
11953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011954 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011955 if (_res == NULL && PyErr_Occurred()) {
11956 p->error_indicator = 1;
11957 D(p->level--);
11958 return NULL;
11959 }
11960 goto done;
11961 }
11962 p->mark = _mark;
11963 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
11965 }
11966 { // shift_expr '>>' sum
11967 if (p->error_indicator) {
11968 D(p->level--);
11969 return NULL;
11970 }
11971 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11972 Token * _literal;
11973 expr_ty a;
11974 expr_ty b;
11975 if (
11976 (a = shift_expr_rule(p)) // shift_expr
11977 &&
11978 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
11979 &&
11980 (b = sum_rule(p)) // sum
11981 )
11982 {
11983 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11984 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11985 if (_token == NULL) {
11986 D(p->level--);
11987 return NULL;
11988 }
11989 int _end_lineno = _token->end_lineno;
11990 UNUSED(_end_lineno); // Only used by EXTRA macro
11991 int _end_col_offset = _token->end_col_offset;
11992 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011993 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011994 if (_res == NULL && PyErr_Occurred()) {
11995 p->error_indicator = 1;
11996 D(p->level--);
11997 return NULL;
11998 }
11999 goto done;
12000 }
12001 p->mark = _mark;
12002 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12004 }
12005 { // sum
12006 if (p->error_indicator) {
12007 D(p->level--);
12008 return NULL;
12009 }
12010 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12011 expr_ty sum_var;
12012 if (
12013 (sum_var = sum_rule(p)) // sum
12014 )
12015 {
12016 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12017 _res = sum_var;
12018 goto done;
12019 }
12020 p->mark = _mark;
12021 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12023 }
12024 _res = NULL;
12025 done:
12026 D(p->level--);
12027 return _res;
12028}
12029
12030// Left-recursive
12031// sum: sum '+' term | sum '-' term | term
12032static expr_ty sum_raw(Parser *);
12033static expr_ty
12034sum_rule(Parser *p)
12035{
12036 D(p->level++);
12037 expr_ty _res = NULL;
12038 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12039 D(p->level--);
12040 return _res;
12041 }
12042 int _mark = p->mark;
12043 int _resmark = p->mark;
12044 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012045 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12046 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012047 D(p->level--);
12048 return _res;
12049 }
12050 p->mark = _mark;
12051 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012052 if (p->error_indicator)
12053 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012054 if (_raw == NULL || p->mark <= _resmark)
12055 break;
12056 _resmark = p->mark;
12057 _res = _raw;
12058 }
12059 p->mark = _resmark;
12060 D(p->level--);
12061 return _res;
12062}
12063static expr_ty
12064sum_raw(Parser *p)
12065{
12066 D(p->level++);
12067 if (p->error_indicator) {
12068 D(p->level--);
12069 return NULL;
12070 }
12071 expr_ty _res = NULL;
12072 int _mark = p->mark;
12073 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12074 p->error_indicator = 1;
12075 D(p->level--);
12076 return NULL;
12077 }
12078 int _start_lineno = p->tokens[_mark]->lineno;
12079 UNUSED(_start_lineno); // Only used by EXTRA macro
12080 int _start_col_offset = p->tokens[_mark]->col_offset;
12081 UNUSED(_start_col_offset); // Only used by EXTRA macro
12082 { // sum '+' term
12083 if (p->error_indicator) {
12084 D(p->level--);
12085 return NULL;
12086 }
12087 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12088 Token * _literal;
12089 expr_ty a;
12090 expr_ty b;
12091 if (
12092 (a = sum_rule(p)) // sum
12093 &&
12094 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12095 &&
12096 (b = term_rule(p)) // term
12097 )
12098 {
12099 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12100 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12101 if (_token == NULL) {
12102 D(p->level--);
12103 return NULL;
12104 }
12105 int _end_lineno = _token->end_lineno;
12106 UNUSED(_end_lineno); // Only used by EXTRA macro
12107 int _end_col_offset = _token->end_col_offset;
12108 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012109 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012110 if (_res == NULL && PyErr_Occurred()) {
12111 p->error_indicator = 1;
12112 D(p->level--);
12113 return NULL;
12114 }
12115 goto done;
12116 }
12117 p->mark = _mark;
12118 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12120 }
12121 { // sum '-' term
12122 if (p->error_indicator) {
12123 D(p->level--);
12124 return NULL;
12125 }
12126 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12127 Token * _literal;
12128 expr_ty a;
12129 expr_ty b;
12130 if (
12131 (a = sum_rule(p)) // sum
12132 &&
12133 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12134 &&
12135 (b = term_rule(p)) // term
12136 )
12137 {
12138 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12140 if (_token == NULL) {
12141 D(p->level--);
12142 return NULL;
12143 }
12144 int _end_lineno = _token->end_lineno;
12145 UNUSED(_end_lineno); // Only used by EXTRA macro
12146 int _end_col_offset = _token->end_col_offset;
12147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012148 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012149 if (_res == NULL && PyErr_Occurred()) {
12150 p->error_indicator = 1;
12151 D(p->level--);
12152 return NULL;
12153 }
12154 goto done;
12155 }
12156 p->mark = _mark;
12157 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12159 }
12160 { // term
12161 if (p->error_indicator) {
12162 D(p->level--);
12163 return NULL;
12164 }
12165 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12166 expr_ty term_var;
12167 if (
12168 (term_var = term_rule(p)) // term
12169 )
12170 {
12171 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12172 _res = term_var;
12173 goto done;
12174 }
12175 p->mark = _mark;
12176 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12178 }
12179 _res = NULL;
12180 done:
12181 D(p->level--);
12182 return _res;
12183}
12184
12185// Left-recursive
12186// term:
12187// | term '*' factor
12188// | term '/' factor
12189// | term '//' factor
12190// | term '%' factor
12191// | term '@' factor
12192// | factor
12193static expr_ty term_raw(Parser *);
12194static expr_ty
12195term_rule(Parser *p)
12196{
12197 D(p->level++);
12198 expr_ty _res = NULL;
12199 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12200 D(p->level--);
12201 return _res;
12202 }
12203 int _mark = p->mark;
12204 int _resmark = p->mark;
12205 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012206 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12207 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012208 D(p->level--);
12209 return _res;
12210 }
12211 p->mark = _mark;
12212 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012213 if (p->error_indicator)
12214 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012215 if (_raw == NULL || p->mark <= _resmark)
12216 break;
12217 _resmark = p->mark;
12218 _res = _raw;
12219 }
12220 p->mark = _resmark;
12221 D(p->level--);
12222 return _res;
12223}
12224static expr_ty
12225term_raw(Parser *p)
12226{
12227 D(p->level++);
12228 if (p->error_indicator) {
12229 D(p->level--);
12230 return NULL;
12231 }
12232 expr_ty _res = NULL;
12233 int _mark = p->mark;
12234 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12235 p->error_indicator = 1;
12236 D(p->level--);
12237 return NULL;
12238 }
12239 int _start_lineno = p->tokens[_mark]->lineno;
12240 UNUSED(_start_lineno); // Only used by EXTRA macro
12241 int _start_col_offset = p->tokens[_mark]->col_offset;
12242 UNUSED(_start_col_offset); // Only used by EXTRA macro
12243 { // term '*' factor
12244 if (p->error_indicator) {
12245 D(p->level--);
12246 return NULL;
12247 }
12248 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12249 Token * _literal;
12250 expr_ty a;
12251 expr_ty b;
12252 if (
12253 (a = term_rule(p)) // term
12254 &&
12255 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12256 &&
12257 (b = factor_rule(p)) // factor
12258 )
12259 {
12260 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12262 if (_token == NULL) {
12263 D(p->level--);
12264 return NULL;
12265 }
12266 int _end_lineno = _token->end_lineno;
12267 UNUSED(_end_lineno); // Only used by EXTRA macro
12268 int _end_col_offset = _token->end_col_offset;
12269 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012270 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012271 if (_res == NULL && PyErr_Occurred()) {
12272 p->error_indicator = 1;
12273 D(p->level--);
12274 return NULL;
12275 }
12276 goto done;
12277 }
12278 p->mark = _mark;
12279 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12281 }
12282 { // term '/' factor
12283 if (p->error_indicator) {
12284 D(p->level--);
12285 return NULL;
12286 }
12287 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12288 Token * _literal;
12289 expr_ty a;
12290 expr_ty b;
12291 if (
12292 (a = term_rule(p)) // term
12293 &&
12294 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12295 &&
12296 (b = factor_rule(p)) // factor
12297 )
12298 {
12299 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12300 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12301 if (_token == NULL) {
12302 D(p->level--);
12303 return NULL;
12304 }
12305 int _end_lineno = _token->end_lineno;
12306 UNUSED(_end_lineno); // Only used by EXTRA macro
12307 int _end_col_offset = _token->end_col_offset;
12308 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012309 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012310 if (_res == NULL && PyErr_Occurred()) {
12311 p->error_indicator = 1;
12312 D(p->level--);
12313 return NULL;
12314 }
12315 goto done;
12316 }
12317 p->mark = _mark;
12318 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12320 }
12321 { // term '//' factor
12322 if (p->error_indicator) {
12323 D(p->level--);
12324 return NULL;
12325 }
12326 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12327 Token * _literal;
12328 expr_ty a;
12329 expr_ty b;
12330 if (
12331 (a = term_rule(p)) // term
12332 &&
12333 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12334 &&
12335 (b = factor_rule(p)) // factor
12336 )
12337 {
12338 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12340 if (_token == NULL) {
12341 D(p->level--);
12342 return NULL;
12343 }
12344 int _end_lineno = _token->end_lineno;
12345 UNUSED(_end_lineno); // Only used by EXTRA macro
12346 int _end_col_offset = _token->end_col_offset;
12347 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012348 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012349 if (_res == NULL && PyErr_Occurred()) {
12350 p->error_indicator = 1;
12351 D(p->level--);
12352 return NULL;
12353 }
12354 goto done;
12355 }
12356 p->mark = _mark;
12357 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12359 }
12360 { // term '%' factor
12361 if (p->error_indicator) {
12362 D(p->level--);
12363 return NULL;
12364 }
12365 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12366 Token * _literal;
12367 expr_ty a;
12368 expr_ty b;
12369 if (
12370 (a = term_rule(p)) // term
12371 &&
12372 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12373 &&
12374 (b = factor_rule(p)) // factor
12375 )
12376 {
12377 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12378 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12379 if (_token == NULL) {
12380 D(p->level--);
12381 return NULL;
12382 }
12383 int _end_lineno = _token->end_lineno;
12384 UNUSED(_end_lineno); // Only used by EXTRA macro
12385 int _end_col_offset = _token->end_col_offset;
12386 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012387 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012388 if (_res == NULL && PyErr_Occurred()) {
12389 p->error_indicator = 1;
12390 D(p->level--);
12391 return NULL;
12392 }
12393 goto done;
12394 }
12395 p->mark = _mark;
12396 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12398 }
12399 { // term '@' factor
12400 if (p->error_indicator) {
12401 D(p->level--);
12402 return NULL;
12403 }
12404 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12405 Token * _literal;
12406 expr_ty a;
12407 expr_ty b;
12408 if (
12409 (a = term_rule(p)) // term
12410 &&
12411 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12412 &&
12413 (b = factor_rule(p)) // factor
12414 )
12415 {
12416 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12418 if (_token == NULL) {
12419 D(p->level--);
12420 return NULL;
12421 }
12422 int _end_lineno = _token->end_lineno;
12423 UNUSED(_end_lineno); // Only used by EXTRA macro
12424 int _end_col_offset = _token->end_col_offset;
12425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012426 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012427 if (_res == NULL && PyErr_Occurred()) {
12428 p->error_indicator = 1;
12429 D(p->level--);
12430 return NULL;
12431 }
12432 goto done;
12433 }
12434 p->mark = _mark;
12435 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12437 }
12438 { // factor
12439 if (p->error_indicator) {
12440 D(p->level--);
12441 return NULL;
12442 }
12443 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12444 expr_ty factor_var;
12445 if (
12446 (factor_var = factor_rule(p)) // factor
12447 )
12448 {
12449 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12450 _res = factor_var;
12451 goto done;
12452 }
12453 p->mark = _mark;
12454 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12456 }
12457 _res = NULL;
12458 done:
12459 D(p->level--);
12460 return _res;
12461}
12462
12463// factor: '+' factor | '-' factor | '~' factor | power
12464static expr_ty
12465factor_rule(Parser *p)
12466{
12467 D(p->level++);
12468 if (p->error_indicator) {
12469 D(p->level--);
12470 return NULL;
12471 }
12472 expr_ty _res = NULL;
12473 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12474 D(p->level--);
12475 return _res;
12476 }
12477 int _mark = p->mark;
12478 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12479 p->error_indicator = 1;
12480 D(p->level--);
12481 return NULL;
12482 }
12483 int _start_lineno = p->tokens[_mark]->lineno;
12484 UNUSED(_start_lineno); // Only used by EXTRA macro
12485 int _start_col_offset = p->tokens[_mark]->col_offset;
12486 UNUSED(_start_col_offset); // Only used by EXTRA macro
12487 { // '+' factor
12488 if (p->error_indicator) {
12489 D(p->level--);
12490 return NULL;
12491 }
12492 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12493 Token * _literal;
12494 expr_ty a;
12495 if (
12496 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12497 &&
12498 (a = factor_rule(p)) // factor
12499 )
12500 {
12501 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12502 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12503 if (_token == NULL) {
12504 D(p->level--);
12505 return NULL;
12506 }
12507 int _end_lineno = _token->end_lineno;
12508 UNUSED(_end_lineno); // Only used by EXTRA macro
12509 int _end_col_offset = _token->end_col_offset;
12510 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012511 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012512 if (_res == NULL && PyErr_Occurred()) {
12513 p->error_indicator = 1;
12514 D(p->level--);
12515 return NULL;
12516 }
12517 goto done;
12518 }
12519 p->mark = _mark;
12520 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12522 }
12523 { // '-' factor
12524 if (p->error_indicator) {
12525 D(p->level--);
12526 return NULL;
12527 }
12528 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12529 Token * _literal;
12530 expr_ty a;
12531 if (
12532 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12533 &&
12534 (a = factor_rule(p)) // factor
12535 )
12536 {
12537 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12538 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12539 if (_token == NULL) {
12540 D(p->level--);
12541 return NULL;
12542 }
12543 int _end_lineno = _token->end_lineno;
12544 UNUSED(_end_lineno); // Only used by EXTRA macro
12545 int _end_col_offset = _token->end_col_offset;
12546 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012547 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012548 if (_res == NULL && PyErr_Occurred()) {
12549 p->error_indicator = 1;
12550 D(p->level--);
12551 return NULL;
12552 }
12553 goto done;
12554 }
12555 p->mark = _mark;
12556 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12558 }
12559 { // '~' factor
12560 if (p->error_indicator) {
12561 D(p->level--);
12562 return NULL;
12563 }
12564 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12565 Token * _literal;
12566 expr_ty a;
12567 if (
12568 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12569 &&
12570 (a = factor_rule(p)) // factor
12571 )
12572 {
12573 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12574 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12575 if (_token == NULL) {
12576 D(p->level--);
12577 return NULL;
12578 }
12579 int _end_lineno = _token->end_lineno;
12580 UNUSED(_end_lineno); // Only used by EXTRA macro
12581 int _end_col_offset = _token->end_col_offset;
12582 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012583 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012584 if (_res == NULL && PyErr_Occurred()) {
12585 p->error_indicator = 1;
12586 D(p->level--);
12587 return NULL;
12588 }
12589 goto done;
12590 }
12591 p->mark = _mark;
12592 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12594 }
12595 { // power
12596 if (p->error_indicator) {
12597 D(p->level--);
12598 return NULL;
12599 }
12600 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12601 expr_ty power_var;
12602 if (
12603 (power_var = power_rule(p)) // power
12604 )
12605 {
12606 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12607 _res = power_var;
12608 goto done;
12609 }
12610 p->mark = _mark;
12611 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12613 }
12614 _res = NULL;
12615 done:
12616 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12617 D(p->level--);
12618 return _res;
12619}
12620
12621// power: await_primary '**' factor | await_primary
12622static expr_ty
12623power_rule(Parser *p)
12624{
12625 D(p->level++);
12626 if (p->error_indicator) {
12627 D(p->level--);
12628 return NULL;
12629 }
12630 expr_ty _res = NULL;
12631 int _mark = p->mark;
12632 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12633 p->error_indicator = 1;
12634 D(p->level--);
12635 return NULL;
12636 }
12637 int _start_lineno = p->tokens[_mark]->lineno;
12638 UNUSED(_start_lineno); // Only used by EXTRA macro
12639 int _start_col_offset = p->tokens[_mark]->col_offset;
12640 UNUSED(_start_col_offset); // Only used by EXTRA macro
12641 { // await_primary '**' factor
12642 if (p->error_indicator) {
12643 D(p->level--);
12644 return NULL;
12645 }
12646 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12647 Token * _literal;
12648 expr_ty a;
12649 expr_ty b;
12650 if (
12651 (a = await_primary_rule(p)) // await_primary
12652 &&
12653 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12654 &&
12655 (b = factor_rule(p)) // factor
12656 )
12657 {
12658 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12660 if (_token == NULL) {
12661 D(p->level--);
12662 return NULL;
12663 }
12664 int _end_lineno = _token->end_lineno;
12665 UNUSED(_end_lineno); // Only used by EXTRA macro
12666 int _end_col_offset = _token->end_col_offset;
12667 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012668 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012669 if (_res == NULL && PyErr_Occurred()) {
12670 p->error_indicator = 1;
12671 D(p->level--);
12672 return NULL;
12673 }
12674 goto done;
12675 }
12676 p->mark = _mark;
12677 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12679 }
12680 { // await_primary
12681 if (p->error_indicator) {
12682 D(p->level--);
12683 return NULL;
12684 }
12685 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12686 expr_ty await_primary_var;
12687 if (
12688 (await_primary_var = await_primary_rule(p)) // await_primary
12689 )
12690 {
12691 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12692 _res = await_primary_var;
12693 goto done;
12694 }
12695 p->mark = _mark;
12696 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12698 }
12699 _res = NULL;
12700 done:
12701 D(p->level--);
12702 return _res;
12703}
12704
12705// await_primary: AWAIT primary | primary
12706static expr_ty
12707await_primary_rule(Parser *p)
12708{
12709 D(p->level++);
12710 if (p->error_indicator) {
12711 D(p->level--);
12712 return NULL;
12713 }
12714 expr_ty _res = NULL;
12715 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12716 D(p->level--);
12717 return _res;
12718 }
12719 int _mark = p->mark;
12720 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12721 p->error_indicator = 1;
12722 D(p->level--);
12723 return NULL;
12724 }
12725 int _start_lineno = p->tokens[_mark]->lineno;
12726 UNUSED(_start_lineno); // Only used by EXTRA macro
12727 int _start_col_offset = p->tokens[_mark]->col_offset;
12728 UNUSED(_start_col_offset); // Only used by EXTRA macro
12729 { // AWAIT primary
12730 if (p->error_indicator) {
12731 D(p->level--);
12732 return NULL;
12733 }
12734 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12735 expr_ty a;
12736 Token * await_var;
12737 if (
12738 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12739 &&
12740 (a = primary_rule(p)) // primary
12741 )
12742 {
12743 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12745 if (_token == NULL) {
12746 D(p->level--);
12747 return NULL;
12748 }
12749 int _end_lineno = _token->end_lineno;
12750 UNUSED(_end_lineno); // Only used by EXTRA macro
12751 int _end_col_offset = _token->end_col_offset;
12752 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012753 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012754 if (_res == NULL && PyErr_Occurred()) {
12755 p->error_indicator = 1;
12756 D(p->level--);
12757 return NULL;
12758 }
12759 goto done;
12760 }
12761 p->mark = _mark;
12762 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12764 }
12765 { // primary
12766 if (p->error_indicator) {
12767 D(p->level--);
12768 return NULL;
12769 }
12770 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12771 expr_ty primary_var;
12772 if (
12773 (primary_var = primary_rule(p)) // primary
12774 )
12775 {
12776 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12777 _res = primary_var;
12778 goto done;
12779 }
12780 p->mark = _mark;
12781 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12783 }
12784 _res = NULL;
12785 done:
12786 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12787 D(p->level--);
12788 return _res;
12789}
12790
12791// Left-recursive
12792// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012793// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012794// | primary '.' NAME
12795// | primary genexp
12796// | primary '(' arguments? ')'
12797// | primary '[' slices ']'
12798// | atom
12799static expr_ty primary_raw(Parser *);
12800static expr_ty
12801primary_rule(Parser *p)
12802{
12803 D(p->level++);
12804 expr_ty _res = NULL;
12805 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
12806 D(p->level--);
12807 return _res;
12808 }
12809 int _mark = p->mark;
12810 int _resmark = p->mark;
12811 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012812 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
12813 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012814 D(p->level--);
12815 return _res;
12816 }
12817 p->mark = _mark;
12818 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012819 if (p->error_indicator)
12820 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012821 if (_raw == NULL || p->mark <= _resmark)
12822 break;
12823 _resmark = p->mark;
12824 _res = _raw;
12825 }
12826 p->mark = _resmark;
12827 D(p->level--);
12828 return _res;
12829}
12830static expr_ty
12831primary_raw(Parser *p)
12832{
12833 D(p->level++);
12834 if (p->error_indicator) {
12835 D(p->level--);
12836 return NULL;
12837 }
12838 expr_ty _res = NULL;
12839 int _mark = p->mark;
12840 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12841 p->error_indicator = 1;
12842 D(p->level--);
12843 return NULL;
12844 }
12845 int _start_lineno = p->tokens[_mark]->lineno;
12846 UNUSED(_start_lineno); // Only used by EXTRA macro
12847 int _start_col_offset = p->tokens[_mark]->col_offset;
12848 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012849 if (p->call_invalid_rules) { // invalid_primary
12850 if (p->error_indicator) {
12851 D(p->level--);
12852 return NULL;
12853 }
12854 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12855 void *invalid_primary_var;
12856 if (
12857 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
12858 )
12859 {
12860 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12861 _res = invalid_primary_var;
12862 goto done;
12863 }
12864 p->mark = _mark;
12865 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
12867 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012868 { // primary '.' NAME
12869 if (p->error_indicator) {
12870 D(p->level--);
12871 return NULL;
12872 }
12873 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12874 Token * _literal;
12875 expr_ty a;
12876 expr_ty b;
12877 if (
12878 (a = primary_rule(p)) // primary
12879 &&
12880 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
12881 &&
12882 (b = _PyPegen_name_token(p)) // NAME
12883 )
12884 {
12885 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12886 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12887 if (_token == NULL) {
12888 D(p->level--);
12889 return NULL;
12890 }
12891 int _end_lineno = _token->end_lineno;
12892 UNUSED(_end_lineno); // Only used by EXTRA macro
12893 int _end_col_offset = _token->end_col_offset;
12894 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012895 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012896 if (_res == NULL && PyErr_Occurred()) {
12897 p->error_indicator = 1;
12898 D(p->level--);
12899 return NULL;
12900 }
12901 goto done;
12902 }
12903 p->mark = _mark;
12904 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
12906 }
12907 { // primary genexp
12908 if (p->error_indicator) {
12909 D(p->level--);
12910 return NULL;
12911 }
12912 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12913 expr_ty a;
12914 expr_ty b;
12915 if (
12916 (a = primary_rule(p)) // primary
12917 &&
12918 (b = genexp_rule(p)) // genexp
12919 )
12920 {
12921 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12923 if (_token == NULL) {
12924 D(p->level--);
12925 return NULL;
12926 }
12927 int _end_lineno = _token->end_lineno;
12928 UNUSED(_end_lineno); // Only used by EXTRA macro
12929 int _end_col_offset = _token->end_col_offset;
12930 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012931 _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 +010012932 if (_res == NULL && PyErr_Occurred()) {
12933 p->error_indicator = 1;
12934 D(p->level--);
12935 return NULL;
12936 }
12937 goto done;
12938 }
12939 p->mark = _mark;
12940 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
12942 }
12943 { // primary '(' arguments? ')'
12944 if (p->error_indicator) {
12945 D(p->level--);
12946 return NULL;
12947 }
12948 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12949 Token * _literal;
12950 Token * _literal_1;
12951 expr_ty a;
12952 void *b;
12953 if (
12954 (a = primary_rule(p)) // primary
12955 &&
12956 (_literal = _PyPegen_expect_token(p, 7)) // token='('
12957 &&
12958 (b = arguments_rule(p), 1) // arguments?
12959 &&
12960 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
12961 )
12962 {
12963 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12965 if (_token == NULL) {
12966 D(p->level--);
12967 return NULL;
12968 }
12969 int _end_lineno = _token->end_lineno;
12970 UNUSED(_end_lineno); // Only used by EXTRA macro
12971 int _end_col_offset = _token->end_col_offset;
12972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012973 _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 +010012974 if (_res == NULL && PyErr_Occurred()) {
12975 p->error_indicator = 1;
12976 D(p->level--);
12977 return NULL;
12978 }
12979 goto done;
12980 }
12981 p->mark = _mark;
12982 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
12984 }
12985 { // primary '[' slices ']'
12986 if (p->error_indicator) {
12987 D(p->level--);
12988 return NULL;
12989 }
12990 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
12991 Token * _literal;
12992 Token * _literal_1;
12993 expr_ty a;
12994 expr_ty b;
12995 if (
12996 (a = primary_rule(p)) // primary
12997 &&
12998 (_literal = _PyPegen_expect_token(p, 9)) // token='['
12999 &&
13000 (b = slices_rule(p)) // slices
13001 &&
13002 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13003 )
13004 {
13005 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13007 if (_token == NULL) {
13008 D(p->level--);
13009 return NULL;
13010 }
13011 int _end_lineno = _token->end_lineno;
13012 UNUSED(_end_lineno); // Only used by EXTRA macro
13013 int _end_col_offset = _token->end_col_offset;
13014 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013015 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013016 if (_res == NULL && PyErr_Occurred()) {
13017 p->error_indicator = 1;
13018 D(p->level--);
13019 return NULL;
13020 }
13021 goto done;
13022 }
13023 p->mark = _mark;
13024 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13026 }
13027 { // atom
13028 if (p->error_indicator) {
13029 D(p->level--);
13030 return NULL;
13031 }
13032 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13033 expr_ty atom_var;
13034 if (
13035 (atom_var = atom_rule(p)) // atom
13036 )
13037 {
13038 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13039 _res = atom_var;
13040 goto done;
13041 }
13042 p->mark = _mark;
13043 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13045 }
13046 _res = NULL;
13047 done:
13048 D(p->level--);
13049 return _res;
13050}
13051
13052// slices: slice !',' | ','.slice+ ','?
13053static expr_ty
13054slices_rule(Parser *p)
13055{
13056 D(p->level++);
13057 if (p->error_indicator) {
13058 D(p->level--);
13059 return NULL;
13060 }
13061 expr_ty _res = NULL;
13062 int _mark = p->mark;
13063 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13064 p->error_indicator = 1;
13065 D(p->level--);
13066 return NULL;
13067 }
13068 int _start_lineno = p->tokens[_mark]->lineno;
13069 UNUSED(_start_lineno); // Only used by EXTRA macro
13070 int _start_col_offset = p->tokens[_mark]->col_offset;
13071 UNUSED(_start_col_offset); // Only used by EXTRA macro
13072 { // slice !','
13073 if (p->error_indicator) {
13074 D(p->level--);
13075 return NULL;
13076 }
13077 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13078 expr_ty a;
13079 if (
13080 (a = slice_rule(p)) // slice
13081 &&
13082 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13083 )
13084 {
13085 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13086 _res = a;
13087 if (_res == NULL && PyErr_Occurred()) {
13088 p->error_indicator = 1;
13089 D(p->level--);
13090 return NULL;
13091 }
13092 goto done;
13093 }
13094 p->mark = _mark;
13095 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13097 }
13098 { // ','.slice+ ','?
13099 if (p->error_indicator) {
13100 D(p->level--);
13101 return NULL;
13102 }
13103 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13104 void *_opt_var;
13105 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013106 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013107 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013108 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013109 &&
13110 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13111 )
13112 {
13113 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13115 if (_token == NULL) {
13116 D(p->level--);
13117 return NULL;
13118 }
13119 int _end_lineno = _token->end_lineno;
13120 UNUSED(_end_lineno); // Only used by EXTRA macro
13121 int _end_col_offset = _token->end_col_offset;
13122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013123 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013124 if (_res == NULL && PyErr_Occurred()) {
13125 p->error_indicator = 1;
13126 D(p->level--);
13127 return NULL;
13128 }
13129 goto done;
13130 }
13131 p->mark = _mark;
13132 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13134 }
13135 _res = NULL;
13136 done:
13137 D(p->level--);
13138 return _res;
13139}
13140
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013141// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013142static expr_ty
13143slice_rule(Parser *p)
13144{
13145 D(p->level++);
13146 if (p->error_indicator) {
13147 D(p->level--);
13148 return NULL;
13149 }
13150 expr_ty _res = NULL;
13151 int _mark = p->mark;
13152 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13153 p->error_indicator = 1;
13154 D(p->level--);
13155 return NULL;
13156 }
13157 int _start_lineno = p->tokens[_mark]->lineno;
13158 UNUSED(_start_lineno); // Only used by EXTRA macro
13159 int _start_col_offset = p->tokens[_mark]->col_offset;
13160 UNUSED(_start_col_offset); // Only used by EXTRA macro
13161 { // expression? ':' expression? [':' expression?]
13162 if (p->error_indicator) {
13163 D(p->level--);
13164 return NULL;
13165 }
13166 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13167 Token * _literal;
13168 void *a;
13169 void *b;
13170 void *c;
13171 if (
13172 (a = expression_rule(p), 1) // expression?
13173 &&
13174 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13175 &&
13176 (b = expression_rule(p), 1) // expression?
13177 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013178 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013179 )
13180 {
13181 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13182 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13183 if (_token == NULL) {
13184 D(p->level--);
13185 return NULL;
13186 }
13187 int _end_lineno = _token->end_lineno;
13188 UNUSED(_end_lineno); // Only used by EXTRA macro
13189 int _end_col_offset = _token->end_col_offset;
13190 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013191 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013192 if (_res == NULL && PyErr_Occurred()) {
13193 p->error_indicator = 1;
13194 D(p->level--);
13195 return NULL;
13196 }
13197 goto done;
13198 }
13199 p->mark = _mark;
13200 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13202 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013203 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013204 if (p->error_indicator) {
13205 D(p->level--);
13206 return NULL;
13207 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013208 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013209 expr_ty a;
13210 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013211 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013212 )
13213 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013214 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013215 _res = a;
13216 if (_res == NULL && PyErr_Occurred()) {
13217 p->error_indicator = 1;
13218 D(p->level--);
13219 return NULL;
13220 }
13221 goto done;
13222 }
13223 p->mark = _mark;
13224 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013226 }
13227 _res = NULL;
13228 done:
13229 D(p->level--);
13230 return _res;
13231}
13232
13233// atom:
13234// | NAME
13235// | 'True'
13236// | 'False'
13237// | 'None'
13238// | &STRING strings
13239// | NUMBER
13240// | &'(' (tuple | group | genexp)
13241// | &'[' (list | listcomp)
13242// | &'{' (dict | set | dictcomp | setcomp)
13243// | '...'
13244static expr_ty
13245atom_rule(Parser *p)
13246{
13247 D(p->level++);
13248 if (p->error_indicator) {
13249 D(p->level--);
13250 return NULL;
13251 }
13252 expr_ty _res = NULL;
13253 int _mark = p->mark;
13254 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13255 p->error_indicator = 1;
13256 D(p->level--);
13257 return NULL;
13258 }
13259 int _start_lineno = p->tokens[_mark]->lineno;
13260 UNUSED(_start_lineno); // Only used by EXTRA macro
13261 int _start_col_offset = p->tokens[_mark]->col_offset;
13262 UNUSED(_start_col_offset); // Only used by EXTRA macro
13263 { // NAME
13264 if (p->error_indicator) {
13265 D(p->level--);
13266 return NULL;
13267 }
13268 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13269 expr_ty name_var;
13270 if (
13271 (name_var = _PyPegen_name_token(p)) // NAME
13272 )
13273 {
13274 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13275 _res = name_var;
13276 goto done;
13277 }
13278 p->mark = _mark;
13279 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13281 }
13282 { // 'True'
13283 if (p->error_indicator) {
13284 D(p->level--);
13285 return NULL;
13286 }
13287 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13288 Token * _keyword;
13289 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013290 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013291 )
13292 {
13293 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13294 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13295 if (_token == NULL) {
13296 D(p->level--);
13297 return NULL;
13298 }
13299 int _end_lineno = _token->end_lineno;
13300 UNUSED(_end_lineno); // Only used by EXTRA macro
13301 int _end_col_offset = _token->end_col_offset;
13302 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013303 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013304 if (_res == NULL && PyErr_Occurred()) {
13305 p->error_indicator = 1;
13306 D(p->level--);
13307 return NULL;
13308 }
13309 goto done;
13310 }
13311 p->mark = _mark;
13312 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13314 }
13315 { // 'False'
13316 if (p->error_indicator) {
13317 D(p->level--);
13318 return NULL;
13319 }
13320 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13321 Token * _keyword;
13322 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013323 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013324 )
13325 {
13326 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13327 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13328 if (_token == NULL) {
13329 D(p->level--);
13330 return NULL;
13331 }
13332 int _end_lineno = _token->end_lineno;
13333 UNUSED(_end_lineno); // Only used by EXTRA macro
13334 int _end_col_offset = _token->end_col_offset;
13335 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013336 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013337 if (_res == NULL && PyErr_Occurred()) {
13338 p->error_indicator = 1;
13339 D(p->level--);
13340 return NULL;
13341 }
13342 goto done;
13343 }
13344 p->mark = _mark;
13345 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13347 }
13348 { // 'None'
13349 if (p->error_indicator) {
13350 D(p->level--);
13351 return NULL;
13352 }
13353 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13354 Token * _keyword;
13355 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013356 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013357 )
13358 {
13359 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13360 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13361 if (_token == NULL) {
13362 D(p->level--);
13363 return NULL;
13364 }
13365 int _end_lineno = _token->end_lineno;
13366 UNUSED(_end_lineno); // Only used by EXTRA macro
13367 int _end_col_offset = _token->end_col_offset;
13368 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013369 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013370 if (_res == NULL && PyErr_Occurred()) {
13371 p->error_indicator = 1;
13372 D(p->level--);
13373 return NULL;
13374 }
13375 goto done;
13376 }
13377 p->mark = _mark;
13378 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13380 }
13381 { // &STRING strings
13382 if (p->error_indicator) {
13383 D(p->level--);
13384 return NULL;
13385 }
13386 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13387 expr_ty strings_var;
13388 if (
13389 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13390 &&
13391 (strings_var = strings_rule(p)) // strings
13392 )
13393 {
13394 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13395 _res = strings_var;
13396 goto done;
13397 }
13398 p->mark = _mark;
13399 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13401 }
13402 { // NUMBER
13403 if (p->error_indicator) {
13404 D(p->level--);
13405 return NULL;
13406 }
13407 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13408 expr_ty number_var;
13409 if (
13410 (number_var = _PyPegen_number_token(p)) // NUMBER
13411 )
13412 {
13413 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13414 _res = number_var;
13415 goto done;
13416 }
13417 p->mark = _mark;
13418 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13420 }
13421 { // &'(' (tuple | group | genexp)
13422 if (p->error_indicator) {
13423 D(p->level--);
13424 return NULL;
13425 }
13426 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013427 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013428 if (
13429 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13430 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013431 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013432 )
13433 {
13434 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 -080013435 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013436 goto done;
13437 }
13438 p->mark = _mark;
13439 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13441 }
13442 { // &'[' (list | listcomp)
13443 if (p->error_indicator) {
13444 D(p->level--);
13445 return NULL;
13446 }
13447 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013448 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013449 if (
13450 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13451 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013452 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013453 )
13454 {
13455 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013456 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013457 goto done;
13458 }
13459 p->mark = _mark;
13460 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13462 }
13463 { // &'{' (dict | set | dictcomp | setcomp)
13464 if (p->error_indicator) {
13465 D(p->level--);
13466 return NULL;
13467 }
13468 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 -080013469 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013470 if (
13471 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13472 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013473 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013474 )
13475 {
13476 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 -080013477 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013478 goto done;
13479 }
13480 p->mark = _mark;
13481 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13483 }
13484 { // '...'
13485 if (p->error_indicator) {
13486 D(p->level--);
13487 return NULL;
13488 }
13489 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13490 Token * _literal;
13491 if (
13492 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13493 )
13494 {
13495 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13496 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13497 if (_token == NULL) {
13498 D(p->level--);
13499 return NULL;
13500 }
13501 int _end_lineno = _token->end_lineno;
13502 UNUSED(_end_lineno); // Only used by EXTRA macro
13503 int _end_col_offset = _token->end_col_offset;
13504 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013505 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013506 if (_res == NULL && PyErr_Occurred()) {
13507 p->error_indicator = 1;
13508 D(p->level--);
13509 return NULL;
13510 }
13511 goto done;
13512 }
13513 p->mark = _mark;
13514 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13516 }
13517 _res = NULL;
13518 done:
13519 D(p->level--);
13520 return _res;
13521}
13522
13523// strings: STRING+
13524static expr_ty
13525strings_rule(Parser *p)
13526{
13527 D(p->level++);
13528 if (p->error_indicator) {
13529 D(p->level--);
13530 return NULL;
13531 }
13532 expr_ty _res = NULL;
13533 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13534 D(p->level--);
13535 return _res;
13536 }
13537 int _mark = p->mark;
13538 { // STRING+
13539 if (p->error_indicator) {
13540 D(p->level--);
13541 return NULL;
13542 }
13543 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13544 asdl_seq * a;
13545 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013546 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013547 )
13548 {
13549 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13550 _res = _PyPegen_concatenate_strings ( p , a );
13551 if (_res == NULL && PyErr_Occurred()) {
13552 p->error_indicator = 1;
13553 D(p->level--);
13554 return NULL;
13555 }
13556 goto done;
13557 }
13558 p->mark = _mark;
13559 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13561 }
13562 _res = NULL;
13563 done:
13564 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13565 D(p->level--);
13566 return _res;
13567}
13568
13569// list: '[' star_named_expressions? ']'
13570static expr_ty
13571list_rule(Parser *p)
13572{
13573 D(p->level++);
13574 if (p->error_indicator) {
13575 D(p->level--);
13576 return NULL;
13577 }
13578 expr_ty _res = NULL;
13579 int _mark = p->mark;
13580 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13581 p->error_indicator = 1;
13582 D(p->level--);
13583 return NULL;
13584 }
13585 int _start_lineno = p->tokens[_mark]->lineno;
13586 UNUSED(_start_lineno); // Only used by EXTRA macro
13587 int _start_col_offset = p->tokens[_mark]->col_offset;
13588 UNUSED(_start_col_offset); // Only used by EXTRA macro
13589 { // '[' star_named_expressions? ']'
13590 if (p->error_indicator) {
13591 D(p->level--);
13592 return NULL;
13593 }
13594 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13595 Token * _literal;
13596 Token * _literal_1;
13597 void *a;
13598 if (
13599 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13600 &&
13601 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13602 &&
13603 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13604 )
13605 {
13606 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13608 if (_token == NULL) {
13609 D(p->level--);
13610 return NULL;
13611 }
13612 int _end_lineno = _token->end_lineno;
13613 UNUSED(_end_lineno); // Only used by EXTRA macro
13614 int _end_col_offset = _token->end_col_offset;
13615 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013616 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013617 if (_res == NULL && PyErr_Occurred()) {
13618 p->error_indicator = 1;
13619 D(p->level--);
13620 return NULL;
13621 }
13622 goto done;
13623 }
13624 p->mark = _mark;
13625 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13627 }
13628 _res = NULL;
13629 done:
13630 D(p->level--);
13631 return _res;
13632}
13633
Pablo Galindo835f14f2021-01-31 22:52:56 +000013634// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013635static expr_ty
13636listcomp_rule(Parser *p)
13637{
13638 D(p->level++);
13639 if (p->error_indicator) {
13640 D(p->level--);
13641 return NULL;
13642 }
13643 expr_ty _res = NULL;
13644 int _mark = p->mark;
13645 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13646 p->error_indicator = 1;
13647 D(p->level--);
13648 return NULL;
13649 }
13650 int _start_lineno = p->tokens[_mark]->lineno;
13651 UNUSED(_start_lineno); // Only used by EXTRA macro
13652 int _start_col_offset = p->tokens[_mark]->col_offset;
13653 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013654 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013655 if (p->error_indicator) {
13656 D(p->level--);
13657 return NULL;
13658 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013659 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 +010013660 Token * _literal;
13661 Token * _literal_1;
13662 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013663 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013664 if (
13665 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13666 &&
13667 (a = named_expression_rule(p)) // named_expression
13668 &&
13669 (b = for_if_clauses_rule(p)) // for_if_clauses
13670 &&
13671 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13672 )
13673 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013674 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 +010013675 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13676 if (_token == NULL) {
13677 D(p->level--);
13678 return NULL;
13679 }
13680 int _end_lineno = _token->end_lineno;
13681 UNUSED(_end_lineno); // Only used by EXTRA macro
13682 int _end_col_offset = _token->end_col_offset;
13683 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013684 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013685 if (_res == NULL && PyErr_Occurred()) {
13686 p->error_indicator = 1;
13687 D(p->level--);
13688 return NULL;
13689 }
13690 goto done;
13691 }
13692 p->mark = _mark;
13693 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013695 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013696 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013697 if (p->error_indicator) {
13698 D(p->level--);
13699 return NULL;
13700 }
13701 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13702 void *invalid_comprehension_var;
13703 if (
13704 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13705 )
13706 {
13707 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13708 _res = invalid_comprehension_var;
13709 goto done;
13710 }
13711 p->mark = _mark;
13712 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13714 }
13715 _res = NULL;
13716 done:
13717 D(p->level--);
13718 return _res;
13719}
13720
13721// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13722static expr_ty
13723tuple_rule(Parser *p)
13724{
13725 D(p->level++);
13726 if (p->error_indicator) {
13727 D(p->level--);
13728 return NULL;
13729 }
13730 expr_ty _res = NULL;
13731 int _mark = p->mark;
13732 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13733 p->error_indicator = 1;
13734 D(p->level--);
13735 return NULL;
13736 }
13737 int _start_lineno = p->tokens[_mark]->lineno;
13738 UNUSED(_start_lineno); // Only used by EXTRA macro
13739 int _start_col_offset = p->tokens[_mark]->col_offset;
13740 UNUSED(_start_col_offset); // Only used by EXTRA macro
13741 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13742 if (p->error_indicator) {
13743 D(p->level--);
13744 return NULL;
13745 }
13746 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13747 Token * _literal;
13748 Token * _literal_1;
13749 void *a;
13750 if (
13751 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13752 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013753 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013754 &&
13755 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13756 )
13757 {
13758 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13759 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13760 if (_token == NULL) {
13761 D(p->level--);
13762 return NULL;
13763 }
13764 int _end_lineno = _token->end_lineno;
13765 UNUSED(_end_lineno); // Only used by EXTRA macro
13766 int _end_col_offset = _token->end_col_offset;
13767 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013768 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013769 if (_res == NULL && PyErr_Occurred()) {
13770 p->error_indicator = 1;
13771 D(p->level--);
13772 return NULL;
13773 }
13774 goto done;
13775 }
13776 p->mark = _mark;
13777 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13779 }
13780 _res = NULL;
13781 done:
13782 D(p->level--);
13783 return _res;
13784}
13785
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013786// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013787static expr_ty
13788group_rule(Parser *p)
13789{
13790 D(p->level++);
13791 if (p->error_indicator) {
13792 D(p->level--);
13793 return NULL;
13794 }
13795 expr_ty _res = NULL;
13796 int _mark = p->mark;
13797 { // '(' (yield_expr | named_expression) ')'
13798 if (p->error_indicator) {
13799 D(p->level--);
13800 return NULL;
13801 }
13802 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13803 Token * _literal;
13804 Token * _literal_1;
13805 void *a;
13806 if (
13807 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13808 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013809 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013810 &&
13811 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13812 )
13813 {
13814 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13815 _res = a;
13816 if (_res == NULL && PyErr_Occurred()) {
13817 p->error_indicator = 1;
13818 D(p->level--);
13819 return NULL;
13820 }
13821 goto done;
13822 }
13823 p->mark = _mark;
13824 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13826 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013827 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013828 if (p->error_indicator) {
13829 D(p->level--);
13830 return NULL;
13831 }
13832 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13833 void *invalid_group_var;
13834 if (
13835 (invalid_group_var = invalid_group_rule(p)) // invalid_group
13836 )
13837 {
13838 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13839 _res = invalid_group_var;
13840 goto done;
13841 }
13842 p->mark = _mark;
13843 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
13845 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013846 _res = NULL;
13847 done:
13848 D(p->level--);
13849 return _res;
13850}
13851
Pablo Galindo835f14f2021-01-31 22:52:56 +000013852// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013853static expr_ty
13854genexp_rule(Parser *p)
13855{
13856 D(p->level++);
13857 if (p->error_indicator) {
13858 D(p->level--);
13859 return NULL;
13860 }
13861 expr_ty _res = NULL;
13862 int _mark = p->mark;
13863 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13864 p->error_indicator = 1;
13865 D(p->level--);
13866 return NULL;
13867 }
13868 int _start_lineno = p->tokens[_mark]->lineno;
13869 UNUSED(_start_lineno); // Only used by EXTRA macro
13870 int _start_col_offset = p->tokens[_mark]->col_offset;
13871 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013872 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013873 if (p->error_indicator) {
13874 D(p->level--);
13875 return NULL;
13876 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013877 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013878 Token * _literal;
13879 Token * _literal_1;
13880 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013881 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013882 if (
13883 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13884 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020013885 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886 &&
13887 (b = for_if_clauses_rule(p)) // for_if_clauses
13888 &&
13889 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13890 )
13891 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013892 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013893 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13894 if (_token == NULL) {
13895 D(p->level--);
13896 return NULL;
13897 }
13898 int _end_lineno = _token->end_lineno;
13899 UNUSED(_end_lineno); // Only used by EXTRA macro
13900 int _end_col_offset = _token->end_col_offset;
13901 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013902 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013903 if (_res == NULL && PyErr_Occurred()) {
13904 p->error_indicator = 1;
13905 D(p->level--);
13906 return NULL;
13907 }
13908 goto done;
13909 }
13910 p->mark = _mark;
13911 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013913 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013914 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013915 if (p->error_indicator) {
13916 D(p->level--);
13917 return NULL;
13918 }
13919 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13920 void *invalid_comprehension_var;
13921 if (
13922 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13923 )
13924 {
13925 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13926 _res = invalid_comprehension_var;
13927 goto done;
13928 }
13929 p->mark = _mark;
13930 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
13931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13932 }
13933 _res = NULL;
13934 done:
13935 D(p->level--);
13936 return _res;
13937}
13938
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013939// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013940static expr_ty
13941set_rule(Parser *p)
13942{
13943 D(p->level++);
13944 if (p->error_indicator) {
13945 D(p->level--);
13946 return NULL;
13947 }
13948 expr_ty _res = NULL;
13949 int _mark = p->mark;
13950 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13951 p->error_indicator = 1;
13952 D(p->level--);
13953 return NULL;
13954 }
13955 int _start_lineno = p->tokens[_mark]->lineno;
13956 UNUSED(_start_lineno); // Only used by EXTRA macro
13957 int _start_col_offset = p->tokens[_mark]->col_offset;
13958 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013959 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013960 if (p->error_indicator) {
13961 D(p->level--);
13962 return NULL;
13963 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013964 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013965 Token * _literal;
13966 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013967 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013968 if (
13969 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
13970 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013971 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013972 &&
13973 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
13974 )
13975 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013976 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 +010013977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13978 if (_token == NULL) {
13979 D(p->level--);
13980 return NULL;
13981 }
13982 int _end_lineno = _token->end_lineno;
13983 UNUSED(_end_lineno); // Only used by EXTRA macro
13984 int _end_col_offset = _token->end_col_offset;
13985 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013986 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013987 if (_res == NULL && PyErr_Occurred()) {
13988 p->error_indicator = 1;
13989 D(p->level--);
13990 return NULL;
13991 }
13992 goto done;
13993 }
13994 p->mark = _mark;
13995 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013997 }
13998 _res = NULL;
13999 done:
14000 D(p->level--);
14001 return _res;
14002}
14003
Pablo Galindo835f14f2021-01-31 22:52:56 +000014004// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014005static expr_ty
14006setcomp_rule(Parser *p)
14007{
14008 D(p->level++);
14009 if (p->error_indicator) {
14010 D(p->level--);
14011 return NULL;
14012 }
14013 expr_ty _res = NULL;
14014 int _mark = p->mark;
14015 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14016 p->error_indicator = 1;
14017 D(p->level--);
14018 return NULL;
14019 }
14020 int _start_lineno = p->tokens[_mark]->lineno;
14021 UNUSED(_start_lineno); // Only used by EXTRA macro
14022 int _start_col_offset = p->tokens[_mark]->col_offset;
14023 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014024 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014025 if (p->error_indicator) {
14026 D(p->level--);
14027 return NULL;
14028 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014029 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 +010014030 Token * _literal;
14031 Token * _literal_1;
14032 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014033 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014034 if (
14035 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14036 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014037 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014038 &&
14039 (b = for_if_clauses_rule(p)) // for_if_clauses
14040 &&
14041 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14042 )
14043 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014044 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 +010014045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14046 if (_token == NULL) {
14047 D(p->level--);
14048 return NULL;
14049 }
14050 int _end_lineno = _token->end_lineno;
14051 UNUSED(_end_lineno); // Only used by EXTRA macro
14052 int _end_col_offset = _token->end_col_offset;
14053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014054 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014055 if (_res == NULL && PyErr_Occurred()) {
14056 p->error_indicator = 1;
14057 D(p->level--);
14058 return NULL;
14059 }
14060 goto done;
14061 }
14062 p->mark = _mark;
14063 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014065 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014066 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014067 if (p->error_indicator) {
14068 D(p->level--);
14069 return NULL;
14070 }
14071 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14072 void *invalid_comprehension_var;
14073 if (
14074 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14075 )
14076 {
14077 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14078 _res = invalid_comprehension_var;
14079 goto done;
14080 }
14081 p->mark = _mark;
14082 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
14083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14084 }
14085 _res = NULL;
14086 done:
14087 D(p->level--);
14088 return _res;
14089}
14090
14091// dict: '{' double_starred_kvpairs? '}'
14092static expr_ty
14093dict_rule(Parser *p)
14094{
14095 D(p->level++);
14096 if (p->error_indicator) {
14097 D(p->level--);
14098 return NULL;
14099 }
14100 expr_ty _res = NULL;
14101 int _mark = p->mark;
14102 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14103 p->error_indicator = 1;
14104 D(p->level--);
14105 return NULL;
14106 }
14107 int _start_lineno = p->tokens[_mark]->lineno;
14108 UNUSED(_start_lineno); // Only used by EXTRA macro
14109 int _start_col_offset = p->tokens[_mark]->col_offset;
14110 UNUSED(_start_col_offset); // Only used by EXTRA macro
14111 { // '{' double_starred_kvpairs? '}'
14112 if (p->error_indicator) {
14113 D(p->level--);
14114 return NULL;
14115 }
14116 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14117 Token * _literal;
14118 Token * _literal_1;
14119 void *a;
14120 if (
14121 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14122 &&
14123 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14124 &&
14125 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14126 )
14127 {
14128 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14129 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14130 if (_token == NULL) {
14131 D(p->level--);
14132 return NULL;
14133 }
14134 int _end_lineno = _token->end_lineno;
14135 UNUSED(_end_lineno); // Only used by EXTRA macro
14136 int _end_col_offset = _token->end_col_offset;
14137 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014138 _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 +010014139 if (_res == NULL && PyErr_Occurred()) {
14140 p->error_indicator = 1;
14141 D(p->level--);
14142 return NULL;
14143 }
14144 goto done;
14145 }
14146 p->mark = _mark;
14147 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14149 }
14150 _res = NULL;
14151 done:
14152 D(p->level--);
14153 return _res;
14154}
14155
14156// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14157static expr_ty
14158dictcomp_rule(Parser *p)
14159{
14160 D(p->level++);
14161 if (p->error_indicator) {
14162 D(p->level--);
14163 return NULL;
14164 }
14165 expr_ty _res = NULL;
14166 int _mark = p->mark;
14167 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14168 p->error_indicator = 1;
14169 D(p->level--);
14170 return NULL;
14171 }
14172 int _start_lineno = p->tokens[_mark]->lineno;
14173 UNUSED(_start_lineno); // Only used by EXTRA macro
14174 int _start_col_offset = p->tokens[_mark]->col_offset;
14175 UNUSED(_start_col_offset); // Only used by EXTRA macro
14176 { // '{' kvpair for_if_clauses '}'
14177 if (p->error_indicator) {
14178 D(p->level--);
14179 return NULL;
14180 }
14181 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14182 Token * _literal;
14183 Token * _literal_1;
14184 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014185 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014186 if (
14187 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14188 &&
14189 (a = kvpair_rule(p)) // kvpair
14190 &&
14191 (b = for_if_clauses_rule(p)) // for_if_clauses
14192 &&
14193 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14194 )
14195 {
14196 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14197 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14198 if (_token == NULL) {
14199 D(p->level--);
14200 return NULL;
14201 }
14202 int _end_lineno = _token->end_lineno;
14203 UNUSED(_end_lineno); // Only used by EXTRA macro
14204 int _end_col_offset = _token->end_col_offset;
14205 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014206 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014207 if (_res == NULL && PyErr_Occurred()) {
14208 p->error_indicator = 1;
14209 D(p->level--);
14210 return NULL;
14211 }
14212 goto done;
14213 }
14214 p->mark = _mark;
14215 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14217 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014218 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014219 if (p->error_indicator) {
14220 D(p->level--);
14221 return NULL;
14222 }
14223 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14224 void *invalid_dict_comprehension_var;
14225 if (
14226 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14227 )
14228 {
14229 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14230 _res = invalid_dict_comprehension_var;
14231 goto done;
14232 }
14233 p->mark = _mark;
14234 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14236 }
14237 _res = NULL;
14238 done:
14239 D(p->level--);
14240 return _res;
14241}
14242
14243// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14244static asdl_seq*
14245double_starred_kvpairs_rule(Parser *p)
14246{
14247 D(p->level++);
14248 if (p->error_indicator) {
14249 D(p->level--);
14250 return NULL;
14251 }
14252 asdl_seq* _res = NULL;
14253 int _mark = p->mark;
14254 { // ','.double_starred_kvpair+ ','?
14255 if (p->error_indicator) {
14256 D(p->level--);
14257 return NULL;
14258 }
14259 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14260 void *_opt_var;
14261 UNUSED(_opt_var); // Silence compiler warnings
14262 asdl_seq * a;
14263 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014264 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014265 &&
14266 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14267 )
14268 {
14269 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14270 _res = a;
14271 if (_res == NULL && PyErr_Occurred()) {
14272 p->error_indicator = 1;
14273 D(p->level--);
14274 return NULL;
14275 }
14276 goto done;
14277 }
14278 p->mark = _mark;
14279 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14281 }
14282 _res = NULL;
14283 done:
14284 D(p->level--);
14285 return _res;
14286}
14287
14288// double_starred_kvpair: '**' bitwise_or | kvpair
14289static KeyValuePair*
14290double_starred_kvpair_rule(Parser *p)
14291{
14292 D(p->level++);
14293 if (p->error_indicator) {
14294 D(p->level--);
14295 return NULL;
14296 }
14297 KeyValuePair* _res = NULL;
14298 int _mark = p->mark;
14299 { // '**' bitwise_or
14300 if (p->error_indicator) {
14301 D(p->level--);
14302 return NULL;
14303 }
14304 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14305 Token * _literal;
14306 expr_ty a;
14307 if (
14308 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14309 &&
14310 (a = bitwise_or_rule(p)) // bitwise_or
14311 )
14312 {
14313 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14314 _res = _PyPegen_key_value_pair ( p , NULL , a );
14315 if (_res == NULL && PyErr_Occurred()) {
14316 p->error_indicator = 1;
14317 D(p->level--);
14318 return NULL;
14319 }
14320 goto done;
14321 }
14322 p->mark = _mark;
14323 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14325 }
14326 { // kvpair
14327 if (p->error_indicator) {
14328 D(p->level--);
14329 return NULL;
14330 }
14331 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14332 KeyValuePair* kvpair_var;
14333 if (
14334 (kvpair_var = kvpair_rule(p)) // kvpair
14335 )
14336 {
14337 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14338 _res = kvpair_var;
14339 goto done;
14340 }
14341 p->mark = _mark;
14342 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14344 }
14345 _res = NULL;
14346 done:
14347 D(p->level--);
14348 return _res;
14349}
14350
14351// kvpair: expression ':' expression
14352static KeyValuePair*
14353kvpair_rule(Parser *p)
14354{
14355 D(p->level++);
14356 if (p->error_indicator) {
14357 D(p->level--);
14358 return NULL;
14359 }
14360 KeyValuePair* _res = NULL;
14361 int _mark = p->mark;
14362 { // expression ':' expression
14363 if (p->error_indicator) {
14364 D(p->level--);
14365 return NULL;
14366 }
14367 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14368 Token * _literal;
14369 expr_ty a;
14370 expr_ty b;
14371 if (
14372 (a = expression_rule(p)) // expression
14373 &&
14374 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14375 &&
14376 (b = expression_rule(p)) // expression
14377 )
14378 {
14379 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14380 _res = _PyPegen_key_value_pair ( p , a , b );
14381 if (_res == NULL && PyErr_Occurred()) {
14382 p->error_indicator = 1;
14383 D(p->level--);
14384 return NULL;
14385 }
14386 goto done;
14387 }
14388 p->mark = _mark;
14389 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14391 }
14392 _res = NULL;
14393 done:
14394 D(p->level--);
14395 return _res;
14396}
14397
14398// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014399static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014400for_if_clauses_rule(Parser *p)
14401{
14402 D(p->level++);
14403 if (p->error_indicator) {
14404 D(p->level--);
14405 return NULL;
14406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014407 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014408 int _mark = p->mark;
14409 { // for_if_clause+
14410 if (p->error_indicator) {
14411 D(p->level--);
14412 return NULL;
14413 }
14414 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 +010014415 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014416 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014417 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014418 )
14419 {
14420 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 +010014421 _res = a;
14422 if (_res == NULL && PyErr_Occurred()) {
14423 p->error_indicator = 1;
14424 D(p->level--);
14425 return NULL;
14426 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014427 goto done;
14428 }
14429 p->mark = _mark;
14430 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14432 }
14433 _res = NULL;
14434 done:
14435 D(p->level--);
14436 return _res;
14437}
14438
14439// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014440// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14441// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14442// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014443static comprehension_ty
14444for_if_clause_rule(Parser *p)
14445{
14446 D(p->level++);
14447 if (p->error_indicator) {
14448 D(p->level--);
14449 return NULL;
14450 }
14451 comprehension_ty _res = NULL;
14452 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014453 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014454 if (p->error_indicator) {
14455 D(p->level--);
14456 return NULL;
14457 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014458 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14459 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014460 Token * _keyword;
14461 Token * _keyword_1;
14462 expr_ty a;
14463 Token * async_var;
14464 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014465 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014466 if (
14467 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14468 &&
14469 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14470 &&
14471 (a = star_targets_rule(p)) // star_targets
14472 &&
14473 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14474 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014475 (_cut_var = 1)
14476 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014477 (b = disjunction_rule(p)) // disjunction
14478 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014479 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014480 )
14481 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014482 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 +020014483 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014484 if (_res == NULL && PyErr_Occurred()) {
14485 p->error_indicator = 1;
14486 D(p->level--);
14487 return NULL;
14488 }
14489 goto done;
14490 }
14491 p->mark = _mark;
14492 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14494 if (_cut_var) {
14495 D(p->level--);
14496 return NULL;
14497 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014498 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014499 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014500 if (p->error_indicator) {
14501 D(p->level--);
14502 return NULL;
14503 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014504 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14505 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014506 Token * _keyword;
14507 Token * _keyword_1;
14508 expr_ty a;
14509 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014510 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014511 if (
14512 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14513 &&
14514 (a = star_targets_rule(p)) // star_targets
14515 &&
14516 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14517 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014518 (_cut_var = 1)
14519 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014520 (b = disjunction_rule(p)) // disjunction
14521 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014522 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014523 )
14524 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014525 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 +020014526 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014527 if (_res == NULL && PyErr_Occurred()) {
14528 p->error_indicator = 1;
14529 D(p->level--);
14530 return NULL;
14531 }
14532 goto done;
14533 }
14534 p->mark = _mark;
14535 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14537 if (_cut_var) {
14538 D(p->level--);
14539 return NULL;
14540 }
14541 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014542 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014543 if (p->error_indicator) {
14544 D(p->level--);
14545 return NULL;
14546 }
14547 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14548 void *invalid_for_target_var;
14549 if (
14550 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14551 )
14552 {
14553 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14554 _res = invalid_for_target_var;
14555 goto done;
14556 }
14557 p->mark = _mark;
14558 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014560 }
14561 _res = NULL;
14562 done:
14563 D(p->level--);
14564 return _res;
14565}
14566
14567// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14568static expr_ty
14569yield_expr_rule(Parser *p)
14570{
14571 D(p->level++);
14572 if (p->error_indicator) {
14573 D(p->level--);
14574 return NULL;
14575 }
14576 expr_ty _res = NULL;
14577 int _mark = p->mark;
14578 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14579 p->error_indicator = 1;
14580 D(p->level--);
14581 return NULL;
14582 }
14583 int _start_lineno = p->tokens[_mark]->lineno;
14584 UNUSED(_start_lineno); // Only used by EXTRA macro
14585 int _start_col_offset = p->tokens[_mark]->col_offset;
14586 UNUSED(_start_col_offset); // Only used by EXTRA macro
14587 { // 'yield' 'from' expression
14588 if (p->error_indicator) {
14589 D(p->level--);
14590 return NULL;
14591 }
14592 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14593 Token * _keyword;
14594 Token * _keyword_1;
14595 expr_ty a;
14596 if (
14597 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14598 &&
14599 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14600 &&
14601 (a = expression_rule(p)) // expression
14602 )
14603 {
14604 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14606 if (_token == NULL) {
14607 D(p->level--);
14608 return NULL;
14609 }
14610 int _end_lineno = _token->end_lineno;
14611 UNUSED(_end_lineno); // Only used by EXTRA macro
14612 int _end_col_offset = _token->end_col_offset;
14613 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014614 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014615 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 yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14625 }
14626 { // 'yield' star_expressions?
14627 if (p->error_indicator) {
14628 D(p->level--);
14629 return NULL;
14630 }
14631 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14632 Token * _keyword;
14633 void *a;
14634 if (
14635 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14636 &&
14637 (a = star_expressions_rule(p), 1) // star_expressions?
14638 )
14639 {
14640 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14641 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14642 if (_token == NULL) {
14643 D(p->level--);
14644 return NULL;
14645 }
14646 int _end_lineno = _token->end_lineno;
14647 UNUSED(_end_lineno); // Only used by EXTRA macro
14648 int _end_col_offset = _token->end_col_offset;
14649 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014650 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014651 if (_res == NULL && PyErr_Occurred()) {
14652 p->error_indicator = 1;
14653 D(p->level--);
14654 return NULL;
14655 }
14656 goto done;
14657 }
14658 p->mark = _mark;
14659 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14661 }
14662 _res = NULL;
14663 done:
14664 D(p->level--);
14665 return _res;
14666}
14667
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014668// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014669static expr_ty
14670arguments_rule(Parser *p)
14671{
14672 D(p->level++);
14673 if (p->error_indicator) {
14674 D(p->level--);
14675 return NULL;
14676 }
14677 expr_ty _res = NULL;
14678 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14679 D(p->level--);
14680 return _res;
14681 }
14682 int _mark = p->mark;
14683 { // args ','? &')'
14684 if (p->error_indicator) {
14685 D(p->level--);
14686 return NULL;
14687 }
14688 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14689 void *_opt_var;
14690 UNUSED(_opt_var); // Silence compiler warnings
14691 expr_ty a;
14692 if (
14693 (a = args_rule(p)) // args
14694 &&
14695 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14696 &&
14697 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14698 )
14699 {
14700 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14701 _res = a;
14702 if (_res == NULL && PyErr_Occurred()) {
14703 p->error_indicator = 1;
14704 D(p->level--);
14705 return NULL;
14706 }
14707 goto done;
14708 }
14709 p->mark = _mark;
14710 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14712 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014713 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014714 if (p->error_indicator) {
14715 D(p->level--);
14716 return NULL;
14717 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014718 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14719 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014720 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014721 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014722 )
14723 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014724 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14725 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014726 goto done;
14727 }
14728 p->mark = _mark;
14729 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014731 }
14732 _res = NULL;
14733 done:
14734 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14735 D(p->level--);
14736 return _res;
14737}
14738
Pablo Galindo4a97b152020-09-02 17:44:19 +010014739// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014740static expr_ty
14741args_rule(Parser *p)
14742{
14743 D(p->level++);
14744 if (p->error_indicator) {
14745 D(p->level--);
14746 return NULL;
14747 }
14748 expr_ty _res = NULL;
14749 int _mark = p->mark;
14750 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14751 p->error_indicator = 1;
14752 D(p->level--);
14753 return NULL;
14754 }
14755 int _start_lineno = p->tokens[_mark]->lineno;
14756 UNUSED(_start_lineno); // Only used by EXTRA macro
14757 int _start_col_offset = p->tokens[_mark]->col_offset;
14758 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010014759 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014760 if (p->error_indicator) {
14761 D(p->level--);
14762 return NULL;
14763 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010014764 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010014765 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014766 void *b;
14767 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014768 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014769 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014770 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014771 )
14772 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010014773 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010014774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14775 if (_token == NULL) {
14776 D(p->level--);
14777 return NULL;
14778 }
14779 int _end_lineno = _token->end_lineno;
14780 UNUSED(_end_lineno); // Only used by EXTRA macro
14781 int _end_col_offset = _token->end_col_offset;
14782 UNUSED(_end_col_offset); // Only used by EXTRA macro
14783 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014784 if (_res == NULL && PyErr_Occurred()) {
14785 p->error_indicator = 1;
14786 D(p->level--);
14787 return NULL;
14788 }
14789 goto done;
14790 }
14791 p->mark = _mark;
14792 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010014793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014794 }
14795 { // kwargs
14796 if (p->error_indicator) {
14797 D(p->level--);
14798 return NULL;
14799 }
14800 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
14801 asdl_seq* a;
14802 if (
14803 (a = kwargs_rule(p)) // kwargs
14804 )
14805 {
14806 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
14807 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14808 if (_token == NULL) {
14809 D(p->level--);
14810 return NULL;
14811 }
14812 int _end_lineno = _token->end_lineno;
14813 UNUSED(_end_lineno); // Only used by EXTRA macro
14814 int _end_col_offset = _token->end_col_offset;
14815 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014816 _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 +010014817 if (_res == NULL && PyErr_Occurred()) {
14818 p->error_indicator = 1;
14819 D(p->level--);
14820 return NULL;
14821 }
14822 goto done;
14823 }
14824 p->mark = _mark;
14825 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
14826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
14827 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014828 _res = NULL;
14829 done:
14830 D(p->level--);
14831 return _res;
14832}
14833
14834// kwargs:
14835// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14836// | ','.kwarg_or_starred+
14837// | ','.kwarg_or_double_starred+
14838static asdl_seq*
14839kwargs_rule(Parser *p)
14840{
14841 D(p->level++);
14842 if (p->error_indicator) {
14843 D(p->level--);
14844 return NULL;
14845 }
14846 asdl_seq* _res = NULL;
14847 int _mark = p->mark;
14848 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14849 if (p->error_indicator) {
14850 D(p->level--);
14851 return NULL;
14852 }
14853 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14854 Token * _literal;
14855 asdl_seq * a;
14856 asdl_seq * b;
14857 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014858 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014859 &&
14860 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14861 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014862 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014863 )
14864 {
14865 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14866 _res = _PyPegen_join_sequences ( p , a , b );
14867 if (_res == NULL && PyErr_Occurred()) {
14868 p->error_indicator = 1;
14869 D(p->level--);
14870 return NULL;
14871 }
14872 goto done;
14873 }
14874 p->mark = _mark;
14875 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14877 }
14878 { // ','.kwarg_or_starred+
14879 if (p->error_indicator) {
14880 D(p->level--);
14881 return NULL;
14882 }
14883 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014884 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014885 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014886 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014887 )
14888 {
14889 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 -080014890 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014891 goto done;
14892 }
14893 p->mark = _mark;
14894 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
14896 }
14897 { // ','.kwarg_or_double_starred+
14898 if (p->error_indicator) {
14899 D(p->level--);
14900 return NULL;
14901 }
14902 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 -080014903 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014904 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014905 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014906 )
14907 {
14908 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 -080014909 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014910 goto done;
14911 }
14912 p->mark = _mark;
14913 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
14915 }
14916 _res = NULL;
14917 done:
14918 D(p->level--);
14919 return _res;
14920}
14921
14922// starred_expression: '*' expression
14923static expr_ty
14924starred_expression_rule(Parser *p)
14925{
14926 D(p->level++);
14927 if (p->error_indicator) {
14928 D(p->level--);
14929 return NULL;
14930 }
14931 expr_ty _res = NULL;
14932 int _mark = p->mark;
14933 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14934 p->error_indicator = 1;
14935 D(p->level--);
14936 return NULL;
14937 }
14938 int _start_lineno = p->tokens[_mark]->lineno;
14939 UNUSED(_start_lineno); // Only used by EXTRA macro
14940 int _start_col_offset = p->tokens[_mark]->col_offset;
14941 UNUSED(_start_col_offset); // Only used by EXTRA macro
14942 { // '*' expression
14943 if (p->error_indicator) {
14944 D(p->level--);
14945 return NULL;
14946 }
14947 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14948 Token * _literal;
14949 expr_ty a;
14950 if (
14951 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
14952 &&
14953 (a = expression_rule(p)) // expression
14954 )
14955 {
14956 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14958 if (_token == NULL) {
14959 D(p->level--);
14960 return NULL;
14961 }
14962 int _end_lineno = _token->end_lineno;
14963 UNUSED(_end_lineno); // Only used by EXTRA macro
14964 int _end_col_offset = _token->end_col_offset;
14965 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014966 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014967 if (_res == NULL && PyErr_Occurred()) {
14968 p->error_indicator = 1;
14969 D(p->level--);
14970 return NULL;
14971 }
14972 goto done;
14973 }
14974 p->mark = _mark;
14975 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
14976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
14977 }
14978 _res = NULL;
14979 done:
14980 D(p->level--);
14981 return _res;
14982}
14983
14984// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
14985static KeywordOrStarred*
14986kwarg_or_starred_rule(Parser *p)
14987{
14988 D(p->level++);
14989 if (p->error_indicator) {
14990 D(p->level--);
14991 return NULL;
14992 }
14993 KeywordOrStarred* _res = NULL;
14994 int _mark = p->mark;
14995 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14996 p->error_indicator = 1;
14997 D(p->level--);
14998 return NULL;
14999 }
15000 int _start_lineno = p->tokens[_mark]->lineno;
15001 UNUSED(_start_lineno); // Only used by EXTRA macro
15002 int _start_col_offset = p->tokens[_mark]->col_offset;
15003 UNUSED(_start_col_offset); // Only used by EXTRA macro
15004 { // NAME '=' expression
15005 if (p->error_indicator) {
15006 D(p->level--);
15007 return NULL;
15008 }
15009 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15010 Token * _literal;
15011 expr_ty a;
15012 expr_ty b;
15013 if (
15014 (a = _PyPegen_name_token(p)) // NAME
15015 &&
15016 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15017 &&
15018 (b = expression_rule(p)) // expression
15019 )
15020 {
15021 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15023 if (_token == NULL) {
15024 D(p->level--);
15025 return NULL;
15026 }
15027 int _end_lineno = _token->end_lineno;
15028 UNUSED(_end_lineno); // Only used by EXTRA macro
15029 int _end_col_offset = _token->end_col_offset;
15030 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015031 _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 +010015032 if (_res == NULL && PyErr_Occurred()) {
15033 p->error_indicator = 1;
15034 D(p->level--);
15035 return NULL;
15036 }
15037 goto done;
15038 }
15039 p->mark = _mark;
15040 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15042 }
15043 { // starred_expression
15044 if (p->error_indicator) {
15045 D(p->level--);
15046 return NULL;
15047 }
15048 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15049 expr_ty a;
15050 if (
15051 (a = starred_expression_rule(p)) // starred_expression
15052 )
15053 {
15054 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
15055 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
15056 if (_res == NULL && PyErr_Occurred()) {
15057 p->error_indicator = 1;
15058 D(p->level--);
15059 return NULL;
15060 }
15061 goto done;
15062 }
15063 p->mark = _mark;
15064 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
15066 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015067 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015068 if (p->error_indicator) {
15069 D(p->level--);
15070 return NULL;
15071 }
15072 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15073 void *invalid_kwarg_var;
15074 if (
15075 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15076 )
15077 {
15078 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15079 _res = invalid_kwarg_var;
15080 goto done;
15081 }
15082 p->mark = _mark;
15083 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
15084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15085 }
15086 _res = NULL;
15087 done:
15088 D(p->level--);
15089 return _res;
15090}
15091
15092// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
15093static KeywordOrStarred*
15094kwarg_or_double_starred_rule(Parser *p)
15095{
15096 D(p->level++);
15097 if (p->error_indicator) {
15098 D(p->level--);
15099 return NULL;
15100 }
15101 KeywordOrStarred* _res = NULL;
15102 int _mark = p->mark;
15103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15104 p->error_indicator = 1;
15105 D(p->level--);
15106 return NULL;
15107 }
15108 int _start_lineno = p->tokens[_mark]->lineno;
15109 UNUSED(_start_lineno); // Only used by EXTRA macro
15110 int _start_col_offset = p->tokens[_mark]->col_offset;
15111 UNUSED(_start_col_offset); // Only used by EXTRA macro
15112 { // NAME '=' expression
15113 if (p->error_indicator) {
15114 D(p->level--);
15115 return NULL;
15116 }
15117 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15118 Token * _literal;
15119 expr_ty a;
15120 expr_ty b;
15121 if (
15122 (a = _PyPegen_name_token(p)) // NAME
15123 &&
15124 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15125 &&
15126 (b = expression_rule(p)) // expression
15127 )
15128 {
15129 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15131 if (_token == NULL) {
15132 D(p->level--);
15133 return NULL;
15134 }
15135 int _end_lineno = _token->end_lineno;
15136 UNUSED(_end_lineno); // Only used by EXTRA macro
15137 int _end_col_offset = _token->end_col_offset;
15138 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015139 _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 +010015140 if (_res == NULL && PyErr_Occurred()) {
15141 p->error_indicator = 1;
15142 D(p->level--);
15143 return NULL;
15144 }
15145 goto done;
15146 }
15147 p->mark = _mark;
15148 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15150 }
15151 { // '**' expression
15152 if (p->error_indicator) {
15153 D(p->level--);
15154 return NULL;
15155 }
15156 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15157 Token * _literal;
15158 expr_ty a;
15159 if (
15160 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15161 &&
15162 (a = expression_rule(p)) // expression
15163 )
15164 {
15165 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15166 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15167 if (_token == NULL) {
15168 D(p->level--);
15169 return NULL;
15170 }
15171 int _end_lineno = _token->end_lineno;
15172 UNUSED(_end_lineno); // Only used by EXTRA macro
15173 int _end_col_offset = _token->end_col_offset;
15174 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015175 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015176 if (_res == NULL && PyErr_Occurred()) {
15177 p->error_indicator = 1;
15178 D(p->level--);
15179 return NULL;
15180 }
15181 goto done;
15182 }
15183 p->mark = _mark;
15184 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15186 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015187 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015188 if (p->error_indicator) {
15189 D(p->level--);
15190 return NULL;
15191 }
15192 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15193 void *invalid_kwarg_var;
15194 if (
15195 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15196 )
15197 {
15198 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15199 _res = invalid_kwarg_var;
15200 goto done;
15201 }
15202 p->mark = _mark;
15203 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15205 }
15206 _res = NULL;
15207 done:
15208 D(p->level--);
15209 return _res;
15210}
15211
15212// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15213static expr_ty
15214star_targets_rule(Parser *p)
15215{
15216 D(p->level++);
15217 if (p->error_indicator) {
15218 D(p->level--);
15219 return NULL;
15220 }
15221 expr_ty _res = NULL;
15222 int _mark = p->mark;
15223 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15224 p->error_indicator = 1;
15225 D(p->level--);
15226 return NULL;
15227 }
15228 int _start_lineno = p->tokens[_mark]->lineno;
15229 UNUSED(_start_lineno); // Only used by EXTRA macro
15230 int _start_col_offset = p->tokens[_mark]->col_offset;
15231 UNUSED(_start_col_offset); // Only used by EXTRA macro
15232 { // star_target !','
15233 if (p->error_indicator) {
15234 D(p->level--);
15235 return NULL;
15236 }
15237 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15238 expr_ty a;
15239 if (
15240 (a = star_target_rule(p)) // star_target
15241 &&
15242 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15243 )
15244 {
15245 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15246 _res = a;
15247 if (_res == NULL && PyErr_Occurred()) {
15248 p->error_indicator = 1;
15249 D(p->level--);
15250 return NULL;
15251 }
15252 goto done;
15253 }
15254 p->mark = _mark;
15255 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15257 }
15258 { // star_target ((',' star_target))* ','?
15259 if (p->error_indicator) {
15260 D(p->level--);
15261 return NULL;
15262 }
15263 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15264 void *_opt_var;
15265 UNUSED(_opt_var); // Silence compiler warnings
15266 expr_ty a;
15267 asdl_seq * b;
15268 if (
15269 (a = star_target_rule(p)) // star_target
15270 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015271 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015272 &&
15273 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15274 )
15275 {
15276 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15278 if (_token == NULL) {
15279 D(p->level--);
15280 return NULL;
15281 }
15282 int _end_lineno = _token->end_lineno;
15283 UNUSED(_end_lineno); // Only used by EXTRA macro
15284 int _end_col_offset = _token->end_col_offset;
15285 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015286 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015287 if (_res == NULL && PyErr_Occurred()) {
15288 p->error_indicator = 1;
15289 D(p->level--);
15290 return NULL;
15291 }
15292 goto done;
15293 }
15294 p->mark = _mark;
15295 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15297 }
15298 _res = NULL;
15299 done:
15300 D(p->level--);
15301 return _res;
15302}
15303
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015304// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015305static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015306star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015307{
15308 D(p->level++);
15309 if (p->error_indicator) {
15310 D(p->level--);
15311 return NULL;
15312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015313 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015314 int _mark = p->mark;
15315 { // ','.star_target+ ','?
15316 if (p->error_indicator) {
15317 D(p->level--);
15318 return NULL;
15319 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015320 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 +010015321 void *_opt_var;
15322 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015323 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015324 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015325 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015326 &&
15327 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15328 )
15329 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015330 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 +010015331 _res = a;
15332 if (_res == NULL && PyErr_Occurred()) {
15333 p->error_indicator = 1;
15334 D(p->level--);
15335 return NULL;
15336 }
15337 goto done;
15338 }
15339 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015340 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15342 }
15343 _res = NULL;
15344 done:
15345 D(p->level--);
15346 return _res;
15347}
15348
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015349// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15350static asdl_expr_seq*
15351star_targets_tuple_seq_rule(Parser *p)
15352{
15353 D(p->level++);
15354 if (p->error_indicator) {
15355 D(p->level--);
15356 return NULL;
15357 }
15358 asdl_expr_seq* _res = NULL;
15359 int _mark = p->mark;
15360 { // star_target ((',' star_target))+ ','?
15361 if (p->error_indicator) {
15362 D(p->level--);
15363 return NULL;
15364 }
15365 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15366 void *_opt_var;
15367 UNUSED(_opt_var); // Silence compiler warnings
15368 expr_ty a;
15369 asdl_seq * b;
15370 if (
15371 (a = star_target_rule(p)) // star_target
15372 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015373 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015374 &&
15375 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15376 )
15377 {
15378 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15379 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15380 if (_res == NULL && PyErr_Occurred()) {
15381 p->error_indicator = 1;
15382 D(p->level--);
15383 return NULL;
15384 }
15385 goto done;
15386 }
15387 p->mark = _mark;
15388 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15390 }
15391 { // star_target ','
15392 if (p->error_indicator) {
15393 D(p->level--);
15394 return NULL;
15395 }
15396 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15397 Token * _literal;
15398 expr_ty a;
15399 if (
15400 (a = star_target_rule(p)) // star_target
15401 &&
15402 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15403 )
15404 {
15405 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15406 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15407 if (_res == NULL && PyErr_Occurred()) {
15408 p->error_indicator = 1;
15409 D(p->level--);
15410 return NULL;
15411 }
15412 goto done;
15413 }
15414 p->mark = _mark;
15415 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15417 }
15418 _res = NULL;
15419 done:
15420 D(p->level--);
15421 return _res;
15422}
15423
15424// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015425static expr_ty
15426star_target_rule(Parser *p)
15427{
15428 D(p->level++);
15429 if (p->error_indicator) {
15430 D(p->level--);
15431 return NULL;
15432 }
15433 expr_ty _res = NULL;
15434 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15435 D(p->level--);
15436 return _res;
15437 }
15438 int _mark = p->mark;
15439 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15440 p->error_indicator = 1;
15441 D(p->level--);
15442 return NULL;
15443 }
15444 int _start_lineno = p->tokens[_mark]->lineno;
15445 UNUSED(_start_lineno); // Only used by EXTRA macro
15446 int _start_col_offset = p->tokens[_mark]->col_offset;
15447 UNUSED(_start_col_offset); // Only used by EXTRA macro
15448 { // '*' (!'*' star_target)
15449 if (p->error_indicator) {
15450 D(p->level--);
15451 return NULL;
15452 }
15453 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15454 Token * _literal;
15455 void *a;
15456 if (
15457 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15458 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015459 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015460 )
15461 {
15462 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15463 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15464 if (_token == NULL) {
15465 D(p->level--);
15466 return NULL;
15467 }
15468 int _end_lineno = _token->end_lineno;
15469 UNUSED(_end_lineno); // Only used by EXTRA macro
15470 int _end_col_offset = _token->end_col_offset;
15471 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015472 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015473 if (_res == NULL && PyErr_Occurred()) {
15474 p->error_indicator = 1;
15475 D(p->level--);
15476 return NULL;
15477 }
15478 goto done;
15479 }
15480 p->mark = _mark;
15481 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15483 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015484 { // target_with_star_atom
15485 if (p->error_indicator) {
15486 D(p->level--);
15487 return NULL;
15488 }
15489 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15490 expr_ty target_with_star_atom_var;
15491 if (
15492 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15493 )
15494 {
15495 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15496 _res = target_with_star_atom_var;
15497 goto done;
15498 }
15499 p->mark = _mark;
15500 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15502 }
15503 _res = NULL;
15504 done:
15505 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15506 D(p->level--);
15507 return _res;
15508}
15509
15510// target_with_star_atom:
15511// | t_primary '.' NAME !t_lookahead
15512// | t_primary '[' slices ']' !t_lookahead
15513// | star_atom
15514static expr_ty
15515target_with_star_atom_rule(Parser *p)
15516{
15517 D(p->level++);
15518 if (p->error_indicator) {
15519 D(p->level--);
15520 return NULL;
15521 }
15522 expr_ty _res = NULL;
15523 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15524 D(p->level--);
15525 return _res;
15526 }
15527 int _mark = p->mark;
15528 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15529 p->error_indicator = 1;
15530 D(p->level--);
15531 return NULL;
15532 }
15533 int _start_lineno = p->tokens[_mark]->lineno;
15534 UNUSED(_start_lineno); // Only used by EXTRA macro
15535 int _start_col_offset = p->tokens[_mark]->col_offset;
15536 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015537 { // t_primary '.' NAME !t_lookahead
15538 if (p->error_indicator) {
15539 D(p->level--);
15540 return NULL;
15541 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015542 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 +010015543 Token * _literal;
15544 expr_ty a;
15545 expr_ty b;
15546 if (
15547 (a = t_primary_rule(p)) // t_primary
15548 &&
15549 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15550 &&
15551 (b = _PyPegen_name_token(p)) // NAME
15552 &&
15553 _PyPegen_lookahead(0, t_lookahead_rule, p)
15554 )
15555 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015556 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 +010015557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15558 if (_token == NULL) {
15559 D(p->level--);
15560 return NULL;
15561 }
15562 int _end_lineno = _token->end_lineno;
15563 UNUSED(_end_lineno); // Only used by EXTRA macro
15564 int _end_col_offset = _token->end_col_offset;
15565 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015566 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015567 if (_res == NULL && PyErr_Occurred()) {
15568 p->error_indicator = 1;
15569 D(p->level--);
15570 return NULL;
15571 }
15572 goto done;
15573 }
15574 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015575 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15577 }
15578 { // t_primary '[' slices ']' !t_lookahead
15579 if (p->error_indicator) {
15580 D(p->level--);
15581 return NULL;
15582 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015583 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 +010015584 Token * _literal;
15585 Token * _literal_1;
15586 expr_ty a;
15587 expr_ty b;
15588 if (
15589 (a = t_primary_rule(p)) // t_primary
15590 &&
15591 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15592 &&
15593 (b = slices_rule(p)) // slices
15594 &&
15595 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15596 &&
15597 _PyPegen_lookahead(0, t_lookahead_rule, p)
15598 )
15599 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015600 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 +010015601 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15602 if (_token == NULL) {
15603 D(p->level--);
15604 return NULL;
15605 }
15606 int _end_lineno = _token->end_lineno;
15607 UNUSED(_end_lineno); // Only used by EXTRA macro
15608 int _end_col_offset = _token->end_col_offset;
15609 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015610 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015611 if (_res == NULL && PyErr_Occurred()) {
15612 p->error_indicator = 1;
15613 D(p->level--);
15614 return NULL;
15615 }
15616 goto done;
15617 }
15618 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015619 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15621 }
15622 { // star_atom
15623 if (p->error_indicator) {
15624 D(p->level--);
15625 return NULL;
15626 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015627 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 +010015628 expr_ty star_atom_var;
15629 if (
15630 (star_atom_var = star_atom_rule(p)) // star_atom
15631 )
15632 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015633 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 +010015634 _res = star_atom_var;
15635 goto done;
15636 }
15637 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015638 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15640 }
15641 _res = NULL;
15642 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015643 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015644 D(p->level--);
15645 return _res;
15646}
15647
15648// star_atom:
15649// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015650// | '(' target_with_star_atom ')'
15651// | '(' star_targets_tuple_seq? ')'
15652// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015653static expr_ty
15654star_atom_rule(Parser *p)
15655{
15656 D(p->level++);
15657 if (p->error_indicator) {
15658 D(p->level--);
15659 return NULL;
15660 }
15661 expr_ty _res = NULL;
15662 int _mark = p->mark;
15663 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15664 p->error_indicator = 1;
15665 D(p->level--);
15666 return NULL;
15667 }
15668 int _start_lineno = p->tokens[_mark]->lineno;
15669 UNUSED(_start_lineno); // Only used by EXTRA macro
15670 int _start_col_offset = p->tokens[_mark]->col_offset;
15671 UNUSED(_start_col_offset); // Only used by EXTRA macro
15672 { // NAME
15673 if (p->error_indicator) {
15674 D(p->level--);
15675 return NULL;
15676 }
15677 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15678 expr_ty a;
15679 if (
15680 (a = _PyPegen_name_token(p)) // NAME
15681 )
15682 {
15683 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15684 _res = _PyPegen_set_expr_context ( p , a , Store );
15685 if (_res == NULL && PyErr_Occurred()) {
15686 p->error_indicator = 1;
15687 D(p->level--);
15688 return NULL;
15689 }
15690 goto done;
15691 }
15692 p->mark = _mark;
15693 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15695 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015696 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015697 if (p->error_indicator) {
15698 D(p->level--);
15699 return NULL;
15700 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015701 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 +010015702 Token * _literal;
15703 Token * _literal_1;
15704 expr_ty a;
15705 if (
15706 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15707 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015708 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015709 &&
15710 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15711 )
15712 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015713 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 +010015714 _res = _PyPegen_set_expr_context ( p , a , Store );
15715 if (_res == NULL && PyErr_Occurred()) {
15716 p->error_indicator = 1;
15717 D(p->level--);
15718 return NULL;
15719 }
15720 goto done;
15721 }
15722 p->mark = _mark;
15723 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015725 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015726 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015727 if (p->error_indicator) {
15728 D(p->level--);
15729 return NULL;
15730 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015731 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 +010015732 Token * _literal;
15733 Token * _literal_1;
15734 void *a;
15735 if (
15736 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15737 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015738 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015739 &&
15740 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15741 )
15742 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015743 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 +010015744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15745 if (_token == NULL) {
15746 D(p->level--);
15747 return NULL;
15748 }
15749 int _end_lineno = _token->end_lineno;
15750 UNUSED(_end_lineno); // Only used by EXTRA macro
15751 int _end_col_offset = _token->end_col_offset;
15752 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015753 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015754 if (_res == NULL && PyErr_Occurred()) {
15755 p->error_indicator = 1;
15756 D(p->level--);
15757 return NULL;
15758 }
15759 goto done;
15760 }
15761 p->mark = _mark;
15762 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015764 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015765 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015766 if (p->error_indicator) {
15767 D(p->level--);
15768 return NULL;
15769 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015770 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 +010015771 Token * _literal;
15772 Token * _literal_1;
15773 void *a;
15774 if (
15775 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15776 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015777 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015778 &&
15779 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15780 )
15781 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015782 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 +010015783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15784 if (_token == NULL) {
15785 D(p->level--);
15786 return NULL;
15787 }
15788 int _end_lineno = _token->end_lineno;
15789 UNUSED(_end_lineno); // Only used by EXTRA macro
15790 int _end_col_offset = _token->end_col_offset;
15791 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015792 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015793 if (_res == NULL && PyErr_Occurred()) {
15794 p->error_indicator = 1;
15795 D(p->level--);
15796 return NULL;
15797 }
15798 goto done;
15799 }
15800 p->mark = _mark;
15801 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015803 }
15804 _res = NULL;
15805 done:
15806 D(p->level--);
15807 return _res;
15808}
15809
15810// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
15811static expr_ty
15812single_target_rule(Parser *p)
15813{
15814 D(p->level++);
15815 if (p->error_indicator) {
15816 D(p->level--);
15817 return NULL;
15818 }
15819 expr_ty _res = NULL;
15820 int _mark = p->mark;
15821 { // single_subscript_attribute_target
15822 if (p->error_indicator) {
15823 D(p->level--);
15824 return NULL;
15825 }
15826 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15827 expr_ty single_subscript_attribute_target_var;
15828 if (
15829 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
15830 )
15831 {
15832 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15833 _res = single_subscript_attribute_target_var;
15834 goto done;
15835 }
15836 p->mark = _mark;
15837 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
15839 }
15840 { // NAME
15841 if (p->error_indicator) {
15842 D(p->level--);
15843 return NULL;
15844 }
15845 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15846 expr_ty a;
15847 if (
15848 (a = _PyPegen_name_token(p)) // NAME
15849 )
15850 {
15851 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15852 _res = _PyPegen_set_expr_context ( p , a , Store );
15853 if (_res == NULL && PyErr_Occurred()) {
15854 p->error_indicator = 1;
15855 D(p->level--);
15856 return NULL;
15857 }
15858 goto done;
15859 }
15860 p->mark = _mark;
15861 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15863 }
15864 { // '(' single_target ')'
15865 if (p->error_indicator) {
15866 D(p->level--);
15867 return NULL;
15868 }
15869 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15870 Token * _literal;
15871 Token * _literal_1;
15872 expr_ty a;
15873 if (
15874 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15875 &&
15876 (a = single_target_rule(p)) // single_target
15877 &&
15878 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15879 )
15880 {
15881 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15882 _res = a;
15883 if (_res == NULL && PyErr_Occurred()) {
15884 p->error_indicator = 1;
15885 D(p->level--);
15886 return NULL;
15887 }
15888 goto done;
15889 }
15890 p->mark = _mark;
15891 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
15893 }
15894 _res = NULL;
15895 done:
15896 D(p->level--);
15897 return _res;
15898}
15899
15900// single_subscript_attribute_target:
15901// | t_primary '.' NAME !t_lookahead
15902// | t_primary '[' slices ']' !t_lookahead
15903static expr_ty
15904single_subscript_attribute_target_rule(Parser *p)
15905{
15906 D(p->level++);
15907 if (p->error_indicator) {
15908 D(p->level--);
15909 return NULL;
15910 }
15911 expr_ty _res = NULL;
15912 int _mark = p->mark;
15913 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15914 p->error_indicator = 1;
15915 D(p->level--);
15916 return NULL;
15917 }
15918 int _start_lineno = p->tokens[_mark]->lineno;
15919 UNUSED(_start_lineno); // Only used by EXTRA macro
15920 int _start_col_offset = p->tokens[_mark]->col_offset;
15921 UNUSED(_start_col_offset); // Only used by EXTRA macro
15922 { // t_primary '.' NAME !t_lookahead
15923 if (p->error_indicator) {
15924 D(p->level--);
15925 return NULL;
15926 }
15927 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15928 Token * _literal;
15929 expr_ty a;
15930 expr_ty b;
15931 if (
15932 (a = t_primary_rule(p)) // t_primary
15933 &&
15934 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15935 &&
15936 (b = _PyPegen_name_token(p)) // NAME
15937 &&
15938 _PyPegen_lookahead(0, t_lookahead_rule, p)
15939 )
15940 {
15941 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15943 if (_token == NULL) {
15944 D(p->level--);
15945 return NULL;
15946 }
15947 int _end_lineno = _token->end_lineno;
15948 UNUSED(_end_lineno); // Only used by EXTRA macro
15949 int _end_col_offset = _token->end_col_offset;
15950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015951 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015952 if (_res == NULL && PyErr_Occurred()) {
15953 p->error_indicator = 1;
15954 D(p->level--);
15955 return NULL;
15956 }
15957 goto done;
15958 }
15959 p->mark = _mark;
15960 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
15961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15962 }
15963 { // t_primary '[' slices ']' !t_lookahead
15964 if (p->error_indicator) {
15965 D(p->level--);
15966 return NULL;
15967 }
15968 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15969 Token * _literal;
15970 Token * _literal_1;
15971 expr_ty a;
15972 expr_ty b;
15973 if (
15974 (a = t_primary_rule(p)) // t_primary
15975 &&
15976 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15977 &&
15978 (b = slices_rule(p)) // slices
15979 &&
15980 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15981 &&
15982 _PyPegen_lookahead(0, t_lookahead_rule, p)
15983 )
15984 {
15985 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15986 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15987 if (_token == NULL) {
15988 D(p->level--);
15989 return NULL;
15990 }
15991 int _end_lineno = _token->end_lineno;
15992 UNUSED(_end_lineno); // Only used by EXTRA macro
15993 int _end_col_offset = _token->end_col_offset;
15994 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015995 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015996 if (_res == NULL && PyErr_Occurred()) {
15997 p->error_indicator = 1;
15998 D(p->level--);
15999 return NULL;
16000 }
16001 goto done;
16002 }
16003 p->mark = _mark;
16004 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
16005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16006 }
16007 _res = NULL;
16008 done:
16009 D(p->level--);
16010 return _res;
16011}
16012
16013// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016014static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016015del_targets_rule(Parser *p)
16016{
16017 D(p->level++);
16018 if (p->error_indicator) {
16019 D(p->level--);
16020 return NULL;
16021 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016022 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016023 int _mark = p->mark;
16024 { // ','.del_target+ ','?
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16030 void *_opt_var;
16031 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016032 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016033 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016034 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016035 &&
16036 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16037 )
16038 {
16039 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
16040 _res = a;
16041 if (_res == NULL && PyErr_Occurred()) {
16042 p->error_indicator = 1;
16043 D(p->level--);
16044 return NULL;
16045 }
16046 goto done;
16047 }
16048 p->mark = _mark;
16049 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
16050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
16051 }
16052 _res = NULL;
16053 done:
16054 D(p->level--);
16055 return _res;
16056}
16057
16058// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016059// | t_primary '.' NAME !t_lookahead
16060// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016061// | del_t_atom
16062static expr_ty
16063del_target_rule(Parser *p)
16064{
16065 D(p->level++);
16066 if (p->error_indicator) {
16067 D(p->level--);
16068 return NULL;
16069 }
16070 expr_ty _res = NULL;
16071 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
16072 D(p->level--);
16073 return _res;
16074 }
16075 int _mark = p->mark;
16076 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16077 p->error_indicator = 1;
16078 D(p->level--);
16079 return NULL;
16080 }
16081 int _start_lineno = p->tokens[_mark]->lineno;
16082 UNUSED(_start_lineno); // Only used by EXTRA macro
16083 int _start_col_offset = p->tokens[_mark]->col_offset;
16084 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016085 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016086 if (p->error_indicator) {
16087 D(p->level--);
16088 return NULL;
16089 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016090 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 +010016091 Token * _literal;
16092 expr_ty a;
16093 expr_ty b;
16094 if (
16095 (a = t_primary_rule(p)) // t_primary
16096 &&
16097 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16098 &&
16099 (b = _PyPegen_name_token(p)) // NAME
16100 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016101 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016102 )
16103 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016104 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 +010016105 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16106 if (_token == NULL) {
16107 D(p->level--);
16108 return NULL;
16109 }
16110 int _end_lineno = _token->end_lineno;
16111 UNUSED(_end_lineno); // Only used by EXTRA macro
16112 int _end_col_offset = _token->end_col_offset;
16113 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016114 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016115 if (_res == NULL && PyErr_Occurred()) {
16116 p->error_indicator = 1;
16117 D(p->level--);
16118 return NULL;
16119 }
16120 goto done;
16121 }
16122 p->mark = _mark;
16123 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016125 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016126 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016127 if (p->error_indicator) {
16128 D(p->level--);
16129 return NULL;
16130 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016131 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 +010016132 Token * _literal;
16133 Token * _literal_1;
16134 expr_ty a;
16135 expr_ty b;
16136 if (
16137 (a = t_primary_rule(p)) // t_primary
16138 &&
16139 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16140 &&
16141 (b = slices_rule(p)) // slices
16142 &&
16143 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16144 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016145 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016146 )
16147 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016148 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 +010016149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16150 if (_token == NULL) {
16151 D(p->level--);
16152 return NULL;
16153 }
16154 int _end_lineno = _token->end_lineno;
16155 UNUSED(_end_lineno); // Only used by EXTRA macro
16156 int _end_col_offset = _token->end_col_offset;
16157 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016158 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016159 if (_res == NULL && PyErr_Occurred()) {
16160 p->error_indicator = 1;
16161 D(p->level--);
16162 return NULL;
16163 }
16164 goto done;
16165 }
16166 p->mark = _mark;
16167 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016169 }
16170 { // del_t_atom
16171 if (p->error_indicator) {
16172 D(p->level--);
16173 return NULL;
16174 }
16175 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16176 expr_ty del_t_atom_var;
16177 if (
16178 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16179 )
16180 {
16181 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16182 _res = del_t_atom_var;
16183 goto done;
16184 }
16185 p->mark = _mark;
16186 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16188 }
16189 _res = NULL;
16190 done:
16191 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16192 D(p->level--);
16193 return _res;
16194}
16195
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016196// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016197static expr_ty
16198del_t_atom_rule(Parser *p)
16199{
16200 D(p->level++);
16201 if (p->error_indicator) {
16202 D(p->level--);
16203 return NULL;
16204 }
16205 expr_ty _res = NULL;
16206 int _mark = p->mark;
16207 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16208 p->error_indicator = 1;
16209 D(p->level--);
16210 return NULL;
16211 }
16212 int _start_lineno = p->tokens[_mark]->lineno;
16213 UNUSED(_start_lineno); // Only used by EXTRA macro
16214 int _start_col_offset = p->tokens[_mark]->col_offset;
16215 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016216 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016217 if (p->error_indicator) {
16218 D(p->level--);
16219 return NULL;
16220 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016221 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016222 expr_ty a;
16223 if (
16224 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016225 )
16226 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016227 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 +010016228 _res = _PyPegen_set_expr_context ( p , a , Del );
16229 if (_res == NULL && PyErr_Occurred()) {
16230 p->error_indicator = 1;
16231 D(p->level--);
16232 return NULL;
16233 }
16234 goto done;
16235 }
16236 p->mark = _mark;
16237 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016239 }
16240 { // '(' del_target ')'
16241 if (p->error_indicator) {
16242 D(p->level--);
16243 return NULL;
16244 }
16245 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16246 Token * _literal;
16247 Token * _literal_1;
16248 expr_ty a;
16249 if (
16250 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16251 &&
16252 (a = del_target_rule(p)) // del_target
16253 &&
16254 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16255 )
16256 {
16257 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16258 _res = _PyPegen_set_expr_context ( p , a , Del );
16259 if (_res == NULL && PyErr_Occurred()) {
16260 p->error_indicator = 1;
16261 D(p->level--);
16262 return NULL;
16263 }
16264 goto done;
16265 }
16266 p->mark = _mark;
16267 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16269 }
16270 { // '(' del_targets? ')'
16271 if (p->error_indicator) {
16272 D(p->level--);
16273 return NULL;
16274 }
16275 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16276 Token * _literal;
16277 Token * _literal_1;
16278 void *a;
16279 if (
16280 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16281 &&
16282 (a = del_targets_rule(p), 1) // del_targets?
16283 &&
16284 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16285 )
16286 {
16287 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16288 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16289 if (_token == NULL) {
16290 D(p->level--);
16291 return NULL;
16292 }
16293 int _end_lineno = _token->end_lineno;
16294 UNUSED(_end_lineno); // Only used by EXTRA macro
16295 int _end_col_offset = _token->end_col_offset;
16296 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016297 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016298 if (_res == NULL && PyErr_Occurred()) {
16299 p->error_indicator = 1;
16300 D(p->level--);
16301 return NULL;
16302 }
16303 goto done;
16304 }
16305 p->mark = _mark;
16306 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16308 }
16309 { // '[' del_targets? ']'
16310 if (p->error_indicator) {
16311 D(p->level--);
16312 return NULL;
16313 }
16314 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16315 Token * _literal;
16316 Token * _literal_1;
16317 void *a;
16318 if (
16319 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16320 &&
16321 (a = del_targets_rule(p), 1) // del_targets?
16322 &&
16323 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16324 )
16325 {
16326 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16327 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16328 if (_token == NULL) {
16329 D(p->level--);
16330 return NULL;
16331 }
16332 int _end_lineno = _token->end_lineno;
16333 UNUSED(_end_lineno); // Only used by EXTRA macro
16334 int _end_col_offset = _token->end_col_offset;
16335 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016336 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016337 if (_res == NULL && PyErr_Occurred()) {
16338 p->error_indicator = 1;
16339 D(p->level--);
16340 return NULL;
16341 }
16342 goto done;
16343 }
16344 p->mark = _mark;
16345 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16347 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016348 _res = NULL;
16349 done:
16350 D(p->level--);
16351 return _res;
16352}
16353
16354// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016355static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016356targets_rule(Parser *p)
16357{
16358 D(p->level++);
16359 if (p->error_indicator) {
16360 D(p->level--);
16361 return NULL;
16362 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016363 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016364 int _mark = p->mark;
16365 { // ','.target+ ','?
16366 if (p->error_indicator) {
16367 D(p->level--);
16368 return NULL;
16369 }
16370 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16371 void *_opt_var;
16372 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016373 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016374 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016375 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016376 &&
16377 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16378 )
16379 {
16380 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16381 _res = a;
16382 if (_res == NULL && PyErr_Occurred()) {
16383 p->error_indicator = 1;
16384 D(p->level--);
16385 return NULL;
16386 }
16387 goto done;
16388 }
16389 p->mark = _mark;
16390 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16392 }
16393 _res = NULL;
16394 done:
16395 D(p->level--);
16396 return _res;
16397}
16398
16399// target:
16400// | t_primary '.' NAME !t_lookahead
16401// | t_primary '[' slices ']' !t_lookahead
16402// | t_atom
16403static expr_ty
16404target_rule(Parser *p)
16405{
16406 D(p->level++);
16407 if (p->error_indicator) {
16408 D(p->level--);
16409 return NULL;
16410 }
16411 expr_ty _res = NULL;
16412 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16413 D(p->level--);
16414 return _res;
16415 }
16416 int _mark = p->mark;
16417 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16418 p->error_indicator = 1;
16419 D(p->level--);
16420 return NULL;
16421 }
16422 int _start_lineno = p->tokens[_mark]->lineno;
16423 UNUSED(_start_lineno); // Only used by EXTRA macro
16424 int _start_col_offset = p->tokens[_mark]->col_offset;
16425 UNUSED(_start_col_offset); // Only used by EXTRA macro
16426 { // t_primary '.' NAME !t_lookahead
16427 if (p->error_indicator) {
16428 D(p->level--);
16429 return NULL;
16430 }
16431 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16432 Token * _literal;
16433 expr_ty a;
16434 expr_ty b;
16435 if (
16436 (a = t_primary_rule(p)) // t_primary
16437 &&
16438 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16439 &&
16440 (b = _PyPegen_name_token(p)) // NAME
16441 &&
16442 _PyPegen_lookahead(0, t_lookahead_rule, p)
16443 )
16444 {
16445 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16446 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16447 if (_token == NULL) {
16448 D(p->level--);
16449 return NULL;
16450 }
16451 int _end_lineno = _token->end_lineno;
16452 UNUSED(_end_lineno); // Only used by EXTRA macro
16453 int _end_col_offset = _token->end_col_offset;
16454 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016455 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016456 if (_res == NULL && PyErr_Occurred()) {
16457 p->error_indicator = 1;
16458 D(p->level--);
16459 return NULL;
16460 }
16461 goto done;
16462 }
16463 p->mark = _mark;
16464 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16466 }
16467 { // t_primary '[' slices ']' !t_lookahead
16468 if (p->error_indicator) {
16469 D(p->level--);
16470 return NULL;
16471 }
16472 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16473 Token * _literal;
16474 Token * _literal_1;
16475 expr_ty a;
16476 expr_ty b;
16477 if (
16478 (a = t_primary_rule(p)) // t_primary
16479 &&
16480 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16481 &&
16482 (b = slices_rule(p)) // slices
16483 &&
16484 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16485 &&
16486 _PyPegen_lookahead(0, t_lookahead_rule, p)
16487 )
16488 {
16489 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16490 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16491 if (_token == NULL) {
16492 D(p->level--);
16493 return NULL;
16494 }
16495 int _end_lineno = _token->end_lineno;
16496 UNUSED(_end_lineno); // Only used by EXTRA macro
16497 int _end_col_offset = _token->end_col_offset;
16498 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016499 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016500 if (_res == NULL && PyErr_Occurred()) {
16501 p->error_indicator = 1;
16502 D(p->level--);
16503 return NULL;
16504 }
16505 goto done;
16506 }
16507 p->mark = _mark;
16508 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16510 }
16511 { // t_atom
16512 if (p->error_indicator) {
16513 D(p->level--);
16514 return NULL;
16515 }
16516 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16517 expr_ty t_atom_var;
16518 if (
16519 (t_atom_var = t_atom_rule(p)) // t_atom
16520 )
16521 {
16522 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16523 _res = t_atom_var;
16524 goto done;
16525 }
16526 p->mark = _mark;
16527 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16529 }
16530 _res = NULL;
16531 done:
16532 _PyPegen_insert_memo(p, _mark, target_type, _res);
16533 D(p->level--);
16534 return _res;
16535}
16536
16537// Left-recursive
16538// t_primary:
16539// | t_primary '.' NAME &t_lookahead
16540// | t_primary '[' slices ']' &t_lookahead
16541// | t_primary genexp &t_lookahead
16542// | t_primary '(' arguments? ')' &t_lookahead
16543// | atom &t_lookahead
16544static expr_ty t_primary_raw(Parser *);
16545static expr_ty
16546t_primary_rule(Parser *p)
16547{
16548 D(p->level++);
16549 expr_ty _res = NULL;
16550 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16551 D(p->level--);
16552 return _res;
16553 }
16554 int _mark = p->mark;
16555 int _resmark = p->mark;
16556 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016557 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16558 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016559 D(p->level--);
16560 return _res;
16561 }
16562 p->mark = _mark;
16563 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016564 if (p->error_indicator)
16565 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016566 if (_raw == NULL || p->mark <= _resmark)
16567 break;
16568 _resmark = p->mark;
16569 _res = _raw;
16570 }
16571 p->mark = _resmark;
16572 D(p->level--);
16573 return _res;
16574}
16575static expr_ty
16576t_primary_raw(Parser *p)
16577{
16578 D(p->level++);
16579 if (p->error_indicator) {
16580 D(p->level--);
16581 return NULL;
16582 }
16583 expr_ty _res = NULL;
16584 int _mark = p->mark;
16585 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16586 p->error_indicator = 1;
16587 D(p->level--);
16588 return NULL;
16589 }
16590 int _start_lineno = p->tokens[_mark]->lineno;
16591 UNUSED(_start_lineno); // Only used by EXTRA macro
16592 int _start_col_offset = p->tokens[_mark]->col_offset;
16593 UNUSED(_start_col_offset); // Only used by EXTRA macro
16594 { // t_primary '.' NAME &t_lookahead
16595 if (p->error_indicator) {
16596 D(p->level--);
16597 return NULL;
16598 }
16599 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16600 Token * _literal;
16601 expr_ty a;
16602 expr_ty b;
16603 if (
16604 (a = t_primary_rule(p)) // t_primary
16605 &&
16606 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16607 &&
16608 (b = _PyPegen_name_token(p)) // NAME
16609 &&
16610 _PyPegen_lookahead(1, t_lookahead_rule, p)
16611 )
16612 {
16613 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16615 if (_token == NULL) {
16616 D(p->level--);
16617 return NULL;
16618 }
16619 int _end_lineno = _token->end_lineno;
16620 UNUSED(_end_lineno); // Only used by EXTRA macro
16621 int _end_col_offset = _token->end_col_offset;
16622 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016623 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016624 if (_res == NULL && PyErr_Occurred()) {
16625 p->error_indicator = 1;
16626 D(p->level--);
16627 return NULL;
16628 }
16629 goto done;
16630 }
16631 p->mark = _mark;
16632 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16634 }
16635 { // t_primary '[' slices ']' &t_lookahead
16636 if (p->error_indicator) {
16637 D(p->level--);
16638 return NULL;
16639 }
16640 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16641 Token * _literal;
16642 Token * _literal_1;
16643 expr_ty a;
16644 expr_ty b;
16645 if (
16646 (a = t_primary_rule(p)) // t_primary
16647 &&
16648 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16649 &&
16650 (b = slices_rule(p)) // slices
16651 &&
16652 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16653 &&
16654 _PyPegen_lookahead(1, t_lookahead_rule, p)
16655 )
16656 {
16657 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16659 if (_token == NULL) {
16660 D(p->level--);
16661 return NULL;
16662 }
16663 int _end_lineno = _token->end_lineno;
16664 UNUSED(_end_lineno); // Only used by EXTRA macro
16665 int _end_col_offset = _token->end_col_offset;
16666 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016667 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016668 if (_res == NULL && PyErr_Occurred()) {
16669 p->error_indicator = 1;
16670 D(p->level--);
16671 return NULL;
16672 }
16673 goto done;
16674 }
16675 p->mark = _mark;
16676 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16678 }
16679 { // t_primary genexp &t_lookahead
16680 if (p->error_indicator) {
16681 D(p->level--);
16682 return NULL;
16683 }
16684 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16685 expr_ty a;
16686 expr_ty b;
16687 if (
16688 (a = t_primary_rule(p)) // t_primary
16689 &&
16690 (b = genexp_rule(p)) // genexp
16691 &&
16692 _PyPegen_lookahead(1, t_lookahead_rule, p)
16693 )
16694 {
16695 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16697 if (_token == NULL) {
16698 D(p->level--);
16699 return NULL;
16700 }
16701 int _end_lineno = _token->end_lineno;
16702 UNUSED(_end_lineno); // Only used by EXTRA macro
16703 int _end_col_offset = _token->end_col_offset;
16704 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016705 _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 +010016706 if (_res == NULL && PyErr_Occurred()) {
16707 p->error_indicator = 1;
16708 D(p->level--);
16709 return NULL;
16710 }
16711 goto done;
16712 }
16713 p->mark = _mark;
16714 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16716 }
16717 { // t_primary '(' arguments? ')' &t_lookahead
16718 if (p->error_indicator) {
16719 D(p->level--);
16720 return NULL;
16721 }
16722 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16723 Token * _literal;
16724 Token * _literal_1;
16725 expr_ty a;
16726 void *b;
16727 if (
16728 (a = t_primary_rule(p)) // t_primary
16729 &&
16730 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16731 &&
16732 (b = arguments_rule(p), 1) // arguments?
16733 &&
16734 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16735 &&
16736 _PyPegen_lookahead(1, t_lookahead_rule, p)
16737 )
16738 {
16739 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16741 if (_token == NULL) {
16742 D(p->level--);
16743 return NULL;
16744 }
16745 int _end_lineno = _token->end_lineno;
16746 UNUSED(_end_lineno); // Only used by EXTRA macro
16747 int _end_col_offset = _token->end_col_offset;
16748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016749 _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 +010016750 if (_res == NULL && PyErr_Occurred()) {
16751 p->error_indicator = 1;
16752 D(p->level--);
16753 return NULL;
16754 }
16755 goto done;
16756 }
16757 p->mark = _mark;
16758 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16760 }
16761 { // atom &t_lookahead
16762 if (p->error_indicator) {
16763 D(p->level--);
16764 return NULL;
16765 }
16766 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16767 expr_ty a;
16768 if (
16769 (a = atom_rule(p)) // atom
16770 &&
16771 _PyPegen_lookahead(1, t_lookahead_rule, p)
16772 )
16773 {
16774 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16775 _res = a;
16776 if (_res == NULL && PyErr_Occurred()) {
16777 p->error_indicator = 1;
16778 D(p->level--);
16779 return NULL;
16780 }
16781 goto done;
16782 }
16783 p->mark = _mark;
16784 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
16786 }
16787 _res = NULL;
16788 done:
16789 D(p->level--);
16790 return _res;
16791}
16792
16793// t_lookahead: '(' | '[' | '.'
16794static void *
16795t_lookahead_rule(Parser *p)
16796{
16797 D(p->level++);
16798 if (p->error_indicator) {
16799 D(p->level--);
16800 return NULL;
16801 }
16802 void * _res = NULL;
16803 int _mark = p->mark;
16804 { // '('
16805 if (p->error_indicator) {
16806 D(p->level--);
16807 return NULL;
16808 }
16809 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
16810 Token * _literal;
16811 if (
16812 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16813 )
16814 {
16815 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
16816 _res = _literal;
16817 goto done;
16818 }
16819 p->mark = _mark;
16820 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
16822 }
16823 { // '['
16824 if (p->error_indicator) {
16825 D(p->level--);
16826 return NULL;
16827 }
16828 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
16829 Token * _literal;
16830 if (
16831 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16832 )
16833 {
16834 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
16835 _res = _literal;
16836 goto done;
16837 }
16838 p->mark = _mark;
16839 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
16841 }
16842 { // '.'
16843 if (p->error_indicator) {
16844 D(p->level--);
16845 return NULL;
16846 }
16847 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
16848 Token * _literal;
16849 if (
16850 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16851 )
16852 {
16853 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
16854 _res = _literal;
16855 goto done;
16856 }
16857 p->mark = _mark;
16858 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
16860 }
16861 _res = NULL;
16862 done:
16863 D(p->level--);
16864 return _res;
16865}
16866
16867// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
16868static expr_ty
16869t_atom_rule(Parser *p)
16870{
16871 D(p->level++);
16872 if (p->error_indicator) {
16873 D(p->level--);
16874 return NULL;
16875 }
16876 expr_ty _res = NULL;
16877 int _mark = p->mark;
16878 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16879 p->error_indicator = 1;
16880 D(p->level--);
16881 return NULL;
16882 }
16883 int _start_lineno = p->tokens[_mark]->lineno;
16884 UNUSED(_start_lineno); // Only used by EXTRA macro
16885 int _start_col_offset = p->tokens[_mark]->col_offset;
16886 UNUSED(_start_col_offset); // Only used by EXTRA macro
16887 { // NAME
16888 if (p->error_indicator) {
16889 D(p->level--);
16890 return NULL;
16891 }
16892 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16893 expr_ty a;
16894 if (
16895 (a = _PyPegen_name_token(p)) // NAME
16896 )
16897 {
16898 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16899 _res = _PyPegen_set_expr_context ( p , a , Store );
16900 if (_res == NULL && PyErr_Occurred()) {
16901 p->error_indicator = 1;
16902 D(p->level--);
16903 return NULL;
16904 }
16905 goto done;
16906 }
16907 p->mark = _mark;
16908 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16910 }
16911 { // '(' target ')'
16912 if (p->error_indicator) {
16913 D(p->level--);
16914 return NULL;
16915 }
16916 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16917 Token * _literal;
16918 Token * _literal_1;
16919 expr_ty a;
16920 if (
16921 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16922 &&
16923 (a = target_rule(p)) // target
16924 &&
16925 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16926 )
16927 {
16928 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16929 _res = _PyPegen_set_expr_context ( p , a , Store );
16930 if (_res == NULL && PyErr_Occurred()) {
16931 p->error_indicator = 1;
16932 D(p->level--);
16933 return NULL;
16934 }
16935 goto done;
16936 }
16937 p->mark = _mark;
16938 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
16940 }
16941 { // '(' targets? ')'
16942 if (p->error_indicator) {
16943 D(p->level--);
16944 return NULL;
16945 }
16946 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
16947 Token * _literal;
16948 Token * _literal_1;
16949 void *b;
16950 if (
16951 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16952 &&
16953 (b = targets_rule(p), 1) // targets?
16954 &&
16955 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16956 )
16957 {
16958 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
16959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16960 if (_token == NULL) {
16961 D(p->level--);
16962 return NULL;
16963 }
16964 int _end_lineno = _token->end_lineno;
16965 UNUSED(_end_lineno); // Only used by EXTRA macro
16966 int _end_col_offset = _token->end_col_offset;
16967 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016968 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016969 if (_res == NULL && PyErr_Occurred()) {
16970 p->error_indicator = 1;
16971 D(p->level--);
16972 return NULL;
16973 }
16974 goto done;
16975 }
16976 p->mark = _mark;
16977 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
16979 }
16980 { // '[' targets? ']'
16981 if (p->error_indicator) {
16982 D(p->level--);
16983 return NULL;
16984 }
16985 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16986 Token * _literal;
16987 Token * _literal_1;
16988 void *b;
16989 if (
16990 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16991 &&
16992 (b = targets_rule(p), 1) // targets?
16993 &&
16994 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16995 )
16996 {
16997 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16999 if (_token == NULL) {
17000 D(p->level--);
17001 return NULL;
17002 }
17003 int _end_lineno = _token->end_lineno;
17004 UNUSED(_end_lineno); // Only used by EXTRA macro
17005 int _end_col_offset = _token->end_col_offset;
17006 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017007 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017008 if (_res == NULL && PyErr_Occurred()) {
17009 p->error_indicator = 1;
17010 D(p->level--);
17011 return NULL;
17012 }
17013 goto done;
17014 }
17015 p->mark = _mark;
17016 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
17018 }
17019 _res = NULL;
17020 done:
17021 D(p->level--);
17022 return _res;
17023}
17024
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017025// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017026// | args ',' '*'
17027// | expression for_if_clauses ',' [args | expression for_if_clauses]
17028// | args for_if_clauses
17029// | args ',' expression for_if_clauses
17030// | args ',' args
17031static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017032invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017033{
17034 D(p->level++);
17035 if (p->error_indicator) {
17036 D(p->level--);
17037 return NULL;
17038 }
17039 void * _res = NULL;
17040 int _mark = p->mark;
17041 { // args ',' '*'
17042 if (p->error_indicator) {
17043 D(p->level--);
17044 return NULL;
17045 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017046 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017047 Token * _literal;
17048 Token * _literal_1;
17049 expr_ty args_var;
17050 if (
17051 (args_var = args_rule(p)) // args
17052 &&
17053 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17054 &&
17055 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17056 )
17057 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017058 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017059 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
17060 if (_res == NULL && PyErr_Occurred()) {
17061 p->error_indicator = 1;
17062 D(p->level--);
17063 return NULL;
17064 }
17065 goto done;
17066 }
17067 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017068 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17070 }
17071 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17072 if (p->error_indicator) {
17073 D(p->level--);
17074 return NULL;
17075 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017076 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 +010017077 Token * _literal;
17078 void *_opt_var;
17079 UNUSED(_opt_var); // Silence compiler warnings
17080 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017081 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017082 if (
17083 (a = expression_rule(p)) // expression
17084 &&
17085 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17086 &&
17087 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17088 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017089 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017090 )
17091 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017092 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 +010017093 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17094 if (_res == NULL && PyErr_Occurred()) {
17095 p->error_indicator = 1;
17096 D(p->level--);
17097 return NULL;
17098 }
17099 goto done;
17100 }
17101 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017102 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17104 }
17105 { // args for_if_clauses
17106 if (p->error_indicator) {
17107 D(p->level--);
17108 return NULL;
17109 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017110 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 +010017111 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017112 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017113 if (
17114 (a = args_rule(p)) // args
17115 &&
17116 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17117 )
17118 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017119 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 +010017120 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17121 if (_res == NULL && PyErr_Occurred()) {
17122 p->error_indicator = 1;
17123 D(p->level--);
17124 return NULL;
17125 }
17126 goto done;
17127 }
17128 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017129 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17131 }
17132 { // args ',' expression for_if_clauses
17133 if (p->error_indicator) {
17134 D(p->level--);
17135 return NULL;
17136 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017137 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 +010017138 Token * _literal;
17139 expr_ty a;
17140 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017141 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017142 if (
17143 (args_var = args_rule(p)) // args
17144 &&
17145 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17146 &&
17147 (a = expression_rule(p)) // expression
17148 &&
17149 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17150 )
17151 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017152 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 +010017153 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17154 if (_res == NULL && PyErr_Occurred()) {
17155 p->error_indicator = 1;
17156 D(p->level--);
17157 return NULL;
17158 }
17159 goto done;
17160 }
17161 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017162 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17164 }
17165 { // args ',' args
17166 if (p->error_indicator) {
17167 D(p->level--);
17168 return NULL;
17169 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017170 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017171 Token * _literal;
17172 expr_ty a;
17173 expr_ty args_var;
17174 if (
17175 (a = args_rule(p)) // args
17176 &&
17177 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17178 &&
17179 (args_var = args_rule(p)) // args
17180 )
17181 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017182 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 +010017183 _res = _PyPegen_arguments_parsing_error ( p , a );
17184 if (_res == NULL && PyErr_Occurred()) {
17185 p->error_indicator = 1;
17186 D(p->level--);
17187 return NULL;
17188 }
17189 goto done;
17190 }
17191 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017192 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17194 }
17195 _res = NULL;
17196 done:
17197 D(p->level--);
17198 return _res;
17199}
17200
17201// invalid_kwarg: expression '='
17202static void *
17203invalid_kwarg_rule(Parser *p)
17204{
17205 D(p->level++);
17206 if (p->error_indicator) {
17207 D(p->level--);
17208 return NULL;
17209 }
17210 void * _res = NULL;
17211 int _mark = p->mark;
17212 { // expression '='
17213 if (p->error_indicator) {
17214 D(p->level--);
17215 return NULL;
17216 }
17217 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017218 Token * a;
17219 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017220 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017221 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017222 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017223 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017224 )
17225 {
17226 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17227 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17228 if (_res == NULL && PyErr_Occurred()) {
17229 p->error_indicator = 1;
17230 D(p->level--);
17231 return NULL;
17232 }
17233 goto done;
17234 }
17235 p->mark = _mark;
17236 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17238 }
17239 _res = NULL;
17240 done:
17241 D(p->level--);
17242 return _res;
17243}
17244
17245// invalid_named_expression: expression ':=' expression
17246static void *
17247invalid_named_expression_rule(Parser *p)
17248{
17249 D(p->level++);
17250 if (p->error_indicator) {
17251 D(p->level--);
17252 return NULL;
17253 }
17254 void * _res = NULL;
17255 int _mark = p->mark;
17256 { // expression ':=' expression
17257 if (p->error_indicator) {
17258 D(p->level--);
17259 return NULL;
17260 }
17261 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17262 Token * _literal;
17263 expr_ty a;
17264 expr_ty expression_var;
17265 if (
17266 (a = expression_rule(p)) // expression
17267 &&
17268 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17269 &&
17270 (expression_var = expression_rule(p)) // expression
17271 )
17272 {
17273 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17274 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17275 if (_res == NULL && PyErr_Occurred()) {
17276 p->error_indicator = 1;
17277 D(p->level--);
17278 return NULL;
17279 }
17280 goto done;
17281 }
17282 p->mark = _mark;
17283 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17285 }
17286 _res = NULL;
17287 done:
17288 D(p->level--);
17289 return _res;
17290}
17291
17292// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017293// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017294// | star_named_expression ',' star_named_expressions* ':' expression
17295// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017296// | ((star_targets '='))* star_expressions '='
17297// | ((star_targets '='))* yield_expr '='
17298// | star_expressions augassign (yield_expr | star_expressions)
17299static void *
17300invalid_assignment_rule(Parser *p)
17301{
17302 D(p->level++);
17303 if (p->error_indicator) {
17304 D(p->level--);
17305 return NULL;
17306 }
17307 void * _res = NULL;
17308 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017309 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017310 if (p->error_indicator) {
17311 D(p->level--);
17312 return NULL;
17313 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017314 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 +010017315 Token * _literal;
17316 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017317 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017318 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017319 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017320 &&
17321 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017322 &&
17323 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017324 )
17325 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017326 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17327 _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 +010017328 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;
17336 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017338 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017339 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017340 if (p->error_indicator) {
17341 D(p->level--);
17342 return NULL;
17343 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017344 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 +010017345 Token * _literal;
17346 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -080017347 asdl_seq * _loop0_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017348 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017349 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017350 if (
17351 (a = star_named_expression_rule(p)) // star_named_expression
17352 &&
17353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17354 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017355 (_loop0_143_var = _loop0_143_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017356 &&
17357 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017358 &&
17359 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017360 )
17361 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017362 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 +010017363 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17364 if (_res == NULL && PyErr_Occurred()) {
17365 p->error_indicator = 1;
17366 D(p->level--);
17367 return NULL;
17368 }
17369 goto done;
17370 }
17371 p->mark = _mark;
17372 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017374 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017375 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017376 if (p->error_indicator) {
17377 D(p->level--);
17378 return NULL;
17379 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017380 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017381 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017382 expr_ty a;
17383 expr_ty expression_var;
17384 if (
17385 (a = expression_rule(p)) // expression
17386 &&
17387 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17388 &&
17389 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017390 )
17391 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017392 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 +010017393 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17394 if (_res == NULL && PyErr_Occurred()) {
17395 p->error_indicator = 1;
17396 D(p->level--);
17397 return NULL;
17398 }
17399 goto done;
17400 }
17401 p->mark = _mark;
17402 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017404 }
17405 { // ((star_targets '='))* star_expressions '='
17406 if (p->error_indicator) {
17407 D(p->level--);
17408 return NULL;
17409 }
17410 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17411 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017412 asdl_seq * _loop0_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017413 expr_ty a;
17414 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017415 (_loop0_144_var = _loop0_144_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017416 &&
17417 (a = star_expressions_rule(p)) // star_expressions
17418 &&
17419 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17420 )
17421 {
17422 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 +030017423 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017424 if (_res == NULL && PyErr_Occurred()) {
17425 p->error_indicator = 1;
17426 D(p->level--);
17427 return NULL;
17428 }
17429 goto done;
17430 }
17431 p->mark = _mark;
17432 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17434 }
17435 { // ((star_targets '='))* yield_expr '='
17436 if (p->error_indicator) {
17437 D(p->level--);
17438 return NULL;
17439 }
17440 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17441 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017442 asdl_seq * _loop0_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017443 expr_ty a;
17444 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017445 (_loop0_145_var = _loop0_145_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017446 &&
17447 (a = yield_expr_rule(p)) // yield_expr
17448 &&
17449 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17450 )
17451 {
17452 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17453 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17454 if (_res == NULL && PyErr_Occurred()) {
17455 p->error_indicator = 1;
17456 D(p->level--);
17457 return NULL;
17458 }
17459 goto done;
17460 }
17461 p->mark = _mark;
17462 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17464 }
17465 { // star_expressions augassign (yield_expr | star_expressions)
17466 if (p->error_indicator) {
17467 D(p->level--);
17468 return NULL;
17469 }
17470 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017471 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017472 expr_ty a;
17473 AugOperator* augassign_var;
17474 if (
17475 (a = star_expressions_rule(p)) // star_expressions
17476 &&
17477 (augassign_var = augassign_rule(p)) // augassign
17478 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017479 (_tmp_146_var = _tmp_146_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017480 )
17481 {
17482 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17483 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17484 if (_res == NULL && PyErr_Occurred()) {
17485 p->error_indicator = 1;
17486 D(p->level--);
17487 return NULL;
17488 }
17489 goto done;
17490 }
17491 p->mark = _mark;
17492 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17494 }
17495 _res = NULL;
17496 done:
17497 D(p->level--);
17498 return _res;
17499}
17500
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017501// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17502static expr_ty
17503invalid_ann_assign_target_rule(Parser *p)
17504{
17505 D(p->level++);
17506 if (p->error_indicator) {
17507 D(p->level--);
17508 return NULL;
17509 }
17510 expr_ty _res = NULL;
17511 int _mark = p->mark;
17512 { // list
17513 if (p->error_indicator) {
17514 D(p->level--);
17515 return NULL;
17516 }
17517 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17518 expr_ty list_var;
17519 if (
17520 (list_var = list_rule(p)) // list
17521 )
17522 {
17523 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17524 _res = list_var;
17525 goto done;
17526 }
17527 p->mark = _mark;
17528 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17530 }
17531 { // tuple
17532 if (p->error_indicator) {
17533 D(p->level--);
17534 return NULL;
17535 }
17536 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17537 expr_ty tuple_var;
17538 if (
17539 (tuple_var = tuple_rule(p)) // tuple
17540 )
17541 {
17542 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17543 _res = tuple_var;
17544 goto done;
17545 }
17546 p->mark = _mark;
17547 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17549 }
17550 { // '(' invalid_ann_assign_target ')'
17551 if (p->error_indicator) {
17552 D(p->level--);
17553 return NULL;
17554 }
17555 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17556 Token * _literal;
17557 Token * _literal_1;
17558 expr_ty a;
17559 if (
17560 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17561 &&
17562 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17563 &&
17564 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17565 )
17566 {
17567 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17568 _res = a;
17569 if (_res == NULL && PyErr_Occurred()) {
17570 p->error_indicator = 1;
17571 D(p->level--);
17572 return NULL;
17573 }
17574 goto done;
17575 }
17576 p->mark = _mark;
17577 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17579 }
17580 _res = NULL;
17581 done:
17582 D(p->level--);
17583 return _res;
17584}
17585
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017586// invalid_del_stmt: 'del' star_expressions
17587static void *
17588invalid_del_stmt_rule(Parser *p)
17589{
17590 D(p->level++);
17591 if (p->error_indicator) {
17592 D(p->level--);
17593 return NULL;
17594 }
17595 void * _res = NULL;
17596 int _mark = p->mark;
17597 { // 'del' star_expressions
17598 if (p->error_indicator) {
17599 D(p->level--);
17600 return NULL;
17601 }
17602 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17603 Token * _keyword;
17604 expr_ty a;
17605 if (
17606 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17607 &&
17608 (a = star_expressions_rule(p)) // star_expressions
17609 )
17610 {
17611 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 +030017612 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017613 if (_res == NULL && PyErr_Occurred()) {
17614 p->error_indicator = 1;
17615 D(p->level--);
17616 return NULL;
17617 }
17618 goto done;
17619 }
17620 p->mark = _mark;
17621 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17623 }
17624 _res = NULL;
17625 done:
17626 D(p->level--);
17627 return _res;
17628}
17629
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017630// invalid_block: NEWLINE !INDENT
17631static void *
17632invalid_block_rule(Parser *p)
17633{
17634 D(p->level++);
17635 if (p->error_indicator) {
17636 D(p->level--);
17637 return NULL;
17638 }
17639 void * _res = NULL;
17640 int _mark = p->mark;
17641 { // NEWLINE !INDENT
17642 if (p->error_indicator) {
17643 D(p->level--);
17644 return NULL;
17645 }
17646 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17647 Token * newline_var;
17648 if (
17649 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17650 &&
17651 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
17652 )
17653 {
17654 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17655 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
17656 if (_res == NULL && PyErr_Occurred()) {
17657 p->error_indicator = 1;
17658 D(p->level--);
17659 return NULL;
17660 }
17661 goto done;
17662 }
17663 p->mark = _mark;
17664 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
17665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
17666 }
17667 _res = NULL;
17668 done:
17669 D(p->level--);
17670 return _res;
17671}
17672
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020017673// Left-recursive
17674// invalid_primary: primary '{'
17675static void *
17676invalid_primary_rule(Parser *p)
17677{
17678 D(p->level++);
17679 if (p->error_indicator) {
17680 D(p->level--);
17681 return NULL;
17682 }
17683 void * _res = NULL;
17684 int _mark = p->mark;
17685 { // primary '{'
17686 if (p->error_indicator) {
17687 D(p->level--);
17688 return NULL;
17689 }
17690 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17691 Token * a;
17692 expr_ty primary_var;
17693 if (
17694 (primary_var = primary_rule(p)) // primary
17695 &&
17696 (a = _PyPegen_expect_token(p, 25)) // token='{'
17697 )
17698 {
17699 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17700 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
17701 if (_res == NULL && PyErr_Occurred()) {
17702 p->error_indicator = 1;
17703 D(p->level--);
17704 return NULL;
17705 }
17706 goto done;
17707 }
17708 p->mark = _mark;
17709 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
17710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
17711 }
17712 _res = NULL;
17713 done:
17714 D(p->level--);
17715 return _res;
17716}
17717
Pablo Galindo835f14f2021-01-31 22:52:56 +000017718// invalid_comprehension:
17719// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017720// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017721static void *
17722invalid_comprehension_rule(Parser *p)
17723{
17724 D(p->level++);
17725 if (p->error_indicator) {
17726 D(p->level--);
17727 return NULL;
17728 }
17729 void * _res = NULL;
17730 int _mark = p->mark;
17731 { // ('[' | '(' | '{') starred_expression for_if_clauses
17732 if (p->error_indicator) {
17733 D(p->level--);
17734 return NULL;
17735 }
17736 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017737 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017738 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017739 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017740 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017741 (_tmp_147_var = _tmp_147_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017742 &&
17743 (a = starred_expression_rule(p)) // starred_expression
17744 &&
17745 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17746 )
17747 {
17748 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17749 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
17750 if (_res == NULL && PyErr_Occurred()) {
17751 p->error_indicator = 1;
17752 D(p->level--);
17753 return NULL;
17754 }
17755 goto done;
17756 }
17757 p->mark = _mark;
17758 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17760 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017761 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017766 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 +000017767 Token * _literal;
17768 void *_opt_var;
17769 UNUSED(_opt_var); // Silence compiler warnings
Brandt Bucher145bf262021-02-26 14:51:55 -080017770 void *_tmp_148_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017771 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017772 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017773 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017774 (_tmp_148_var = _tmp_148_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000017775 &&
17776 (a = star_named_expression_rule(p)) // star_named_expression
17777 &&
17778 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17779 &&
17780 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017781 &&
17782 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017783 )
17784 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017785 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 +000017786 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
17787 if (_res == NULL && PyErr_Occurred()) {
17788 p->error_indicator = 1;
17789 D(p->level--);
17790 return NULL;
17791 }
17792 goto done;
17793 }
17794 p->mark = _mark;
17795 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017797 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017798 _res = NULL;
17799 done:
17800 D(p->level--);
17801 return _res;
17802}
17803
17804// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
17805static void *
17806invalid_dict_comprehension_rule(Parser *p)
17807{
17808 D(p->level++);
17809 if (p->error_indicator) {
17810 D(p->level--);
17811 return NULL;
17812 }
17813 void * _res = NULL;
17814 int _mark = p->mark;
17815 { // '{' '**' bitwise_or for_if_clauses '}'
17816 if (p->error_indicator) {
17817 D(p->level--);
17818 return NULL;
17819 }
17820 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17821 Token * _literal;
17822 Token * _literal_1;
17823 Token * a;
17824 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017825 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017826 if (
17827 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
17828 &&
17829 (a = _PyPegen_expect_token(p, 35)) // token='**'
17830 &&
17831 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17832 &&
17833 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17834 &&
17835 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
17836 )
17837 {
17838 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17839 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
17840 if (_res == NULL && PyErr_Occurred()) {
17841 p->error_indicator = 1;
17842 D(p->level--);
17843 return NULL;
17844 }
17845 goto done;
17846 }
17847 p->mark = _mark;
17848 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17850 }
17851 _res = NULL;
17852 done:
17853 D(p->level--);
17854 return _res;
17855}
17856
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017857// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017858static void *
17859invalid_parameters_rule(Parser *p)
17860{
17861 D(p->level++);
17862 if (p->error_indicator) {
17863 D(p->level--);
17864 return NULL;
17865 }
17866 void * _res = NULL;
17867 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017868 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017869 if (p->error_indicator) {
17870 D(p->level--);
17871 return NULL;
17872 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017873 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017874 asdl_seq * _loop0_149_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017875 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017876 arg_ty param_no_default_var;
17877 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017878 (_loop0_149_var = _loop0_149_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017879 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017880 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017881 &&
17882 (param_no_default_var = param_no_default_rule(p)) // param_no_default
17883 )
17884 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017885 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 +010017886 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17887 if (_res == NULL && PyErr_Occurred()) {
17888 p->error_indicator = 1;
17889 D(p->level--);
17890 return NULL;
17891 }
17892 goto done;
17893 }
17894 p->mark = _mark;
17895 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
17897 }
17898 _res = NULL;
17899 done:
17900 D(p->level--);
17901 return _res;
17902}
17903
17904// invalid_parameters_helper: slash_with_default | param_with_default+
17905static void *
17906invalid_parameters_helper_rule(Parser *p)
17907{
17908 D(p->level++);
17909 if (p->error_indicator) {
17910 D(p->level--);
17911 return NULL;
17912 }
17913 void * _res = NULL;
17914 int _mark = p->mark;
17915 { // slash_with_default
17916 if (p->error_indicator) {
17917 D(p->level--);
17918 return NULL;
17919 }
17920 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17921 SlashWithDefault* a;
17922 if (
17923 (a = slash_with_default_rule(p)) // slash_with_default
17924 )
17925 {
17926 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17927 _res = _PyPegen_singleton_seq ( p , a );
17928 if (_res == NULL && PyErr_Occurred()) {
17929 p->error_indicator = 1;
17930 D(p->level--);
17931 return NULL;
17932 }
17933 goto done;
17934 }
17935 p->mark = _mark;
17936 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
17938 }
17939 { // param_with_default+
17940 if (p->error_indicator) {
17941 D(p->level--);
17942 return NULL;
17943 }
17944 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017945 asdl_seq * _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017946 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017947 (_loop1_150_var = _loop1_150_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017948 )
17949 {
17950 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017951 _res = _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017952 goto done;
17953 }
17954 p->mark = _mark;
17955 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017957 }
17958 _res = NULL;
17959 done:
17960 D(p->level--);
17961 return _res;
17962}
17963
17964// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017965// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017966static void *
17967invalid_lambda_parameters_rule(Parser *p)
17968{
17969 D(p->level++);
17970 if (p->error_indicator) {
17971 D(p->level--);
17972 return NULL;
17973 }
17974 void * _res = NULL;
17975 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017976 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017977 if (p->error_indicator) {
17978 D(p->level--);
17979 return NULL;
17980 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017981 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"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017982 asdl_seq * _loop0_151_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017983 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017984 arg_ty lambda_param_no_default_var;
17985 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017986 (_loop0_151_var = _loop0_151_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017987 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017988 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017989 &&
17990 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
17991 )
17992 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017993 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 +010017994 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17995 if (_res == NULL && PyErr_Occurred()) {
17996 p->error_indicator = 1;
17997 D(p->level--);
17998 return NULL;
17999 }
18000 goto done;
18001 }
18002 p->mark = _mark;
18003 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
18005 }
18006 _res = NULL;
18007 done:
18008 D(p->level--);
18009 return _res;
18010}
18011
18012// invalid_lambda_parameters_helper:
18013// | lambda_slash_with_default
18014// | lambda_param_with_default+
18015static void *
18016invalid_lambda_parameters_helper_rule(Parser *p)
18017{
18018 D(p->level++);
18019 if (p->error_indicator) {
18020 D(p->level--);
18021 return NULL;
18022 }
18023 void * _res = NULL;
18024 int _mark = p->mark;
18025 { // lambda_slash_with_default
18026 if (p->error_indicator) {
18027 D(p->level--);
18028 return NULL;
18029 }
18030 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18031 SlashWithDefault* a;
18032 if (
18033 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
18034 )
18035 {
18036 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
18037 _res = _PyPegen_singleton_seq ( p , a );
18038 if (_res == NULL && PyErr_Occurred()) {
18039 p->error_indicator = 1;
18040 D(p->level--);
18041 return NULL;
18042 }
18043 goto done;
18044 }
18045 p->mark = _mark;
18046 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
18048 }
18049 { // lambda_param_with_default+
18050 if (p->error_indicator) {
18051 D(p->level--);
18052 return NULL;
18053 }
18054 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018055 asdl_seq * _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018056 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080018057 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018058 )
18059 {
18060 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018061 _res = _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018062 goto done;
18063 }
18064 p->mark = _mark;
18065 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018067 }
18068 _res = NULL;
18069 done:
18070 D(p->level--);
18071 return _res;
18072}
18073
18074// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
18075static void *
18076invalid_star_etc_rule(Parser *p)
18077{
18078 D(p->level++);
18079 if (p->error_indicator) {
18080 D(p->level--);
18081 return NULL;
18082 }
18083 void * _res = NULL;
18084 int _mark = p->mark;
18085 { // '*' (')' | ',' (')' | '**'))
18086 if (p->error_indicator) {
18087 D(p->level--);
18088 return NULL;
18089 }
18090 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18091 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080018092 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018093 if (
18094 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18095 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018096 (_tmp_153_var = _tmp_153_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018097 )
18098 {
18099 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18100 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18101 if (_res == NULL && PyErr_Occurred()) {
18102 p->error_indicator = 1;
18103 D(p->level--);
18104 return NULL;
18105 }
18106 goto done;
18107 }
18108 p->mark = _mark;
18109 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18111 }
18112 { // '*' ',' TYPE_COMMENT
18113 if (p->error_indicator) {
18114 D(p->level--);
18115 return NULL;
18116 }
18117 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18118 Token * _literal;
18119 Token * _literal_1;
18120 Token * type_comment_var;
18121 if (
18122 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18123 &&
18124 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18125 &&
18126 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18127 )
18128 {
18129 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18130 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18131 if (_res == NULL && PyErr_Occurred()) {
18132 p->error_indicator = 1;
18133 D(p->level--);
18134 return NULL;
18135 }
18136 goto done;
18137 }
18138 p->mark = _mark;
18139 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18141 }
18142 _res = NULL;
18143 done:
18144 D(p->level--);
18145 return _res;
18146}
18147
18148// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18149static void *
18150invalid_lambda_star_etc_rule(Parser *p)
18151{
18152 D(p->level++);
18153 if (p->error_indicator) {
18154 D(p->level--);
18155 return NULL;
18156 }
18157 void * _res = NULL;
18158 int _mark = p->mark;
18159 { // '*' (':' | ',' (':' | '**'))
18160 if (p->error_indicator) {
18161 D(p->level--);
18162 return NULL;
18163 }
18164 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18165 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080018166 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018167 if (
18168 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18169 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018170 (_tmp_154_var = _tmp_154_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018171 )
18172 {
18173 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18174 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18175 if (_res == NULL && PyErr_Occurred()) {
18176 p->error_indicator = 1;
18177 D(p->level--);
18178 return NULL;
18179 }
18180 goto done;
18181 }
18182 p->mark = _mark;
18183 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18185 }
18186 _res = NULL;
18187 done:
18188 D(p->level--);
18189 return _res;
18190}
18191
18192// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18193static void *
18194invalid_double_type_comments_rule(Parser *p)
18195{
18196 D(p->level++);
18197 if (p->error_indicator) {
18198 D(p->level--);
18199 return NULL;
18200 }
18201 void * _res = NULL;
18202 int _mark = p->mark;
18203 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18204 if (p->error_indicator) {
18205 D(p->level--);
18206 return NULL;
18207 }
18208 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18209 Token * indent_var;
18210 Token * newline_var;
18211 Token * newline_var_1;
18212 Token * type_comment_var;
18213 Token * type_comment_var_1;
18214 if (
18215 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18216 &&
18217 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18218 &&
18219 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18220 &&
18221 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18222 &&
18223 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18224 )
18225 {
18226 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"));
18227 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18228 if (_res == NULL && PyErr_Occurred()) {
18229 p->error_indicator = 1;
18230 D(p->level--);
18231 return NULL;
18232 }
18233 goto done;
18234 }
18235 p->mark = _mark;
18236 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18238 }
18239 _res = NULL;
18240 done:
18241 D(p->level--);
18242 return _res;
18243}
18244
Pablo Galindo58fb1562021-02-02 19:54:22 +000018245// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018246static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018247invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018248{
18249 D(p->level++);
18250 if (p->error_indicator) {
18251 D(p->level--);
18252 return NULL;
18253 }
18254 void * _res = NULL;
18255 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018256 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018257 if (p->error_indicator) {
18258 D(p->level--);
18259 return NULL;
18260 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018261 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 +030018262 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018263 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018264 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018265 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018266 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018267 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018268 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18269 &&
18270 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018271 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018272 _PyPegen_lookahead(1, _tmp_155_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018273 )
18274 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018275 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 +030018276 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018277 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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018285 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018287 }
18288 _res = NULL;
18289 done:
18290 D(p->level--);
18291 return _res;
18292}
18293
18294// invalid_for_target: ASYNC? 'for' star_expressions
18295static void *
18296invalid_for_target_rule(Parser *p)
18297{
18298 D(p->level++);
18299 if (p->error_indicator) {
18300 D(p->level--);
18301 return NULL;
18302 }
18303 void * _res = NULL;
18304 int _mark = p->mark;
18305 { // ASYNC? 'for' star_expressions
18306 if (p->error_indicator) {
18307 D(p->level--);
18308 return NULL;
18309 }
18310 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18311 Token * _keyword;
18312 void *_opt_var;
18313 UNUSED(_opt_var); // Silence compiler warnings
18314 expr_ty a;
18315 if (
18316 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18317 &&
18318 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18319 &&
18320 (a = star_expressions_rule(p)) // star_expressions
18321 )
18322 {
18323 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 +030018324 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018325 if (_res == NULL && PyErr_Occurred()) {
18326 p->error_indicator = 1;
18327 D(p->level--);
18328 return NULL;
18329 }
18330 goto done;
18331 }
18332 p->mark = _mark;
18333 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18335 }
18336 _res = NULL;
18337 done:
18338 D(p->level--);
18339 return _res;
18340}
18341
Pablo Galindo8efad612021-03-24 19:34:17 +000018342// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018343static void *
18344invalid_group_rule(Parser *p)
18345{
18346 D(p->level++);
18347 if (p->error_indicator) {
18348 D(p->level--);
18349 return NULL;
18350 }
18351 void * _res = NULL;
18352 int _mark = p->mark;
18353 { // '(' starred_expression ')'
18354 if (p->error_indicator) {
18355 D(p->level--);
18356 return NULL;
18357 }
18358 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18359 Token * _literal;
18360 Token * _literal_1;
18361 expr_ty a;
18362 if (
18363 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18364 &&
18365 (a = starred_expression_rule(p)) // starred_expression
18366 &&
18367 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18368 )
18369 {
18370 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18371 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
18372 if (_res == NULL && PyErr_Occurred()) {
18373 p->error_indicator = 1;
18374 D(p->level--);
18375 return NULL;
18376 }
18377 goto done;
18378 }
18379 p->mark = _mark;
18380 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018382 }
Pablo Galindo8efad612021-03-24 19:34:17 +000018383 { // '(' '**' expression ')'
18384 if (p->error_indicator) {
18385 D(p->level--);
18386 return NULL;
18387 }
18388 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18389 Token * _literal;
18390 Token * _literal_1;
18391 Token * a;
18392 expr_ty expression_var;
18393 if (
18394 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18395 &&
18396 (a = _PyPegen_expect_token(p, 35)) // token='**'
18397 &&
18398 (expression_var = expression_rule(p)) // expression
18399 &&
18400 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18401 )
18402 {
18403 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
18404 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use double starred expression here" );
18405 if (_res == NULL && PyErr_Occurred()) {
18406 p->error_indicator = 1;
18407 D(p->level--);
18408 return NULL;
18409 }
18410 goto done;
18411 }
18412 p->mark = _mark;
18413 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
18415 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018416 _res = NULL;
18417 done:
18418 D(p->level--);
18419 return _res;
18420}
18421
18422// invalid_import_from_targets: import_from_as_names ','
18423static void *
18424invalid_import_from_targets_rule(Parser *p)
18425{
18426 D(p->level++);
18427 if (p->error_indicator) {
18428 D(p->level--);
18429 return NULL;
18430 }
18431 void * _res = NULL;
18432 int _mark = p->mark;
18433 { // import_from_as_names ','
18434 if (p->error_indicator) {
18435 D(p->level--);
18436 return NULL;
18437 }
18438 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18439 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018440 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018441 if (
18442 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18443 &&
18444 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18445 )
18446 {
18447 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18448 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18449 if (_res == NULL && PyErr_Occurred()) {
18450 p->error_indicator = 1;
18451 D(p->level--);
18452 return NULL;
18453 }
18454 goto done;
18455 }
18456 p->mark = _mark;
18457 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18459 }
18460 _res = NULL;
18461 done:
18462 D(p->level--);
18463 return _res;
18464}
18465
Pablo Galindo58fb1562021-02-02 19:54:22 +000018466// invalid_with_stmt:
18467// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18468// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18469static void *
18470invalid_with_stmt_rule(Parser *p)
18471{
18472 D(p->level++);
18473 if (p->error_indicator) {
18474 D(p->level--);
18475 return NULL;
18476 }
18477 void * _res = NULL;
18478 int _mark = p->mark;
18479 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18480 if (p->error_indicator) {
18481 D(p->level--);
18482 return NULL;
18483 }
18484 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018485 asdl_seq * _gather_156_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018486 Token * _keyword;
18487 Token * _literal;
18488 void *_opt_var;
18489 UNUSED(_opt_var); // Silence compiler warnings
18490 if (
18491 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18492 &&
18493 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18494 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018495 (_gather_156_var = _gather_156_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018496 &&
18497 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18498 )
18499 {
18500 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018501 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_156_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018502 goto done;
18503 }
18504 p->mark = _mark;
18505 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18507 }
18508 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18509 if (p->error_indicator) {
18510 D(p->level--);
18511 return NULL;
18512 }
18513 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018514 asdl_seq * _gather_158_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018515 Token * _keyword;
18516 Token * _literal;
18517 Token * _literal_1;
18518 Token * _literal_2;
18519 void *_opt_var;
18520 UNUSED(_opt_var); // Silence compiler warnings
18521 void *_opt_var_1;
18522 UNUSED(_opt_var_1); // Silence compiler warnings
18523 if (
18524 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18525 &&
18526 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18527 &&
18528 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18529 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018530 (_gather_158_var = _gather_158_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018531 &&
18532 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18533 &&
18534 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18535 &&
18536 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18537 )
18538 {
18539 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018540 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_158_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018541 goto done;
18542 }
18543 p->mark = _mark;
18544 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18546 }
18547 _res = NULL;
18548 done:
18549 D(p->level--);
18550 return _res;
18551}
18552
Pablo Galindo206cbda2021-02-07 18:42:21 +000018553// invalid_except_block:
18554// | 'except' expression ',' expressions ['as' NAME] ':'
18555// | 'except' expression ['as' NAME] &&':'
18556// | 'except' &&':'
18557static void *
18558invalid_except_block_rule(Parser *p)
18559{
18560 D(p->level++);
18561 if (p->error_indicator) {
18562 D(p->level--);
18563 return NULL;
18564 }
18565 void * _res = NULL;
18566 int _mark = p->mark;
18567 { // 'except' expression ',' expressions ['as' NAME] ':'
18568 if (p->error_indicator) {
18569 D(p->level--);
18570 return NULL;
18571 }
18572 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18573 Token * _keyword;
18574 Token * _literal;
18575 Token * _literal_1;
18576 void *_opt_var;
18577 UNUSED(_opt_var); // Silence compiler warnings
18578 expr_ty a;
18579 expr_ty expressions_var;
18580 if (
18581 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18582 &&
18583 (a = expression_rule(p)) // expression
18584 &&
18585 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18586 &&
18587 (expressions_var = expressions_rule(p)) // expressions
18588 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018589 (_opt_var = _tmp_160_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018590 &&
18591 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18592 )
18593 {
18594 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18595 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18596 if (_res == NULL && PyErr_Occurred()) {
18597 p->error_indicator = 1;
18598 D(p->level--);
18599 return NULL;
18600 }
18601 goto done;
18602 }
18603 p->mark = _mark;
18604 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18606 }
18607 { // 'except' expression ['as' NAME] &&':'
18608 if (p->error_indicator) {
18609 D(p->level--);
18610 return NULL;
18611 }
18612 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18613 Token * _keyword;
18614 Token * _literal;
18615 void *_opt_var;
18616 UNUSED(_opt_var); // Silence compiler warnings
18617 expr_ty expression_var;
18618 if (
18619 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18620 &&
18621 (expression_var = expression_rule(p)) // expression
18622 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018623 (_opt_var = _tmp_161_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018624 &&
18625 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18626 )
18627 {
18628 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18629 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18630 goto done;
18631 }
18632 p->mark = _mark;
18633 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18635 }
18636 { // 'except' &&':'
18637 if (p->error_indicator) {
18638 D(p->level--);
18639 return NULL;
18640 }
18641 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18642 Token * _keyword;
18643 Token * _literal;
18644 if (
18645 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18646 &&
18647 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18648 )
18649 {
18650 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18651 _res = _PyPegen_dummy_name(p, _keyword, _literal);
18652 goto done;
18653 }
18654 p->mark = _mark;
18655 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
18657 }
18658 _res = NULL;
18659 done:
18660 D(p->level--);
18661 return _res;
18662}
18663
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000018664// invalid_match_stmt: "match" subject_expr !':'
18665static void *
18666invalid_match_stmt_rule(Parser *p)
18667{
18668 D(p->level++);
18669 if (p->error_indicator) {
18670 D(p->level--);
18671 return NULL;
18672 }
18673 void * _res = NULL;
18674 int _mark = p->mark;
18675 { // "match" subject_expr !':'
18676 if (p->error_indicator) {
18677 D(p->level--);
18678 return NULL;
18679 }
18680 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18681 expr_ty _keyword;
18682 expr_ty subject_expr_var;
18683 if (
18684 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
18685 &&
18686 (subject_expr_var = subject_expr_rule(p)) // subject_expr
18687 &&
18688 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18689 )
18690 {
18691 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
18692 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
18693 if (_res == NULL && PyErr_Occurred()) {
18694 p->error_indicator = 1;
18695 D(p->level--);
18696 return NULL;
18697 }
18698 goto done;
18699 }
18700 p->mark = _mark;
18701 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
18703 }
18704 _res = NULL;
18705 done:
18706 D(p->level--);
18707 return _res;
18708}
18709
18710// invalid_case_block: "case" patterns guard? !':'
18711static void *
18712invalid_case_block_rule(Parser *p)
18713{
18714 D(p->level++);
18715 if (p->error_indicator) {
18716 D(p->level--);
18717 return NULL;
18718 }
18719 void * _res = NULL;
18720 int _mark = p->mark;
18721 { // "case" patterns guard? !':'
18722 if (p->error_indicator) {
18723 D(p->level--);
18724 return NULL;
18725 }
18726 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18727 expr_ty _keyword;
18728 void *_opt_var;
18729 UNUSED(_opt_var); // Silence compiler warnings
18730 expr_ty patterns_var;
18731 if (
18732 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
18733 &&
18734 (patterns_var = patterns_rule(p)) // patterns
18735 &&
18736 (_opt_var = guard_rule(p), 1) // guard?
18737 &&
18738 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
18739 )
18740 {
18741 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
18742 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
18743 if (_res == NULL && PyErr_Occurred()) {
18744 p->error_indicator = 1;
18745 D(p->level--);
18746 return NULL;
18747 }
18748 goto done;
18749 }
18750 p->mark = _mark;
18751 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
18752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
18753 }
18754 _res = NULL;
18755 done:
18756 D(p->level--);
18757 return _res;
18758}
18759
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018760// _loop0_1: NEWLINE
18761static asdl_seq *
18762_loop0_1_rule(Parser *p)
18763{
18764 D(p->level++);
18765 if (p->error_indicator) {
18766 D(p->level--);
18767 return NULL;
18768 }
18769 void *_res = NULL;
18770 int _mark = p->mark;
18771 int _start_mark = p->mark;
18772 void **_children = PyMem_Malloc(sizeof(void *));
18773 if (!_children) {
18774 p->error_indicator = 1;
18775 PyErr_NoMemory();
18776 D(p->level--);
18777 return NULL;
18778 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018779 Py_ssize_t _children_capacity = 1;
18780 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018781 { // NEWLINE
18782 if (p->error_indicator) {
18783 D(p->level--);
18784 return NULL;
18785 }
18786 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18787 Token * newline_var;
18788 while (
18789 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18790 )
18791 {
18792 _res = newline_var;
18793 if (_n == _children_capacity) {
18794 _children_capacity *= 2;
18795 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18796 if (!_new_children) {
18797 p->error_indicator = 1;
18798 PyErr_NoMemory();
18799 D(p->level--);
18800 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018801 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018802 _children = _new_children;
18803 }
18804 _children[_n++] = _res;
18805 _mark = p->mark;
18806 }
18807 p->mark = _mark;
18808 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
18809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18810 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018811 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018812 if (!_seq) {
18813 PyMem_Free(_children);
18814 p->error_indicator = 1;
18815 PyErr_NoMemory();
18816 D(p->level--);
18817 return NULL;
18818 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018819 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018820 PyMem_Free(_children);
18821 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
18822 D(p->level--);
18823 return _seq;
18824}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018825
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018826// _loop0_2: NEWLINE
18827static asdl_seq *
18828_loop0_2_rule(Parser *p)
18829{
18830 D(p->level++);
18831 if (p->error_indicator) {
18832 D(p->level--);
18833 return NULL;
18834 }
18835 void *_res = NULL;
18836 int _mark = p->mark;
18837 int _start_mark = p->mark;
18838 void **_children = PyMem_Malloc(sizeof(void *));
18839 if (!_children) {
18840 p->error_indicator = 1;
18841 PyErr_NoMemory();
18842 D(p->level--);
18843 return NULL;
18844 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018845 Py_ssize_t _children_capacity = 1;
18846 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018847 { // NEWLINE
18848 if (p->error_indicator) {
18849 D(p->level--);
18850 return NULL;
18851 }
18852 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18853 Token * newline_var;
18854 while (
18855 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18856 )
18857 {
18858 _res = newline_var;
18859 if (_n == _children_capacity) {
18860 _children_capacity *= 2;
18861 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18862 if (!_new_children) {
18863 p->error_indicator = 1;
18864 PyErr_NoMemory();
18865 D(p->level--);
18866 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018867 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018868 _children = _new_children;
18869 }
18870 _children[_n++] = _res;
18871 _mark = p->mark;
18872 }
18873 p->mark = _mark;
18874 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
18875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18876 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018877 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018878 if (!_seq) {
18879 PyMem_Free(_children);
18880 p->error_indicator = 1;
18881 PyErr_NoMemory();
18882 D(p->level--);
18883 return NULL;
18884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018885 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018886 PyMem_Free(_children);
18887 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
18888 D(p->level--);
18889 return _seq;
18890}
18891
18892// _loop0_4: ',' expression
18893static asdl_seq *
18894_loop0_4_rule(Parser *p)
18895{
18896 D(p->level++);
18897 if (p->error_indicator) {
18898 D(p->level--);
18899 return NULL;
18900 }
18901 void *_res = NULL;
18902 int _mark = p->mark;
18903 int _start_mark = p->mark;
18904 void **_children = PyMem_Malloc(sizeof(void *));
18905 if (!_children) {
18906 p->error_indicator = 1;
18907 PyErr_NoMemory();
18908 D(p->level--);
18909 return NULL;
18910 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010018911 Py_ssize_t _children_capacity = 1;
18912 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018913 { // ',' expression
18914 if (p->error_indicator) {
18915 D(p->level--);
18916 return NULL;
18917 }
18918 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18919 Token * _literal;
18920 expr_ty elem;
18921 while (
18922 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18923 &&
18924 (elem = expression_rule(p)) // expression
18925 )
18926 {
18927 _res = elem;
18928 if (_res == NULL && PyErr_Occurred()) {
18929 p->error_indicator = 1;
18930 PyMem_Free(_children);
18931 D(p->level--);
18932 return NULL;
18933 }
18934 if (_n == _children_capacity) {
18935 _children_capacity *= 2;
18936 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18937 if (!_new_children) {
18938 p->error_indicator = 1;
18939 PyErr_NoMemory();
18940 D(p->level--);
18941 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018942 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018943 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018945 _children[_n++] = _res;
18946 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018947 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018948 p->mark = _mark;
18949 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
18950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018951 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018952 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018953 if (!_seq) {
18954 PyMem_Free(_children);
18955 p->error_indicator = 1;
18956 PyErr_NoMemory();
18957 D(p->level--);
18958 return NULL;
18959 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018960 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018961 PyMem_Free(_children);
18962 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
18963 D(p->level--);
18964 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018965}
18966
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018967// _gather_3: expression _loop0_4
18968static asdl_seq *
18969_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018970{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018971 D(p->level++);
18972 if (p->error_indicator) {
18973 D(p->level--);
18974 return NULL;
18975 }
18976 asdl_seq * _res = NULL;
18977 int _mark = p->mark;
18978 { // expression _loop0_4
18979 if (p->error_indicator) {
18980 D(p->level--);
18981 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018982 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018983 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18984 expr_ty elem;
18985 asdl_seq * seq;
18986 if (
18987 (elem = expression_rule(p)) // expression
18988 &&
18989 (seq = _loop0_4_rule(p)) // _loop0_4
18990 )
18991 {
18992 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18993 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18994 goto done;
18995 }
18996 p->mark = _mark;
18997 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
18998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018999 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019000 _res = NULL;
19001 done:
19002 D(p->level--);
19003 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019004}
19005
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019006// _loop0_6: ',' expression
19007static asdl_seq *
19008_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019009{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019010 D(p->level++);
19011 if (p->error_indicator) {
19012 D(p->level--);
19013 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019014 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019015 void *_res = NULL;
19016 int _mark = p->mark;
19017 int _start_mark = p->mark;
19018 void **_children = PyMem_Malloc(sizeof(void *));
19019 if (!_children) {
19020 p->error_indicator = 1;
19021 PyErr_NoMemory();
19022 D(p->level--);
19023 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019024 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019025 Py_ssize_t _children_capacity = 1;
19026 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019027 { // ',' expression
19028 if (p->error_indicator) {
19029 D(p->level--);
19030 return NULL;
19031 }
19032 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19033 Token * _literal;
19034 expr_ty elem;
19035 while (
19036 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19037 &&
19038 (elem = expression_rule(p)) // expression
19039 )
19040 {
19041 _res = elem;
19042 if (_res == NULL && PyErr_Occurred()) {
19043 p->error_indicator = 1;
19044 PyMem_Free(_children);
19045 D(p->level--);
19046 return NULL;
19047 }
19048 if (_n == _children_capacity) {
19049 _children_capacity *= 2;
19050 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19051 if (!_new_children) {
19052 p->error_indicator = 1;
19053 PyErr_NoMemory();
19054 D(p->level--);
19055 return NULL;
19056 }
19057 _children = _new_children;
19058 }
19059 _children[_n++] = _res;
19060 _mark = p->mark;
19061 }
19062 p->mark = _mark;
19063 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
19064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019067 if (!_seq) {
19068 PyMem_Free(_children);
19069 p->error_indicator = 1;
19070 PyErr_NoMemory();
19071 D(p->level--);
19072 return NULL;
19073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019075 PyMem_Free(_children);
19076 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
19077 D(p->level--);
19078 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019079}
19080
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019081// _gather_5: expression _loop0_6
19082static asdl_seq *
19083_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019084{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019085 D(p->level++);
19086 if (p->error_indicator) {
19087 D(p->level--);
19088 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000019089 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019090 asdl_seq * _res = NULL;
19091 int _mark = p->mark;
19092 { // expression _loop0_6
19093 if (p->error_indicator) {
19094 D(p->level--);
19095 return NULL;
19096 }
19097 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19098 expr_ty elem;
19099 asdl_seq * seq;
19100 if (
19101 (elem = expression_rule(p)) // expression
19102 &&
19103 (seq = _loop0_6_rule(p)) // _loop0_6
19104 )
19105 {
19106 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
19107 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19108 goto done;
19109 }
19110 p->mark = _mark;
19111 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
19112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
19113 }
19114 _res = NULL;
19115 done:
19116 D(p->level--);
19117 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019118}
19119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019120// _loop0_8: ',' expression
19121static asdl_seq *
19122_loop0_8_rule(Parser *p)
19123{
19124 D(p->level++);
19125 if (p->error_indicator) {
19126 D(p->level--);
19127 return NULL;
19128 }
19129 void *_res = NULL;
19130 int _mark = p->mark;
19131 int _start_mark = p->mark;
19132 void **_children = PyMem_Malloc(sizeof(void *));
19133 if (!_children) {
19134 p->error_indicator = 1;
19135 PyErr_NoMemory();
19136 D(p->level--);
19137 return NULL;
19138 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019139 Py_ssize_t _children_capacity = 1;
19140 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019141 { // ',' expression
19142 if (p->error_indicator) {
19143 D(p->level--);
19144 return NULL;
19145 }
19146 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19147 Token * _literal;
19148 expr_ty elem;
19149 while (
19150 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19151 &&
19152 (elem = expression_rule(p)) // expression
19153 )
19154 {
19155 _res = elem;
19156 if (_res == NULL && PyErr_Occurred()) {
19157 p->error_indicator = 1;
19158 PyMem_Free(_children);
19159 D(p->level--);
19160 return NULL;
19161 }
19162 if (_n == _children_capacity) {
19163 _children_capacity *= 2;
19164 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19165 if (!_new_children) {
19166 p->error_indicator = 1;
19167 PyErr_NoMemory();
19168 D(p->level--);
19169 return NULL;
19170 }
19171 _children = _new_children;
19172 }
19173 _children[_n++] = _res;
19174 _mark = p->mark;
19175 }
19176 p->mark = _mark;
19177 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
19178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19179 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019180 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019181 if (!_seq) {
19182 PyMem_Free(_children);
19183 p->error_indicator = 1;
19184 PyErr_NoMemory();
19185 D(p->level--);
19186 return NULL;
19187 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019188 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019189 PyMem_Free(_children);
19190 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
19191 D(p->level--);
19192 return _seq;
19193}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019194
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019195// _gather_7: expression _loop0_8
19196static asdl_seq *
19197_gather_7_rule(Parser *p)
19198{
19199 D(p->level++);
19200 if (p->error_indicator) {
19201 D(p->level--);
19202 return NULL;
19203 }
19204 asdl_seq * _res = NULL;
19205 int _mark = p->mark;
19206 { // expression _loop0_8
19207 if (p->error_indicator) {
19208 D(p->level--);
19209 return NULL;
19210 }
19211 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19212 expr_ty elem;
19213 asdl_seq * seq;
19214 if (
19215 (elem = expression_rule(p)) // expression
19216 &&
19217 (seq = _loop0_8_rule(p)) // _loop0_8
19218 )
19219 {
19220 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
19221 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19222 goto done;
19223 }
19224 p->mark = _mark;
19225 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19227 }
19228 _res = NULL;
19229 done:
19230 D(p->level--);
19231 return _res;
19232}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019233
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019234// _loop0_10: ',' expression
19235static asdl_seq *
19236_loop0_10_rule(Parser *p)
19237{
19238 D(p->level++);
19239 if (p->error_indicator) {
19240 D(p->level--);
19241 return NULL;
19242 }
19243 void *_res = NULL;
19244 int _mark = p->mark;
19245 int _start_mark = p->mark;
19246 void **_children = PyMem_Malloc(sizeof(void *));
19247 if (!_children) {
19248 p->error_indicator = 1;
19249 PyErr_NoMemory();
19250 D(p->level--);
19251 return NULL;
19252 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019253 Py_ssize_t _children_capacity = 1;
19254 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019255 { // ',' expression
19256 if (p->error_indicator) {
19257 D(p->level--);
19258 return NULL;
19259 }
19260 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19261 Token * _literal;
19262 expr_ty elem;
19263 while (
19264 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19265 &&
19266 (elem = expression_rule(p)) // expression
19267 )
19268 {
19269 _res = elem;
19270 if (_res == NULL && PyErr_Occurred()) {
19271 p->error_indicator = 1;
19272 PyMem_Free(_children);
19273 D(p->level--);
19274 return NULL;
19275 }
19276 if (_n == _children_capacity) {
19277 _children_capacity *= 2;
19278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19279 if (!_new_children) {
19280 p->error_indicator = 1;
19281 PyErr_NoMemory();
19282 D(p->level--);
19283 return NULL;
19284 }
19285 _children = _new_children;
19286 }
19287 _children[_n++] = _res;
19288 _mark = p->mark;
19289 }
19290 p->mark = _mark;
19291 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019295 if (!_seq) {
19296 PyMem_Free(_children);
19297 p->error_indicator = 1;
19298 PyErr_NoMemory();
19299 D(p->level--);
19300 return NULL;
19301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019303 PyMem_Free(_children);
19304 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
19305 D(p->level--);
19306 return _seq;
19307}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019308
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019309// _gather_9: expression _loop0_10
19310static asdl_seq *
19311_gather_9_rule(Parser *p)
19312{
19313 D(p->level++);
19314 if (p->error_indicator) {
19315 D(p->level--);
19316 return NULL;
19317 }
19318 asdl_seq * _res = NULL;
19319 int _mark = p->mark;
19320 { // expression _loop0_10
19321 if (p->error_indicator) {
19322 D(p->level--);
19323 return NULL;
19324 }
19325 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19326 expr_ty elem;
19327 asdl_seq * seq;
19328 if (
19329 (elem = expression_rule(p)) // expression
19330 &&
19331 (seq = _loop0_10_rule(p)) // _loop0_10
19332 )
19333 {
19334 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19335 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19336 goto done;
19337 }
19338 p->mark = _mark;
19339 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
19340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
19341 }
19342 _res = NULL;
19343 done:
19344 D(p->level--);
19345 return _res;
19346}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019347
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019348// _loop1_11: statement
19349static asdl_seq *
19350_loop1_11_rule(Parser *p)
19351{
19352 D(p->level++);
19353 if (p->error_indicator) {
19354 D(p->level--);
19355 return NULL;
19356 }
19357 void *_res = NULL;
19358 int _mark = p->mark;
19359 int _start_mark = p->mark;
19360 void **_children = PyMem_Malloc(sizeof(void *));
19361 if (!_children) {
19362 p->error_indicator = 1;
19363 PyErr_NoMemory();
19364 D(p->level--);
19365 return NULL;
19366 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019367 Py_ssize_t _children_capacity = 1;
19368 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019369 { // statement
19370 if (p->error_indicator) {
19371 D(p->level--);
19372 return NULL;
19373 }
19374 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010019375 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019376 while (
19377 (statement_var = statement_rule(p)) // statement
19378 )
19379 {
19380 _res = statement_var;
19381 if (_n == _children_capacity) {
19382 _children_capacity *= 2;
19383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19384 if (!_new_children) {
19385 p->error_indicator = 1;
19386 PyErr_NoMemory();
19387 D(p->level--);
19388 return NULL;
19389 }
19390 _children = _new_children;
19391 }
19392 _children[_n++] = _res;
19393 _mark = p->mark;
19394 }
19395 p->mark = _mark;
19396 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
19397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
19398 }
19399 if (_n == 0 || p->error_indicator) {
19400 PyMem_Free(_children);
19401 D(p->level--);
19402 return NULL;
19403 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019404 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019405 if (!_seq) {
19406 PyMem_Free(_children);
19407 p->error_indicator = 1;
19408 PyErr_NoMemory();
19409 D(p->level--);
19410 return NULL;
19411 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019412 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019413 PyMem_Free(_children);
19414 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
19415 D(p->level--);
19416 return _seq;
19417}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019418
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019419// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420static asdl_seq *
19421_loop0_13_rule(Parser *p)
19422{
19423 D(p->level++);
19424 if (p->error_indicator) {
19425 D(p->level--);
19426 return NULL;
19427 }
19428 void *_res = NULL;
19429 int _mark = p->mark;
19430 int _start_mark = p->mark;
19431 void **_children = PyMem_Malloc(sizeof(void *));
19432 if (!_children) {
19433 p->error_indicator = 1;
19434 PyErr_NoMemory();
19435 D(p->level--);
19436 return NULL;
19437 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010019438 Py_ssize_t _children_capacity = 1;
19439 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019440 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019441 if (p->error_indicator) {
19442 D(p->level--);
19443 return NULL;
19444 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019445 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019446 Token * _literal;
19447 stmt_ty elem;
19448 while (
19449 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
19450 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019451 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019452 )
19453 {
19454 _res = elem;
19455 if (_res == NULL && PyErr_Occurred()) {
19456 p->error_indicator = 1;
19457 PyMem_Free(_children);
19458 D(p->level--);
19459 return NULL;
19460 }
19461 if (_n == _children_capacity) {
19462 _children_capacity *= 2;
19463 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19464 if (!_new_children) {
19465 p->error_indicator = 1;
19466 PyErr_NoMemory();
19467 D(p->level--);
19468 return NULL;
19469 }
19470 _children = _new_children;
19471 }
19472 _children[_n++] = _res;
19473 _mark = p->mark;
19474 }
19475 p->mark = _mark;
19476 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019480 if (!_seq) {
19481 PyMem_Free(_children);
19482 p->error_indicator = 1;
19483 PyErr_NoMemory();
19484 D(p->level--);
19485 return NULL;
19486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019488 PyMem_Free(_children);
19489 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
19490 D(p->level--);
19491 return _seq;
19492}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019493
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019494// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019495static asdl_seq *
19496_gather_12_rule(Parser *p)
19497{
19498 D(p->level++);
19499 if (p->error_indicator) {
19500 D(p->level--);
19501 return NULL;
19502 }
19503 asdl_seq * _res = NULL;
19504 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019505 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019506 if (p->error_indicator) {
19507 D(p->level--);
19508 return NULL;
19509 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019510 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 +010019511 stmt_ty elem;
19512 asdl_seq * seq;
19513 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019514 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019515 &&
19516 (seq = _loop0_13_rule(p)) // _loop0_13
19517 )
19518 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019519 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 +010019520 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19521 goto done;
19522 }
19523 p->mark = _mark;
19524 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019526 }
19527 _res = NULL;
19528 done:
19529 D(p->level--);
19530 return _res;
19531}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019532
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019533// _tmp_14: 'import' | 'from'
19534static void *
19535_tmp_14_rule(Parser *p)
19536{
19537 D(p->level++);
19538 if (p->error_indicator) {
19539 D(p->level--);
19540 return NULL;
19541 }
19542 void * _res = NULL;
19543 int _mark = p->mark;
19544 { // 'import'
19545 if (p->error_indicator) {
19546 D(p->level--);
19547 return NULL;
19548 }
19549 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
19550 Token * _keyword;
19551 if (
19552 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
19553 )
19554 {
19555 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
19556 _res = _keyword;
19557 goto done;
19558 }
19559 p->mark = _mark;
19560 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
19562 }
19563 { // 'from'
19564 if (p->error_indicator) {
19565 D(p->level--);
19566 return NULL;
19567 }
19568 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
19569 Token * _keyword;
19570 if (
19571 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
19572 )
19573 {
19574 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
19575 _res = _keyword;
19576 goto done;
19577 }
19578 p->mark = _mark;
19579 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
19581 }
19582 _res = NULL;
19583 done:
19584 D(p->level--);
19585 return _res;
19586}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019587
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019588// _tmp_15: 'def' | '@' | ASYNC
19589static void *
19590_tmp_15_rule(Parser *p)
19591{
19592 D(p->level++);
19593 if (p->error_indicator) {
19594 D(p->level--);
19595 return NULL;
19596 }
19597 void * _res = NULL;
19598 int _mark = p->mark;
19599 { // 'def'
19600 if (p->error_indicator) {
19601 D(p->level--);
19602 return NULL;
19603 }
19604 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
19605 Token * _keyword;
19606 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019607 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019608 )
19609 {
19610 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
19611 _res = _keyword;
19612 goto done;
19613 }
19614 p->mark = _mark;
19615 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
19617 }
19618 { // '@'
19619 if (p->error_indicator) {
19620 D(p->level--);
19621 return NULL;
19622 }
19623 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19624 Token * _literal;
19625 if (
19626 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19627 )
19628 {
19629 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19630 _res = _literal;
19631 goto done;
19632 }
19633 p->mark = _mark;
19634 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19636 }
19637 { // ASYNC
19638 if (p->error_indicator) {
19639 D(p->level--);
19640 return NULL;
19641 }
19642 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19643 Token * async_var;
19644 if (
19645 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19646 )
19647 {
19648 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19649 _res = async_var;
19650 goto done;
19651 }
19652 p->mark = _mark;
19653 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19655 }
19656 _res = NULL;
19657 done:
19658 D(p->level--);
19659 return _res;
19660}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019661
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019662// _tmp_16: 'class' | '@'
19663static void *
19664_tmp_16_rule(Parser *p)
19665{
19666 D(p->level++);
19667 if (p->error_indicator) {
19668 D(p->level--);
19669 return NULL;
19670 }
19671 void * _res = NULL;
19672 int _mark = p->mark;
19673 { // 'class'
19674 if (p->error_indicator) {
19675 D(p->level--);
19676 return NULL;
19677 }
19678 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
19679 Token * _keyword;
19680 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019681 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019682 )
19683 {
19684 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
19685 _res = _keyword;
19686 goto done;
19687 }
19688 p->mark = _mark;
19689 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
19691 }
19692 { // '@'
19693 if (p->error_indicator) {
19694 D(p->level--);
19695 return NULL;
19696 }
19697 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19698 Token * _literal;
19699 if (
19700 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19701 )
19702 {
19703 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19704 _res = _literal;
19705 goto done;
19706 }
19707 p->mark = _mark;
19708 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19710 }
19711 _res = NULL;
19712 done:
19713 D(p->level--);
19714 return _res;
19715}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019716
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019717// _tmp_17: 'with' | ASYNC
19718static void *
19719_tmp_17_rule(Parser *p)
19720{
19721 D(p->level++);
19722 if (p->error_indicator) {
19723 D(p->level--);
19724 return NULL;
19725 }
19726 void * _res = NULL;
19727 int _mark = p->mark;
19728 { // 'with'
19729 if (p->error_indicator) {
19730 D(p->level--);
19731 return NULL;
19732 }
19733 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
19734 Token * _keyword;
19735 if (
19736 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19737 )
19738 {
19739 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
19740 _res = _keyword;
19741 goto done;
19742 }
19743 p->mark = _mark;
19744 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
19746 }
19747 { // ASYNC
19748 if (p->error_indicator) {
19749 D(p->level--);
19750 return NULL;
19751 }
19752 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19753 Token * async_var;
19754 if (
19755 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19756 )
19757 {
19758 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19759 _res = async_var;
19760 goto done;
19761 }
19762 p->mark = _mark;
19763 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19765 }
19766 _res = NULL;
19767 done:
19768 D(p->level--);
19769 return _res;
19770}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019771
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019772// _tmp_18: 'for' | ASYNC
19773static void *
19774_tmp_18_rule(Parser *p)
19775{
19776 D(p->level++);
19777 if (p->error_indicator) {
19778 D(p->level--);
19779 return NULL;
19780 }
19781 void * _res = NULL;
19782 int _mark = p->mark;
19783 { // 'for'
19784 if (p->error_indicator) {
19785 D(p->level--);
19786 return NULL;
19787 }
19788 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
19789 Token * _keyword;
19790 if (
19791 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19792 )
19793 {
19794 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
19795 _res = _keyword;
19796 goto done;
19797 }
19798 p->mark = _mark;
19799 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
19801 }
19802 { // ASYNC
19803 if (p->error_indicator) {
19804 D(p->level--);
19805 return NULL;
19806 }
19807 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19808 Token * async_var;
19809 if (
19810 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19811 )
19812 {
19813 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19814 _res = async_var;
19815 goto done;
19816 }
19817 p->mark = _mark;
19818 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19820 }
19821 _res = NULL;
19822 done:
19823 D(p->level--);
19824 return _res;
19825}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019826
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019827// _tmp_19: '=' annotated_rhs
19828static void *
19829_tmp_19_rule(Parser *p)
19830{
19831 D(p->level++);
19832 if (p->error_indicator) {
19833 D(p->level--);
19834 return NULL;
19835 }
19836 void * _res = NULL;
19837 int _mark = p->mark;
19838 { // '=' annotated_rhs
19839 if (p->error_indicator) {
19840 D(p->level--);
19841 return NULL;
19842 }
19843 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19844 Token * _literal;
19845 expr_ty d;
19846 if (
19847 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19848 &&
19849 (d = annotated_rhs_rule(p)) // annotated_rhs
19850 )
19851 {
19852 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19853 _res = d;
19854 if (_res == NULL && PyErr_Occurred()) {
19855 p->error_indicator = 1;
19856 D(p->level--);
19857 return NULL;
19858 }
19859 goto done;
19860 }
19861 p->mark = _mark;
19862 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
19863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19864 }
19865 _res = NULL;
19866 done:
19867 D(p->level--);
19868 return _res;
19869}
19870
19871// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
19872static void *
19873_tmp_20_rule(Parser *p)
19874{
19875 D(p->level++);
19876 if (p->error_indicator) {
19877 D(p->level--);
19878 return NULL;
19879 }
19880 void * _res = NULL;
19881 int _mark = p->mark;
19882 { // '(' single_target ')'
19883 if (p->error_indicator) {
19884 D(p->level--);
19885 return NULL;
19886 }
19887 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19888 Token * _literal;
19889 Token * _literal_1;
19890 expr_ty b;
19891 if (
19892 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19893 &&
19894 (b = single_target_rule(p)) // single_target
19895 &&
19896 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19897 )
19898 {
19899 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19900 _res = b;
19901 if (_res == NULL && PyErr_Occurred()) {
19902 p->error_indicator = 1;
19903 D(p->level--);
19904 return NULL;
19905 }
19906 goto done;
19907 }
19908 p->mark = _mark;
19909 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
19911 }
19912 { // single_subscript_attribute_target
19913 if (p->error_indicator) {
19914 D(p->level--);
19915 return NULL;
19916 }
19917 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19918 expr_ty single_subscript_attribute_target_var;
19919 if (
19920 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
19921 )
19922 {
19923 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19924 _res = single_subscript_attribute_target_var;
19925 goto done;
19926 }
19927 p->mark = _mark;
19928 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
19930 }
19931 _res = NULL;
19932 done:
19933 D(p->level--);
19934 return _res;
19935}
19936
19937// _tmp_21: '=' annotated_rhs
19938static void *
19939_tmp_21_rule(Parser *p)
19940{
19941 D(p->level++);
19942 if (p->error_indicator) {
19943 D(p->level--);
19944 return NULL;
19945 }
19946 void * _res = NULL;
19947 int _mark = p->mark;
19948 { // '=' annotated_rhs
19949 if (p->error_indicator) {
19950 D(p->level--);
19951 return NULL;
19952 }
19953 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19954 Token * _literal;
19955 expr_ty d;
19956 if (
19957 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19958 &&
19959 (d = annotated_rhs_rule(p)) // annotated_rhs
19960 )
19961 {
19962 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19963 _res = d;
19964 if (_res == NULL && PyErr_Occurred()) {
19965 p->error_indicator = 1;
19966 D(p->level--);
19967 return NULL;
19968 }
19969 goto done;
19970 }
19971 p->mark = _mark;
19972 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
19973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19974 }
19975 _res = NULL;
19976 done:
19977 D(p->level--);
19978 return _res;
19979}
19980
19981// _loop1_22: (star_targets '=')
19982static asdl_seq *
19983_loop1_22_rule(Parser *p)
19984{
19985 D(p->level++);
19986 if (p->error_indicator) {
19987 D(p->level--);
19988 return NULL;
19989 }
19990 void *_res = NULL;
19991 int _mark = p->mark;
19992 int _start_mark = p->mark;
19993 void **_children = PyMem_Malloc(sizeof(void *));
19994 if (!_children) {
19995 p->error_indicator = 1;
19996 PyErr_NoMemory();
19997 D(p->level--);
19998 return NULL;
19999 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020000 Py_ssize_t _children_capacity = 1;
20001 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020002 { // (star_targets '=')
20003 if (p->error_indicator) {
20004 D(p->level--);
20005 return NULL;
20006 }
20007 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020008 void *_tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020009 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020010 (_tmp_162_var = _tmp_162_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020011 )
20012 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020013 _res = _tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020014 if (_n == _children_capacity) {
20015 _children_capacity *= 2;
20016 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20017 if (!_new_children) {
20018 p->error_indicator = 1;
20019 PyErr_NoMemory();
20020 D(p->level--);
20021 return NULL;
20022 }
20023 _children = _new_children;
20024 }
20025 _children[_n++] = _res;
20026 _mark = p->mark;
20027 }
20028 p->mark = _mark;
20029 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
20030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
20031 }
20032 if (_n == 0 || p->error_indicator) {
20033 PyMem_Free(_children);
20034 D(p->level--);
20035 return NULL;
20036 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020037 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020038 if (!_seq) {
20039 PyMem_Free(_children);
20040 p->error_indicator = 1;
20041 PyErr_NoMemory();
20042 D(p->level--);
20043 return NULL;
20044 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020045 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020046 PyMem_Free(_children);
20047 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
20048 D(p->level--);
20049 return _seq;
20050}
20051
20052// _tmp_23: yield_expr | star_expressions
20053static void *
20054_tmp_23_rule(Parser *p)
20055{
20056 D(p->level++);
20057 if (p->error_indicator) {
20058 D(p->level--);
20059 return NULL;
20060 }
20061 void * _res = NULL;
20062 int _mark = p->mark;
20063 { // yield_expr
20064 if (p->error_indicator) {
20065 D(p->level--);
20066 return NULL;
20067 }
20068 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20069 expr_ty yield_expr_var;
20070 if (
20071 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20072 )
20073 {
20074 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20075 _res = yield_expr_var;
20076 goto done;
20077 }
20078 p->mark = _mark;
20079 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20081 }
20082 { // star_expressions
20083 if (p->error_indicator) {
20084 D(p->level--);
20085 return NULL;
20086 }
20087 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20088 expr_ty star_expressions_var;
20089 if (
20090 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20091 )
20092 {
20093 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20094 _res = star_expressions_var;
20095 goto done;
20096 }
20097 p->mark = _mark;
20098 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
20099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20100 }
20101 _res = NULL;
20102 done:
20103 D(p->level--);
20104 return _res;
20105}
20106
20107// _tmp_24: yield_expr | star_expressions
20108static void *
20109_tmp_24_rule(Parser *p)
20110{
20111 D(p->level++);
20112 if (p->error_indicator) {
20113 D(p->level--);
20114 return NULL;
20115 }
20116 void * _res = NULL;
20117 int _mark = p->mark;
20118 { // yield_expr
20119 if (p->error_indicator) {
20120 D(p->level--);
20121 return NULL;
20122 }
20123 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20124 expr_ty yield_expr_var;
20125 if (
20126 (yield_expr_var = yield_expr_rule(p)) // yield_expr
20127 )
20128 {
20129 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
20130 _res = yield_expr_var;
20131 goto done;
20132 }
20133 p->mark = _mark;
20134 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
20136 }
20137 { // star_expressions
20138 if (p->error_indicator) {
20139 D(p->level--);
20140 return NULL;
20141 }
20142 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20143 expr_ty star_expressions_var;
20144 if (
20145 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20146 )
20147 {
20148 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
20149 _res = star_expressions_var;
20150 goto done;
20151 }
20152 p->mark = _mark;
20153 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
20154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
20155 }
20156 _res = NULL;
20157 done:
20158 D(p->level--);
20159 return _res;
20160}
20161
20162// _loop0_26: ',' NAME
20163static asdl_seq *
20164_loop0_26_rule(Parser *p)
20165{
20166 D(p->level++);
20167 if (p->error_indicator) {
20168 D(p->level--);
20169 return NULL;
20170 }
20171 void *_res = NULL;
20172 int _mark = p->mark;
20173 int _start_mark = p->mark;
20174 void **_children = PyMem_Malloc(sizeof(void *));
20175 if (!_children) {
20176 p->error_indicator = 1;
20177 PyErr_NoMemory();
20178 D(p->level--);
20179 return NULL;
20180 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020181 Py_ssize_t _children_capacity = 1;
20182 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020183 { // ',' NAME
20184 if (p->error_indicator) {
20185 D(p->level--);
20186 return NULL;
20187 }
20188 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20189 Token * _literal;
20190 expr_ty elem;
20191 while (
20192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20193 &&
20194 (elem = _PyPegen_name_token(p)) // NAME
20195 )
20196 {
20197 _res = elem;
20198 if (_res == NULL && PyErr_Occurred()) {
20199 p->error_indicator = 1;
20200 PyMem_Free(_children);
20201 D(p->level--);
20202 return NULL;
20203 }
20204 if (_n == _children_capacity) {
20205 _children_capacity *= 2;
20206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20207 if (!_new_children) {
20208 p->error_indicator = 1;
20209 PyErr_NoMemory();
20210 D(p->level--);
20211 return NULL;
20212 }
20213 _children = _new_children;
20214 }
20215 _children[_n++] = _res;
20216 _mark = p->mark;
20217 }
20218 p->mark = _mark;
20219 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
20220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20221 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020222 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020223 if (!_seq) {
20224 PyMem_Free(_children);
20225 p->error_indicator = 1;
20226 PyErr_NoMemory();
20227 D(p->level--);
20228 return NULL;
20229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020230 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020231 PyMem_Free(_children);
20232 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20233 D(p->level--);
20234 return _seq;
20235}
20236
20237// _gather_25: NAME _loop0_26
20238static asdl_seq *
20239_gather_25_rule(Parser *p)
20240{
20241 D(p->level++);
20242 if (p->error_indicator) {
20243 D(p->level--);
20244 return NULL;
20245 }
20246 asdl_seq * _res = NULL;
20247 int _mark = p->mark;
20248 { // NAME _loop0_26
20249 if (p->error_indicator) {
20250 D(p->level--);
20251 return NULL;
20252 }
20253 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20254 expr_ty elem;
20255 asdl_seq * seq;
20256 if (
20257 (elem = _PyPegen_name_token(p)) // NAME
20258 &&
20259 (seq = _loop0_26_rule(p)) // _loop0_26
20260 )
20261 {
20262 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20264 goto done;
20265 }
20266 p->mark = _mark;
20267 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20269 }
20270 _res = NULL;
20271 done:
20272 D(p->level--);
20273 return _res;
20274}
20275
20276// _loop0_28: ',' NAME
20277static asdl_seq *
20278_loop0_28_rule(Parser *p)
20279{
20280 D(p->level++);
20281 if (p->error_indicator) {
20282 D(p->level--);
20283 return NULL;
20284 }
20285 void *_res = NULL;
20286 int _mark = p->mark;
20287 int _start_mark = p->mark;
20288 void **_children = PyMem_Malloc(sizeof(void *));
20289 if (!_children) {
20290 p->error_indicator = 1;
20291 PyErr_NoMemory();
20292 D(p->level--);
20293 return NULL;
20294 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020295 Py_ssize_t _children_capacity = 1;
20296 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020297 { // ',' NAME
20298 if (p->error_indicator) {
20299 D(p->level--);
20300 return NULL;
20301 }
20302 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20303 Token * _literal;
20304 expr_ty elem;
20305 while (
20306 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20307 &&
20308 (elem = _PyPegen_name_token(p)) // NAME
20309 )
20310 {
20311 _res = elem;
20312 if (_res == NULL && PyErr_Occurred()) {
20313 p->error_indicator = 1;
20314 PyMem_Free(_children);
20315 D(p->level--);
20316 return NULL;
20317 }
20318 if (_n == _children_capacity) {
20319 _children_capacity *= 2;
20320 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20321 if (!_new_children) {
20322 p->error_indicator = 1;
20323 PyErr_NoMemory();
20324 D(p->level--);
20325 return NULL;
20326 }
20327 _children = _new_children;
20328 }
20329 _children[_n++] = _res;
20330 _mark = p->mark;
20331 }
20332 p->mark = _mark;
20333 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
20334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020336 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020337 if (!_seq) {
20338 PyMem_Free(_children);
20339 p->error_indicator = 1;
20340 PyErr_NoMemory();
20341 D(p->level--);
20342 return NULL;
20343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020344 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020345 PyMem_Free(_children);
20346 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
20347 D(p->level--);
20348 return _seq;
20349}
20350
20351// _gather_27: NAME _loop0_28
20352static asdl_seq *
20353_gather_27_rule(Parser *p)
20354{
20355 D(p->level++);
20356 if (p->error_indicator) {
20357 D(p->level--);
20358 return NULL;
20359 }
20360 asdl_seq * _res = NULL;
20361 int _mark = p->mark;
20362 { // NAME _loop0_28
20363 if (p->error_indicator) {
20364 D(p->level--);
20365 return NULL;
20366 }
20367 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20368 expr_ty elem;
20369 asdl_seq * seq;
20370 if (
20371 (elem = _PyPegen_name_token(p)) // NAME
20372 &&
20373 (seq = _loop0_28_rule(p)) // _loop0_28
20374 )
20375 {
20376 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20377 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20378 goto done;
20379 }
20380 p->mark = _mark;
20381 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
20382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
20383 }
20384 _res = NULL;
20385 done:
20386 D(p->level--);
20387 return _res;
20388}
20389
20390// _tmp_29: ',' expression
20391static void *
20392_tmp_29_rule(Parser *p)
20393{
20394 D(p->level++);
20395 if (p->error_indicator) {
20396 D(p->level--);
20397 return NULL;
20398 }
20399 void * _res = NULL;
20400 int _mark = p->mark;
20401 { // ',' expression
20402 if (p->error_indicator) {
20403 D(p->level--);
20404 return NULL;
20405 }
20406 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20407 Token * _literal;
20408 expr_ty z;
20409 if (
20410 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20411 &&
20412 (z = expression_rule(p)) // expression
20413 )
20414 {
20415 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
20416 _res = z;
20417 if (_res == NULL && PyErr_Occurred()) {
20418 p->error_indicator = 1;
20419 D(p->level--);
20420 return NULL;
20421 }
20422 goto done;
20423 }
20424 p->mark = _mark;
20425 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
20426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20427 }
20428 _res = NULL;
20429 done:
20430 D(p->level--);
20431 return _res;
20432}
20433
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020434// _tmp_30: ';' | NEWLINE
20435static void *
20436_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020437{
20438 D(p->level++);
20439 if (p->error_indicator) {
20440 D(p->level--);
20441 return NULL;
20442 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020443 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020444 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020445 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020446 if (p->error_indicator) {
20447 D(p->level--);
20448 return NULL;
20449 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020450 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
20451 Token * _literal;
20452 if (
20453 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020454 )
20455 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020456 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
20457 _res = _literal;
20458 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020459 }
20460 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020461 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020463 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020464 { // NEWLINE
20465 if (p->error_indicator) {
20466 D(p->level--);
20467 return NULL;
20468 }
20469 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20470 Token * newline_var;
20471 if (
20472 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20473 )
20474 {
20475 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20476 _res = newline_var;
20477 goto done;
20478 }
20479 p->mark = _mark;
20480 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020482 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020483 _res = NULL;
20484 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020485 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020486 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020487}
20488
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020489// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020490static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020491_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020492{
20493 D(p->level++);
20494 if (p->error_indicator) {
20495 D(p->level--);
20496 return NULL;
20497 }
20498 void *_res = NULL;
20499 int _mark = p->mark;
20500 int _start_mark = p->mark;
20501 void **_children = PyMem_Malloc(sizeof(void *));
20502 if (!_children) {
20503 p->error_indicator = 1;
20504 PyErr_NoMemory();
20505 D(p->level--);
20506 return NULL;
20507 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020508 Py_ssize_t _children_capacity = 1;
20509 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020510 { // ('.' | '...')
20511 if (p->error_indicator) {
20512 D(p->level--);
20513 return NULL;
20514 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020515 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020516 void *_tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020517 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020518 (_tmp_163_var = _tmp_163_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020519 )
20520 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020521 _res = _tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020522 if (_n == _children_capacity) {
20523 _children_capacity *= 2;
20524 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20525 if (!_new_children) {
20526 p->error_indicator = 1;
20527 PyErr_NoMemory();
20528 D(p->level--);
20529 return NULL;
20530 }
20531 _children = _new_children;
20532 }
20533 _children[_n++] = _res;
20534 _mark = p->mark;
20535 }
20536 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020537 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
20538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20539 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020540 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020541 if (!_seq) {
20542 PyMem_Free(_children);
20543 p->error_indicator = 1;
20544 PyErr_NoMemory();
20545 D(p->level--);
20546 return NULL;
20547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020548 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020549 PyMem_Free(_children);
20550 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
20551 D(p->level--);
20552 return _seq;
20553}
20554
20555// _loop1_32: ('.' | '...')
20556static asdl_seq *
20557_loop1_32_rule(Parser *p)
20558{
20559 D(p->level++);
20560 if (p->error_indicator) {
20561 D(p->level--);
20562 return NULL;
20563 }
20564 void *_res = NULL;
20565 int _mark = p->mark;
20566 int _start_mark = p->mark;
20567 void **_children = PyMem_Malloc(sizeof(void *));
20568 if (!_children) {
20569 p->error_indicator = 1;
20570 PyErr_NoMemory();
20571 D(p->level--);
20572 return NULL;
20573 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020574 Py_ssize_t _children_capacity = 1;
20575 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020576 { // ('.' | '...')
20577 if (p->error_indicator) {
20578 D(p->level--);
20579 return NULL;
20580 }
20581 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020582 void *_tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020583 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020584 (_tmp_164_var = _tmp_164_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020585 )
20586 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020587 _res = _tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020588 if (_n == _children_capacity) {
20589 _children_capacity *= 2;
20590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20591 if (!_new_children) {
20592 p->error_indicator = 1;
20593 PyErr_NoMemory();
20594 D(p->level--);
20595 return NULL;
20596 }
20597 _children = _new_children;
20598 }
20599 _children[_n++] = _res;
20600 _mark = p->mark;
20601 }
20602 p->mark = _mark;
20603 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20605 }
20606 if (_n == 0 || p->error_indicator) {
20607 PyMem_Free(_children);
20608 D(p->level--);
20609 return NULL;
20610 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020611 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020612 if (!_seq) {
20613 PyMem_Free(_children);
20614 p->error_indicator = 1;
20615 PyErr_NoMemory();
20616 D(p->level--);
20617 return NULL;
20618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020619 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020620 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020621 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020622 D(p->level--);
20623 return _seq;
20624}
20625
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020626// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020627static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020628_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020629{
20630 D(p->level++);
20631 if (p->error_indicator) {
20632 D(p->level--);
20633 return NULL;
20634 }
20635 void *_res = NULL;
20636 int _mark = p->mark;
20637 int _start_mark = p->mark;
20638 void **_children = PyMem_Malloc(sizeof(void *));
20639 if (!_children) {
20640 p->error_indicator = 1;
20641 PyErr_NoMemory();
20642 D(p->level--);
20643 return NULL;
20644 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020645 Py_ssize_t _children_capacity = 1;
20646 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020647 { // ',' import_from_as_name
20648 if (p->error_indicator) {
20649 D(p->level--);
20650 return NULL;
20651 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020652 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 +010020653 Token * _literal;
20654 alias_ty elem;
20655 while (
20656 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20657 &&
20658 (elem = import_from_as_name_rule(p)) // import_from_as_name
20659 )
20660 {
20661 _res = elem;
20662 if (_res == NULL && PyErr_Occurred()) {
20663 p->error_indicator = 1;
20664 PyMem_Free(_children);
20665 D(p->level--);
20666 return NULL;
20667 }
20668 if (_n == _children_capacity) {
20669 _children_capacity *= 2;
20670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20671 if (!_new_children) {
20672 p->error_indicator = 1;
20673 PyErr_NoMemory();
20674 D(p->level--);
20675 return NULL;
20676 }
20677 _children = _new_children;
20678 }
20679 _children[_n++] = _res;
20680 _mark = p->mark;
20681 }
20682 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020683 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
20685 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020686 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020687 if (!_seq) {
20688 PyMem_Free(_children);
20689 p->error_indicator = 1;
20690 PyErr_NoMemory();
20691 D(p->level--);
20692 return NULL;
20693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020694 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020695 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020696 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020697 D(p->level--);
20698 return _seq;
20699}
20700
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020701// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020702static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020703_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020704{
20705 D(p->level++);
20706 if (p->error_indicator) {
20707 D(p->level--);
20708 return NULL;
20709 }
20710 asdl_seq * _res = NULL;
20711 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020712 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020713 if (p->error_indicator) {
20714 D(p->level--);
20715 return NULL;
20716 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020717 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 +010020718 alias_ty elem;
20719 asdl_seq * seq;
20720 if (
20721 (elem = import_from_as_name_rule(p)) // import_from_as_name
20722 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020723 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020724 )
20725 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020726 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 +010020727 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20728 goto done;
20729 }
20730 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020731 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
20732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020733 }
20734 _res = NULL;
20735 done:
20736 D(p->level--);
20737 return _res;
20738}
20739
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020740// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020741static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020742_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020743{
20744 D(p->level++);
20745 if (p->error_indicator) {
20746 D(p->level--);
20747 return NULL;
20748 }
20749 void * _res = NULL;
20750 int _mark = p->mark;
20751 { // 'as' NAME
20752 if (p->error_indicator) {
20753 D(p->level--);
20754 return NULL;
20755 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020756 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020757 Token * _keyword;
20758 expr_ty z;
20759 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020760 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020761 &&
20762 (z = _PyPegen_name_token(p)) // NAME
20763 )
20764 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020765 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 +010020766 _res = z;
20767 if (_res == NULL && PyErr_Occurred()) {
20768 p->error_indicator = 1;
20769 D(p->level--);
20770 return NULL;
20771 }
20772 goto done;
20773 }
20774 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020775 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20777 }
20778 _res = NULL;
20779 done:
20780 D(p->level--);
20781 return _res;
20782}
20783
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020784// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020785static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020786_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020787{
20788 D(p->level++);
20789 if (p->error_indicator) {
20790 D(p->level--);
20791 return NULL;
20792 }
20793 void *_res = NULL;
20794 int _mark = p->mark;
20795 int _start_mark = p->mark;
20796 void **_children = PyMem_Malloc(sizeof(void *));
20797 if (!_children) {
20798 p->error_indicator = 1;
20799 PyErr_NoMemory();
20800 D(p->level--);
20801 return NULL;
20802 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020803 Py_ssize_t _children_capacity = 1;
20804 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020805 { // ',' dotted_as_name
20806 if (p->error_indicator) {
20807 D(p->level--);
20808 return NULL;
20809 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020810 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 +010020811 Token * _literal;
20812 alias_ty elem;
20813 while (
20814 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20815 &&
20816 (elem = dotted_as_name_rule(p)) // dotted_as_name
20817 )
20818 {
20819 _res = elem;
20820 if (_res == NULL && PyErr_Occurred()) {
20821 p->error_indicator = 1;
20822 PyMem_Free(_children);
20823 D(p->level--);
20824 return NULL;
20825 }
20826 if (_n == _children_capacity) {
20827 _children_capacity *= 2;
20828 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20829 if (!_new_children) {
20830 p->error_indicator = 1;
20831 PyErr_NoMemory();
20832 D(p->level--);
20833 return NULL;
20834 }
20835 _children = _new_children;
20836 }
20837 _children[_n++] = _res;
20838 _mark = p->mark;
20839 }
20840 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020841 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
20843 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020844 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020845 if (!_seq) {
20846 PyMem_Free(_children);
20847 p->error_indicator = 1;
20848 PyErr_NoMemory();
20849 D(p->level--);
20850 return NULL;
20851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020852 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020853 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020854 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020855 D(p->level--);
20856 return _seq;
20857}
20858
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020859// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020860static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020861_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020862{
20863 D(p->level++);
20864 if (p->error_indicator) {
20865 D(p->level--);
20866 return NULL;
20867 }
20868 asdl_seq * _res = NULL;
20869 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020870 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020871 if (p->error_indicator) {
20872 D(p->level--);
20873 return NULL;
20874 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020875 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 +010020876 alias_ty elem;
20877 asdl_seq * seq;
20878 if (
20879 (elem = dotted_as_name_rule(p)) // dotted_as_name
20880 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020881 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020882 )
20883 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020884 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 +010020885 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20886 goto done;
20887 }
20888 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020889 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
20890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020891 }
20892 _res = NULL;
20893 done:
20894 D(p->level--);
20895 return _res;
20896}
20897
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020898// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020899static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020900_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020901{
20902 D(p->level++);
20903 if (p->error_indicator) {
20904 D(p->level--);
20905 return NULL;
20906 }
20907 void * _res = NULL;
20908 int _mark = p->mark;
20909 { // 'as' NAME
20910 if (p->error_indicator) {
20911 D(p->level--);
20912 return NULL;
20913 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020914 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020915 Token * _keyword;
20916 expr_ty z;
20917 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020918 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020919 &&
20920 (z = _PyPegen_name_token(p)) // NAME
20921 )
20922 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020923 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 +010020924 _res = z;
20925 if (_res == NULL && PyErr_Occurred()) {
20926 p->error_indicator = 1;
20927 D(p->level--);
20928 return NULL;
20929 }
20930 goto done;
20931 }
20932 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020933 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20935 }
20936 _res = NULL;
20937 done:
20938 D(p->level--);
20939 return _res;
20940}
20941
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020942// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020943static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020944_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020945{
20946 D(p->level++);
20947 if (p->error_indicator) {
20948 D(p->level--);
20949 return NULL;
20950 }
20951 void *_res = NULL;
20952 int _mark = p->mark;
20953 int _start_mark = p->mark;
20954 void **_children = PyMem_Malloc(sizeof(void *));
20955 if (!_children) {
20956 p->error_indicator = 1;
20957 PyErr_NoMemory();
20958 D(p->level--);
20959 return NULL;
20960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020961 Py_ssize_t _children_capacity = 1;
20962 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020963 { // ',' with_item
20964 if (p->error_indicator) {
20965 D(p->level--);
20966 return NULL;
20967 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020968 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020969 Token * _literal;
20970 withitem_ty elem;
20971 while (
20972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20973 &&
20974 (elem = with_item_rule(p)) // with_item
20975 )
20976 {
20977 _res = elem;
20978 if (_res == NULL && PyErr_Occurred()) {
20979 p->error_indicator = 1;
20980 PyMem_Free(_children);
20981 D(p->level--);
20982 return NULL;
20983 }
20984 if (_n == _children_capacity) {
20985 _children_capacity *= 2;
20986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20987 if (!_new_children) {
20988 p->error_indicator = 1;
20989 PyErr_NoMemory();
20990 D(p->level--);
20991 return NULL;
20992 }
20993 _children = _new_children;
20994 }
20995 _children[_n++] = _res;
20996 _mark = p->mark;
20997 }
20998 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020999 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21001 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021002 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021003 if (!_seq) {
21004 PyMem_Free(_children);
21005 p->error_indicator = 1;
21006 PyErr_NoMemory();
21007 D(p->level--);
21008 return NULL;
21009 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021010 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021011 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021012 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021013 D(p->level--);
21014 return _seq;
21015}
21016
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021017// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021018static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021019_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021020{
21021 D(p->level++);
21022 if (p->error_indicator) {
21023 D(p->level--);
21024 return NULL;
21025 }
21026 asdl_seq * _res = NULL;
21027 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021028 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021029 if (p->error_indicator) {
21030 D(p->level--);
21031 return NULL;
21032 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021033 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 +010021034 withitem_ty elem;
21035 asdl_seq * seq;
21036 if (
21037 (elem = with_item_rule(p)) // with_item
21038 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021039 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021040 )
21041 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021042 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 +010021043 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21044 goto done;
21045 }
21046 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021047 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
21048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021049 }
21050 _res = NULL;
21051 done:
21052 D(p->level--);
21053 return _res;
21054}
21055
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021056// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021057static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021058_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021059{
21060 D(p->level++);
21061 if (p->error_indicator) {
21062 D(p->level--);
21063 return NULL;
21064 }
21065 void *_res = NULL;
21066 int _mark = p->mark;
21067 int _start_mark = p->mark;
21068 void **_children = PyMem_Malloc(sizeof(void *));
21069 if (!_children) {
21070 p->error_indicator = 1;
21071 PyErr_NoMemory();
21072 D(p->level--);
21073 return NULL;
21074 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021075 Py_ssize_t _children_capacity = 1;
21076 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021077 { // ',' with_item
21078 if (p->error_indicator) {
21079 D(p->level--);
21080 return NULL;
21081 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021082 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021083 Token * _literal;
21084 withitem_ty elem;
21085 while (
21086 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21087 &&
21088 (elem = with_item_rule(p)) // with_item
21089 )
21090 {
21091 _res = elem;
21092 if (_res == NULL && PyErr_Occurred()) {
21093 p->error_indicator = 1;
21094 PyMem_Free(_children);
21095 D(p->level--);
21096 return NULL;
21097 }
21098 if (_n == _children_capacity) {
21099 _children_capacity *= 2;
21100 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21101 if (!_new_children) {
21102 p->error_indicator = 1;
21103 PyErr_NoMemory();
21104 D(p->level--);
21105 return NULL;
21106 }
21107 _children = _new_children;
21108 }
21109 _children[_n++] = _res;
21110 _mark = p->mark;
21111 }
21112 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021113 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21115 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021116 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021117 if (!_seq) {
21118 PyMem_Free(_children);
21119 p->error_indicator = 1;
21120 PyErr_NoMemory();
21121 D(p->level--);
21122 return NULL;
21123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021124 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021125 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021126 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021127 D(p->level--);
21128 return _seq;
21129}
21130
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021131// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021132static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021133_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021134{
21135 D(p->level++);
21136 if (p->error_indicator) {
21137 D(p->level--);
21138 return NULL;
21139 }
21140 asdl_seq * _res = NULL;
21141 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021142 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021143 if (p->error_indicator) {
21144 D(p->level--);
21145 return NULL;
21146 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021147 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 +010021148 withitem_ty elem;
21149 asdl_seq * seq;
21150 if (
21151 (elem = with_item_rule(p)) // with_item
21152 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021153 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021154 )
21155 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021156 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 +010021157 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21158 goto done;
21159 }
21160 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021161 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
21162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021163 }
21164 _res = NULL;
21165 done:
21166 D(p->level--);
21167 return _res;
21168}
21169
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021170// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021171static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021172_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021173{
21174 D(p->level++);
21175 if (p->error_indicator) {
21176 D(p->level--);
21177 return NULL;
21178 }
21179 void *_res = NULL;
21180 int _mark = p->mark;
21181 int _start_mark = p->mark;
21182 void **_children = PyMem_Malloc(sizeof(void *));
21183 if (!_children) {
21184 p->error_indicator = 1;
21185 PyErr_NoMemory();
21186 D(p->level--);
21187 return NULL;
21188 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021189 Py_ssize_t _children_capacity = 1;
21190 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021191 { // ',' with_item
21192 if (p->error_indicator) {
21193 D(p->level--);
21194 return NULL;
21195 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021196 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021197 Token * _literal;
21198 withitem_ty elem;
21199 while (
21200 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21201 &&
21202 (elem = with_item_rule(p)) // with_item
21203 )
21204 {
21205 _res = elem;
21206 if (_res == NULL && PyErr_Occurred()) {
21207 p->error_indicator = 1;
21208 PyMem_Free(_children);
21209 D(p->level--);
21210 return NULL;
21211 }
21212 if (_n == _children_capacity) {
21213 _children_capacity *= 2;
21214 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21215 if (!_new_children) {
21216 p->error_indicator = 1;
21217 PyErr_NoMemory();
21218 D(p->level--);
21219 return NULL;
21220 }
21221 _children = _new_children;
21222 }
21223 _children[_n++] = _res;
21224 _mark = p->mark;
21225 }
21226 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021227 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021230 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021231 if (!_seq) {
21232 PyMem_Free(_children);
21233 p->error_indicator = 1;
21234 PyErr_NoMemory();
21235 D(p->level--);
21236 return NULL;
21237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021238 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021239 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021240 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021241 D(p->level--);
21242 return _seq;
21243}
21244
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021245// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021246static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021247_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021248{
21249 D(p->level++);
21250 if (p->error_indicator) {
21251 D(p->level--);
21252 return NULL;
21253 }
21254 asdl_seq * _res = NULL;
21255 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021256 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021257 if (p->error_indicator) {
21258 D(p->level--);
21259 return NULL;
21260 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021261 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 +010021262 withitem_ty elem;
21263 asdl_seq * seq;
21264 if (
21265 (elem = with_item_rule(p)) // with_item
21266 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021267 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021268 )
21269 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021270 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 +010021271 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21272 goto done;
21273 }
21274 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021275 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021277 }
21278 _res = NULL;
21279 done:
21280 D(p->level--);
21281 return _res;
21282}
21283
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021284// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021285static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021286_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021287{
21288 D(p->level++);
21289 if (p->error_indicator) {
21290 D(p->level--);
21291 return NULL;
21292 }
21293 void *_res = NULL;
21294 int _mark = p->mark;
21295 int _start_mark = p->mark;
21296 void **_children = PyMem_Malloc(sizeof(void *));
21297 if (!_children) {
21298 p->error_indicator = 1;
21299 PyErr_NoMemory();
21300 D(p->level--);
21301 return NULL;
21302 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021303 Py_ssize_t _children_capacity = 1;
21304 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021305 { // ',' with_item
21306 if (p->error_indicator) {
21307 D(p->level--);
21308 return NULL;
21309 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021310 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021311 Token * _literal;
21312 withitem_ty elem;
21313 while (
21314 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21315 &&
21316 (elem = with_item_rule(p)) // with_item
21317 )
21318 {
21319 _res = elem;
21320 if (_res == NULL && PyErr_Occurred()) {
21321 p->error_indicator = 1;
21322 PyMem_Free(_children);
21323 D(p->level--);
21324 return NULL;
21325 }
21326 if (_n == _children_capacity) {
21327 _children_capacity *= 2;
21328 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21329 if (!_new_children) {
21330 p->error_indicator = 1;
21331 PyErr_NoMemory();
21332 D(p->level--);
21333 return NULL;
21334 }
21335 _children = _new_children;
21336 }
21337 _children[_n++] = _res;
21338 _mark = p->mark;
21339 }
21340 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021341 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021344 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345 if (!_seq) {
21346 PyMem_Free(_children);
21347 p->error_indicator = 1;
21348 PyErr_NoMemory();
21349 D(p->level--);
21350 return NULL;
21351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021352 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021353 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021354 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021355 D(p->level--);
21356 return _seq;
21357}
21358
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021359// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021360static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021361_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362{
21363 D(p->level++);
21364 if (p->error_indicator) {
21365 D(p->level--);
21366 return NULL;
21367 }
21368 asdl_seq * _res = NULL;
21369 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021370 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021371 if (p->error_indicator) {
21372 D(p->level--);
21373 return NULL;
21374 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021375 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 +010021376 withitem_ty elem;
21377 asdl_seq * seq;
21378 if (
21379 (elem = with_item_rule(p)) // with_item
21380 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021381 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021382 )
21383 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021384 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 +010021385 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21386 goto done;
21387 }
21388 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021389 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
21390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021391 }
21392 _res = NULL;
21393 done:
21394 D(p->level--);
21395 return _res;
21396}
21397
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021398// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021399static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021400_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021401{
21402 D(p->level++);
21403 if (p->error_indicator) {
21404 D(p->level--);
21405 return NULL;
21406 }
21407 void * _res = NULL;
21408 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021409 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021410 if (p->error_indicator) {
21411 D(p->level--);
21412 return NULL;
21413 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021414 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
21415 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021416 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021417 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021418 )
21419 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021420 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
21421 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021422 goto done;
21423 }
21424 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021425 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
21427 }
21428 { // ')'
21429 if (p->error_indicator) {
21430 D(p->level--);
21431 return NULL;
21432 }
21433 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
21434 Token * _literal;
21435 if (
21436 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
21437 )
21438 {
21439 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
21440 _res = _literal;
21441 goto done;
21442 }
21443 p->mark = _mark;
21444 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
21446 }
21447 { // ':'
21448 if (p->error_indicator) {
21449 D(p->level--);
21450 return NULL;
21451 }
21452 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
21453 Token * _literal;
21454 if (
21455 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21456 )
21457 {
21458 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
21459 _res = _literal;
21460 goto done;
21461 }
21462 p->mark = _mark;
21463 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021465 }
21466 _res = NULL;
21467 done:
21468 D(p->level--);
21469 return _res;
21470}
21471
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021472// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021473static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021474_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021475{
21476 D(p->level++);
21477 if (p->error_indicator) {
21478 D(p->level--);
21479 return NULL;
21480 }
21481 void *_res = NULL;
21482 int _mark = p->mark;
21483 int _start_mark = p->mark;
21484 void **_children = PyMem_Malloc(sizeof(void *));
21485 if (!_children) {
21486 p->error_indicator = 1;
21487 PyErr_NoMemory();
21488 D(p->level--);
21489 return NULL;
21490 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021491 Py_ssize_t _children_capacity = 1;
21492 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021493 { // except_block
21494 if (p->error_indicator) {
21495 D(p->level--);
21496 return NULL;
21497 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021498 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021499 excepthandler_ty except_block_var;
21500 while (
21501 (except_block_var = except_block_rule(p)) // except_block
21502 )
21503 {
21504 _res = except_block_var;
21505 if (_n == _children_capacity) {
21506 _children_capacity *= 2;
21507 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21508 if (!_new_children) {
21509 p->error_indicator = 1;
21510 PyErr_NoMemory();
21511 D(p->level--);
21512 return NULL;
21513 }
21514 _children = _new_children;
21515 }
21516 _children[_n++] = _res;
21517 _mark = p->mark;
21518 }
21519 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021520 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
21522 }
21523 if (_n == 0 || p->error_indicator) {
21524 PyMem_Free(_children);
21525 D(p->level--);
21526 return NULL;
21527 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021528 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021529 if (!_seq) {
21530 PyMem_Free(_children);
21531 p->error_indicator = 1;
21532 PyErr_NoMemory();
21533 D(p->level--);
21534 return NULL;
21535 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021536 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021537 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021538 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021539 D(p->level--);
21540 return _seq;
21541}
21542
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021543// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021544static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021545_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021546{
21547 D(p->level++);
21548 if (p->error_indicator) {
21549 D(p->level--);
21550 return NULL;
21551 }
21552 void * _res = NULL;
21553 int _mark = p->mark;
21554 { // 'as' NAME
21555 if (p->error_indicator) {
21556 D(p->level--);
21557 return NULL;
21558 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021559 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021560 Token * _keyword;
21561 expr_ty z;
21562 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021563 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021564 &&
21565 (z = _PyPegen_name_token(p)) // NAME
21566 )
21567 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021568 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 +010021569 _res = z;
21570 if (_res == NULL && PyErr_Occurred()) {
21571 p->error_indicator = 1;
21572 D(p->level--);
21573 return NULL;
21574 }
21575 goto done;
21576 }
21577 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021578 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21580 }
21581 _res = NULL;
21582 done:
21583 D(p->level--);
21584 return _res;
21585}
21586
Brandt Bucher145bf262021-02-26 14:51:55 -080021587// _loop1_50: case_block
21588static asdl_seq *
21589_loop1_50_rule(Parser *p)
21590{
21591 D(p->level++);
21592 if (p->error_indicator) {
21593 D(p->level--);
21594 return NULL;
21595 }
21596 void *_res = NULL;
21597 int _mark = p->mark;
21598 int _start_mark = p->mark;
21599 void **_children = PyMem_Malloc(sizeof(void *));
21600 if (!_children) {
21601 p->error_indicator = 1;
21602 PyErr_NoMemory();
21603 D(p->level--);
21604 return NULL;
21605 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021606 Py_ssize_t _children_capacity = 1;
21607 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021608 { // case_block
21609 if (p->error_indicator) {
21610 D(p->level--);
21611 return NULL;
21612 }
21613 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
21614 match_case_ty case_block_var;
21615 while (
21616 (case_block_var = case_block_rule(p)) // case_block
21617 )
21618 {
21619 _res = case_block_var;
21620 if (_n == _children_capacity) {
21621 _children_capacity *= 2;
21622 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21623 if (!_new_children) {
21624 p->error_indicator = 1;
21625 PyErr_NoMemory();
21626 D(p->level--);
21627 return NULL;
21628 }
21629 _children = _new_children;
21630 }
21631 _children[_n++] = _res;
21632 _mark = p->mark;
21633 }
21634 p->mark = _mark;
21635 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
21636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
21637 }
21638 if (_n == 0 || p->error_indicator) {
21639 PyMem_Free(_children);
21640 D(p->level--);
21641 return NULL;
21642 }
21643 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21644 if (!_seq) {
21645 PyMem_Free(_children);
21646 p->error_indicator = 1;
21647 PyErr_NoMemory();
21648 D(p->level--);
21649 return NULL;
21650 }
21651 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21652 PyMem_Free(_children);
21653 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
21654 D(p->level--);
21655 return _seq;
21656}
21657
21658// _loop0_52: '|' closed_pattern
21659static asdl_seq *
21660_loop0_52_rule(Parser *p)
21661{
21662 D(p->level++);
21663 if (p->error_indicator) {
21664 D(p->level--);
21665 return NULL;
21666 }
21667 void *_res = NULL;
21668 int _mark = p->mark;
21669 int _start_mark = p->mark;
21670 void **_children = PyMem_Malloc(sizeof(void *));
21671 if (!_children) {
21672 p->error_indicator = 1;
21673 PyErr_NoMemory();
21674 D(p->level--);
21675 return NULL;
21676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021677 Py_ssize_t _children_capacity = 1;
21678 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021679 { // '|' closed_pattern
21680 if (p->error_indicator) {
21681 D(p->level--);
21682 return NULL;
21683 }
21684 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
21685 Token * _literal;
21686 expr_ty elem;
21687 while (
21688 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
21689 &&
21690 (elem = closed_pattern_rule(p)) // closed_pattern
21691 )
21692 {
21693 _res = elem;
21694 if (_res == NULL && PyErr_Occurred()) {
21695 p->error_indicator = 1;
21696 PyMem_Free(_children);
21697 D(p->level--);
21698 return NULL;
21699 }
21700 if (_n == _children_capacity) {
21701 _children_capacity *= 2;
21702 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21703 if (!_new_children) {
21704 p->error_indicator = 1;
21705 PyErr_NoMemory();
21706 D(p->level--);
21707 return NULL;
21708 }
21709 _children = _new_children;
21710 }
21711 _children[_n++] = _res;
21712 _mark = p->mark;
21713 }
21714 p->mark = _mark;
21715 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
21716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
21717 }
21718 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21719 if (!_seq) {
21720 PyMem_Free(_children);
21721 p->error_indicator = 1;
21722 PyErr_NoMemory();
21723 D(p->level--);
21724 return NULL;
21725 }
21726 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21727 PyMem_Free(_children);
21728 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
21729 D(p->level--);
21730 return _seq;
21731}
21732
21733// _gather_51: closed_pattern _loop0_52
21734static asdl_seq *
21735_gather_51_rule(Parser *p)
21736{
21737 D(p->level++);
21738 if (p->error_indicator) {
21739 D(p->level--);
21740 return NULL;
21741 }
21742 asdl_seq * _res = NULL;
21743 int _mark = p->mark;
21744 { // closed_pattern _loop0_52
21745 if (p->error_indicator) {
21746 D(p->level--);
21747 return NULL;
21748 }
21749 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21750 expr_ty elem;
21751 asdl_seq * seq;
21752 if (
21753 (elem = closed_pattern_rule(p)) // closed_pattern
21754 &&
21755 (seq = _loop0_52_rule(p)) // _loop0_52
21756 )
21757 {
21758 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21759 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21760 goto done;
21761 }
21762 p->mark = _mark;
21763 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
21764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
21765 }
21766 _res = NULL;
21767 done:
21768 D(p->level--);
21769 return _res;
21770}
21771
21772// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021773static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080021774_tmp_53_rule(Parser *p)
21775{
21776 D(p->level++);
21777 if (p->error_indicator) {
21778 D(p->level--);
21779 return NULL;
21780 }
21781 void * _res = NULL;
21782 int _mark = p->mark;
21783 { // '+'
21784 if (p->error_indicator) {
21785 D(p->level--);
21786 return NULL;
21787 }
21788 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
21789 Token * _literal;
21790 if (
21791 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
21792 )
21793 {
21794 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
21795 _res = _literal;
21796 goto done;
21797 }
21798 p->mark = _mark;
21799 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
21801 }
21802 { // '-'
21803 if (p->error_indicator) {
21804 D(p->level--);
21805 return NULL;
21806 }
21807 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
21808 Token * _literal;
21809 if (
21810 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
21811 )
21812 {
21813 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
21814 _res = _literal;
21815 goto done;
21816 }
21817 p->mark = _mark;
21818 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
21820 }
21821 _res = NULL;
21822 done:
21823 D(p->level--);
21824 return _res;
21825}
21826
21827// _tmp_54: '.' | '(' | '='
21828static void *
21829_tmp_54_rule(Parser *p)
21830{
21831 D(p->level++);
21832 if (p->error_indicator) {
21833 D(p->level--);
21834 return NULL;
21835 }
21836 void * _res = NULL;
21837 int _mark = p->mark;
21838 { // '.'
21839 if (p->error_indicator) {
21840 D(p->level--);
21841 return NULL;
21842 }
21843 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21844 Token * _literal;
21845 if (
21846 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21847 )
21848 {
21849 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21850 _res = _literal;
21851 goto done;
21852 }
21853 p->mark = _mark;
21854 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21856 }
21857 { // '('
21858 if (p->error_indicator) {
21859 D(p->level--);
21860 return NULL;
21861 }
21862 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21863 Token * _literal;
21864 if (
21865 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21866 )
21867 {
21868 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21869 _res = _literal;
21870 goto done;
21871 }
21872 p->mark = _mark;
21873 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21875 }
21876 { // '='
21877 if (p->error_indicator) {
21878 D(p->level--);
21879 return NULL;
21880 }
21881 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21882 Token * _literal;
21883 if (
21884 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21885 )
21886 {
21887 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21888 _res = _literal;
21889 goto done;
21890 }
21891 p->mark = _mark;
21892 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21894 }
21895 _res = NULL;
21896 done:
21897 D(p->level--);
21898 return _res;
21899}
21900
21901// _tmp_55: '.' | '(' | '='
21902static void *
21903_tmp_55_rule(Parser *p)
21904{
21905 D(p->level++);
21906 if (p->error_indicator) {
21907 D(p->level--);
21908 return NULL;
21909 }
21910 void * _res = NULL;
21911 int _mark = p->mark;
21912 { // '.'
21913 if (p->error_indicator) {
21914 D(p->level--);
21915 return NULL;
21916 }
21917 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21918 Token * _literal;
21919 if (
21920 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21921 )
21922 {
21923 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21924 _res = _literal;
21925 goto done;
21926 }
21927 p->mark = _mark;
21928 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21930 }
21931 { // '('
21932 if (p->error_indicator) {
21933 D(p->level--);
21934 return NULL;
21935 }
21936 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21937 Token * _literal;
21938 if (
21939 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21940 )
21941 {
21942 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21943 _res = _literal;
21944 goto done;
21945 }
21946 p->mark = _mark;
21947 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21949 }
21950 { // '='
21951 if (p->error_indicator) {
21952 D(p->level--);
21953 return NULL;
21954 }
21955 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21956 Token * _literal;
21957 if (
21958 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21959 )
21960 {
21961 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21962 _res = _literal;
21963 goto done;
21964 }
21965 p->mark = _mark;
21966 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21968 }
21969 _res = NULL;
21970 done:
21971 D(p->level--);
21972 return _res;
21973}
21974
21975// _loop0_57: ',' maybe_star_pattern
21976static asdl_seq *
21977_loop0_57_rule(Parser *p)
21978{
21979 D(p->level++);
21980 if (p->error_indicator) {
21981 D(p->level--);
21982 return NULL;
21983 }
21984 void *_res = NULL;
21985 int _mark = p->mark;
21986 int _start_mark = p->mark;
21987 void **_children = PyMem_Malloc(sizeof(void *));
21988 if (!_children) {
21989 p->error_indicator = 1;
21990 PyErr_NoMemory();
21991 D(p->level--);
21992 return NULL;
21993 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021994 Py_ssize_t _children_capacity = 1;
21995 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080021996 { // ',' maybe_star_pattern
21997 if (p->error_indicator) {
21998 D(p->level--);
21999 return NULL;
22000 }
22001 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
22002 Token * _literal;
22003 expr_ty elem;
22004 while (
22005 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22006 &&
22007 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22008 )
22009 {
22010 _res = elem;
22011 if (_res == NULL && PyErr_Occurred()) {
22012 p->error_indicator = 1;
22013 PyMem_Free(_children);
22014 D(p->level--);
22015 return NULL;
22016 }
22017 if (_n == _children_capacity) {
22018 _children_capacity *= 2;
22019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22020 if (!_new_children) {
22021 p->error_indicator = 1;
22022 PyErr_NoMemory();
22023 D(p->level--);
22024 return NULL;
22025 }
22026 _children = _new_children;
22027 }
22028 _children[_n++] = _res;
22029 _mark = p->mark;
22030 }
22031 p->mark = _mark;
22032 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
22033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
22034 }
22035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22036 if (!_seq) {
22037 PyMem_Free(_children);
22038 p->error_indicator = 1;
22039 PyErr_NoMemory();
22040 D(p->level--);
22041 return NULL;
22042 }
22043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22044 PyMem_Free(_children);
22045 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
22046 D(p->level--);
22047 return _seq;
22048}
22049
22050// _gather_56: maybe_star_pattern _loop0_57
22051static asdl_seq *
22052_gather_56_rule(Parser *p)
22053{
22054 D(p->level++);
22055 if (p->error_indicator) {
22056 D(p->level--);
22057 return NULL;
22058 }
22059 asdl_seq * _res = NULL;
22060 int _mark = p->mark;
22061 { // maybe_star_pattern _loop0_57
22062 if (p->error_indicator) {
22063 D(p->level--);
22064 return NULL;
22065 }
22066 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22067 expr_ty elem;
22068 asdl_seq * seq;
22069 if (
22070 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
22071 &&
22072 (seq = _loop0_57_rule(p)) // _loop0_57
22073 )
22074 {
22075 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
22076 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22077 goto done;
22078 }
22079 p->mark = _mark;
22080 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
22081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
22082 }
22083 _res = NULL;
22084 done:
22085 D(p->level--);
22086 return _res;
22087}
22088
22089// _tmp_58: capture_pattern | wildcard_pattern
22090static void *
22091_tmp_58_rule(Parser *p)
22092{
22093 D(p->level++);
22094 if (p->error_indicator) {
22095 D(p->level--);
22096 return NULL;
22097 }
22098 void * _res = NULL;
22099 int _mark = p->mark;
22100 { // capture_pattern
22101 if (p->error_indicator) {
22102 D(p->level--);
22103 return NULL;
22104 }
22105 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22106 expr_ty capture_pattern_var;
22107 if (
22108 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
22109 )
22110 {
22111 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
22112 _res = capture_pattern_var;
22113 goto done;
22114 }
22115 p->mark = _mark;
22116 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
22118 }
22119 { // wildcard_pattern
22120 if (p->error_indicator) {
22121 D(p->level--);
22122 return NULL;
22123 }
22124 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22125 expr_ty wildcard_pattern_var;
22126 if (
22127 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
22128 )
22129 {
22130 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
22131 _res = wildcard_pattern_var;
22132 goto done;
22133 }
22134 p->mark = _mark;
22135 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
22136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
22137 }
22138 _res = NULL;
22139 done:
22140 D(p->level--);
22141 return _res;
22142}
22143
22144// _loop0_60: ',' key_value_pattern
22145static asdl_seq *
22146_loop0_60_rule(Parser *p)
22147{
22148 D(p->level++);
22149 if (p->error_indicator) {
22150 D(p->level--);
22151 return NULL;
22152 }
22153 void *_res = NULL;
22154 int _mark = p->mark;
22155 int _start_mark = p->mark;
22156 void **_children = PyMem_Malloc(sizeof(void *));
22157 if (!_children) {
22158 p->error_indicator = 1;
22159 PyErr_NoMemory();
22160 D(p->level--);
22161 return NULL;
22162 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022163 Py_ssize_t _children_capacity = 1;
22164 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022165 { // ',' key_value_pattern
22166 if (p->error_indicator) {
22167 D(p->level--);
22168 return NULL;
22169 }
22170 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
22171 Token * _literal;
22172 KeyValuePair* elem;
22173 while (
22174 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22175 &&
22176 (elem = key_value_pattern_rule(p)) // key_value_pattern
22177 )
22178 {
22179 _res = elem;
22180 if (_res == NULL && PyErr_Occurred()) {
22181 p->error_indicator = 1;
22182 PyMem_Free(_children);
22183 D(p->level--);
22184 return NULL;
22185 }
22186 if (_n == _children_capacity) {
22187 _children_capacity *= 2;
22188 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22189 if (!_new_children) {
22190 p->error_indicator = 1;
22191 PyErr_NoMemory();
22192 D(p->level--);
22193 return NULL;
22194 }
22195 _children = _new_children;
22196 }
22197 _children[_n++] = _res;
22198 _mark = p->mark;
22199 }
22200 p->mark = _mark;
22201 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
22202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
22203 }
22204 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22205 if (!_seq) {
22206 PyMem_Free(_children);
22207 p->error_indicator = 1;
22208 PyErr_NoMemory();
22209 D(p->level--);
22210 return NULL;
22211 }
22212 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22213 PyMem_Free(_children);
22214 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
22215 D(p->level--);
22216 return _seq;
22217}
22218
22219// _gather_59: key_value_pattern _loop0_60
22220static asdl_seq *
22221_gather_59_rule(Parser *p)
22222{
22223 D(p->level++);
22224 if (p->error_indicator) {
22225 D(p->level--);
22226 return NULL;
22227 }
22228 asdl_seq * _res = NULL;
22229 int _mark = p->mark;
22230 { // key_value_pattern _loop0_60
22231 if (p->error_indicator) {
22232 D(p->level--);
22233 return NULL;
22234 }
22235 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22236 KeyValuePair* elem;
22237 asdl_seq * seq;
22238 if (
22239 (elem = key_value_pattern_rule(p)) // key_value_pattern
22240 &&
22241 (seq = _loop0_60_rule(p)) // _loop0_60
22242 )
22243 {
22244 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22245 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22246 goto done;
22247 }
22248 p->mark = _mark;
22249 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22251 }
22252 _res = NULL;
22253 done:
22254 D(p->level--);
22255 return _res;
22256}
22257
22258// _tmp_61: literal_pattern | value_pattern
22259static void *
22260_tmp_61_rule(Parser *p)
22261{
22262 D(p->level++);
22263 if (p->error_indicator) {
22264 D(p->level--);
22265 return NULL;
22266 }
22267 void * _res = NULL;
22268 int _mark = p->mark;
22269 { // literal_pattern
22270 if (p->error_indicator) {
22271 D(p->level--);
22272 return NULL;
22273 }
22274 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22275 expr_ty literal_pattern_var;
22276 if (
22277 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22278 )
22279 {
22280 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22281 _res = literal_pattern_var;
22282 goto done;
22283 }
22284 p->mark = _mark;
22285 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22287 }
22288 { // value_pattern
22289 if (p->error_indicator) {
22290 D(p->level--);
22291 return NULL;
22292 }
22293 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22294 expr_ty value_pattern_var;
22295 if (
22296 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22297 )
22298 {
22299 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22300 _res = value_pattern_var;
22301 goto done;
22302 }
22303 p->mark = _mark;
22304 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
22306 }
22307 _res = NULL;
22308 done:
22309 D(p->level--);
22310 return _res;
22311}
22312
22313// _loop0_63: ',' pattern
22314static asdl_seq *
22315_loop0_63_rule(Parser *p)
22316{
22317 D(p->level++);
22318 if (p->error_indicator) {
22319 D(p->level--);
22320 return NULL;
22321 }
22322 void *_res = NULL;
22323 int _mark = p->mark;
22324 int _start_mark = p->mark;
22325 void **_children = PyMem_Malloc(sizeof(void *));
22326 if (!_children) {
22327 p->error_indicator = 1;
22328 PyErr_NoMemory();
22329 D(p->level--);
22330 return NULL;
22331 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022332 Py_ssize_t _children_capacity = 1;
22333 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022334 { // ',' pattern
22335 if (p->error_indicator) {
22336 D(p->level--);
22337 return NULL;
22338 }
22339 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
22340 Token * _literal;
22341 expr_ty elem;
22342 while (
22343 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22344 &&
22345 (elem = pattern_rule(p)) // pattern
22346 )
22347 {
22348 _res = elem;
22349 if (_res == NULL && PyErr_Occurred()) {
22350 p->error_indicator = 1;
22351 PyMem_Free(_children);
22352 D(p->level--);
22353 return NULL;
22354 }
22355 if (_n == _children_capacity) {
22356 _children_capacity *= 2;
22357 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22358 if (!_new_children) {
22359 p->error_indicator = 1;
22360 PyErr_NoMemory();
22361 D(p->level--);
22362 return NULL;
22363 }
22364 _children = _new_children;
22365 }
22366 _children[_n++] = _res;
22367 _mark = p->mark;
22368 }
22369 p->mark = _mark;
22370 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
22371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
22372 }
22373 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22374 if (!_seq) {
22375 PyMem_Free(_children);
22376 p->error_indicator = 1;
22377 PyErr_NoMemory();
22378 D(p->level--);
22379 return NULL;
22380 }
22381 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22382 PyMem_Free(_children);
22383 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
22384 D(p->level--);
22385 return _seq;
22386}
22387
22388// _gather_62: pattern _loop0_63
22389static asdl_seq *
22390_gather_62_rule(Parser *p)
22391{
22392 D(p->level++);
22393 if (p->error_indicator) {
22394 D(p->level--);
22395 return NULL;
22396 }
22397 asdl_seq * _res = NULL;
22398 int _mark = p->mark;
22399 { // pattern _loop0_63
22400 if (p->error_indicator) {
22401 D(p->level--);
22402 return NULL;
22403 }
22404 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22405 expr_ty elem;
22406 asdl_seq * seq;
22407 if (
22408 (elem = pattern_rule(p)) // pattern
22409 &&
22410 (seq = _loop0_63_rule(p)) // _loop0_63
22411 )
22412 {
22413 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22414 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22415 goto done;
22416 }
22417 p->mark = _mark;
22418 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
22419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
22420 }
22421 _res = NULL;
22422 done:
22423 D(p->level--);
22424 return _res;
22425}
22426
22427// _loop0_65: ',' keyword_pattern
22428static asdl_seq *
22429_loop0_65_rule(Parser *p)
22430{
22431 D(p->level++);
22432 if (p->error_indicator) {
22433 D(p->level--);
22434 return NULL;
22435 }
22436 void *_res = NULL;
22437 int _mark = p->mark;
22438 int _start_mark = p->mark;
22439 void **_children = PyMem_Malloc(sizeof(void *));
22440 if (!_children) {
22441 p->error_indicator = 1;
22442 PyErr_NoMemory();
22443 D(p->level--);
22444 return NULL;
22445 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022446 Py_ssize_t _children_capacity = 1;
22447 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080022448 { // ',' keyword_pattern
22449 if (p->error_indicator) {
22450 D(p->level--);
22451 return NULL;
22452 }
22453 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
22454 Token * _literal;
22455 keyword_ty elem;
22456 while (
22457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22458 &&
22459 (elem = keyword_pattern_rule(p)) // keyword_pattern
22460 )
22461 {
22462 _res = elem;
22463 if (_res == NULL && PyErr_Occurred()) {
22464 p->error_indicator = 1;
22465 PyMem_Free(_children);
22466 D(p->level--);
22467 return NULL;
22468 }
22469 if (_n == _children_capacity) {
22470 _children_capacity *= 2;
22471 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22472 if (!_new_children) {
22473 p->error_indicator = 1;
22474 PyErr_NoMemory();
22475 D(p->level--);
22476 return NULL;
22477 }
22478 _children = _new_children;
22479 }
22480 _children[_n++] = _res;
22481 _mark = p->mark;
22482 }
22483 p->mark = _mark;
22484 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
22485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
22486 }
22487 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22488 if (!_seq) {
22489 PyMem_Free(_children);
22490 p->error_indicator = 1;
22491 PyErr_NoMemory();
22492 D(p->level--);
22493 return NULL;
22494 }
22495 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22496 PyMem_Free(_children);
22497 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
22498 D(p->level--);
22499 return _seq;
22500}
22501
22502// _gather_64: keyword_pattern _loop0_65
22503static asdl_seq *
22504_gather_64_rule(Parser *p)
22505{
22506 D(p->level++);
22507 if (p->error_indicator) {
22508 D(p->level--);
22509 return NULL;
22510 }
22511 asdl_seq * _res = NULL;
22512 int _mark = p->mark;
22513 { // keyword_pattern _loop0_65
22514 if (p->error_indicator) {
22515 D(p->level--);
22516 return NULL;
22517 }
22518 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22519 keyword_ty elem;
22520 asdl_seq * seq;
22521 if (
22522 (elem = keyword_pattern_rule(p)) // keyword_pattern
22523 &&
22524 (seq = _loop0_65_rule(p)) // _loop0_65
22525 )
22526 {
22527 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22528 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22529 goto done;
22530 }
22531 p->mark = _mark;
22532 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
22533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
22534 }
22535 _res = NULL;
22536 done:
22537 D(p->level--);
22538 return _res;
22539}
22540
22541// _tmp_66: 'from' expression
22542static void *
22543_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022544{
22545 D(p->level++);
22546 if (p->error_indicator) {
22547 D(p->level--);
22548 return NULL;
22549 }
22550 void * _res = NULL;
22551 int _mark = p->mark;
22552 { // 'from' expression
22553 if (p->error_indicator) {
22554 D(p->level--);
22555 return NULL;
22556 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022557 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022558 Token * _keyword;
22559 expr_ty z;
22560 if (
22561 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22562 &&
22563 (z = expression_rule(p)) // expression
22564 )
22565 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022566 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 +010022567 _res = z;
22568 if (_res == NULL && PyErr_Occurred()) {
22569 p->error_indicator = 1;
22570 D(p->level--);
22571 return NULL;
22572 }
22573 goto done;
22574 }
22575 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022576 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022578 }
22579 _res = NULL;
22580 done:
22581 D(p->level--);
22582 return _res;
22583}
22584
Brandt Bucher145bf262021-02-26 14:51:55 -080022585// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022586static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022587_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022588{
22589 D(p->level++);
22590 if (p->error_indicator) {
22591 D(p->level--);
22592 return NULL;
22593 }
22594 void * _res = NULL;
22595 int _mark = p->mark;
22596 { // '->' expression
22597 if (p->error_indicator) {
22598 D(p->level--);
22599 return NULL;
22600 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022601 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022602 Token * _literal;
22603 expr_ty z;
22604 if (
22605 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22606 &&
22607 (z = expression_rule(p)) // expression
22608 )
22609 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022610 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022611 _res = z;
22612 if (_res == NULL && PyErr_Occurred()) {
22613 p->error_indicator = 1;
22614 D(p->level--);
22615 return NULL;
22616 }
22617 goto done;
22618 }
22619 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022620 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22622 }
22623 _res = NULL;
22624 done:
22625 D(p->level--);
22626 return _res;
22627}
22628
Brandt Bucher145bf262021-02-26 14:51:55 -080022629// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022630static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022631_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022632{
22633 D(p->level++);
22634 if (p->error_indicator) {
22635 D(p->level--);
22636 return NULL;
22637 }
22638 void * _res = NULL;
22639 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022640 { // '->' expression
22641 if (p->error_indicator) {
22642 D(p->level--);
22643 return NULL;
22644 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022645 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022646 Token * _literal;
22647 expr_ty z;
22648 if (
22649 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22650 &&
22651 (z = expression_rule(p)) // expression
22652 )
22653 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022654 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022655 _res = z;
22656 if (_res == NULL && PyErr_Occurred()) {
22657 p->error_indicator = 1;
22658 D(p->level--);
22659 return NULL;
22660 }
22661 goto done;
22662 }
22663 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022664 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22666 }
22667 _res = NULL;
22668 done:
22669 D(p->level--);
22670 return _res;
22671}
22672
Brandt Bucher145bf262021-02-26 14:51:55 -080022673// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022674static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022675_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022676{
22677 D(p->level++);
22678 if (p->error_indicator) {
22679 D(p->level--);
22680 return NULL;
22681 }
22682 void * _res = NULL;
22683 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022684 { // NEWLINE INDENT
22685 if (p->error_indicator) {
22686 D(p->level--);
22687 return NULL;
22688 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022689 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022690 Token * indent_var;
22691 Token * newline_var;
22692 if (
22693 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22694 &&
22695 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
22696 )
22697 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022698 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 +010022699 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
22700 goto done;
22701 }
22702 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022703 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
22705 }
22706 _res = NULL;
22707 done:
22708 D(p->level--);
22709 return _res;
22710}
22711
Brandt Bucher145bf262021-02-26 14:51:55 -080022712// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022713static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022714_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022715{
22716 D(p->level++);
22717 if (p->error_indicator) {
22718 D(p->level--);
22719 return NULL;
22720 }
22721 void *_res = NULL;
22722 int _mark = p->mark;
22723 int _start_mark = p->mark;
22724 void **_children = PyMem_Malloc(sizeof(void *));
22725 if (!_children) {
22726 p->error_indicator = 1;
22727 PyErr_NoMemory();
22728 D(p->level--);
22729 return NULL;
22730 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022731 Py_ssize_t _children_capacity = 1;
22732 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022733 { // param_no_default
22734 if (p->error_indicator) {
22735 D(p->level--);
22736 return NULL;
22737 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022738 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 +010022739 arg_ty param_no_default_var;
22740 while (
22741 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22742 )
22743 {
22744 _res = param_no_default_var;
22745 if (_n == _children_capacity) {
22746 _children_capacity *= 2;
22747 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22748 if (!_new_children) {
22749 p->error_indicator = 1;
22750 PyErr_NoMemory();
22751 D(p->level--);
22752 return NULL;
22753 }
22754 _children = _new_children;
22755 }
22756 _children[_n++] = _res;
22757 _mark = p->mark;
22758 }
22759 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022760 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022764 if (!_seq) {
22765 PyMem_Free(_children);
22766 p->error_indicator = 1;
22767 PyErr_NoMemory();
22768 D(p->level--);
22769 return NULL;
22770 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022772 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022773 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022774 D(p->level--);
22775 return _seq;
22776}
22777
Brandt Bucher145bf262021-02-26 14:51:55 -080022778// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022779static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022780_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022781{
22782 D(p->level++);
22783 if (p->error_indicator) {
22784 D(p->level--);
22785 return NULL;
22786 }
22787 void *_res = NULL;
22788 int _mark = p->mark;
22789 int _start_mark = p->mark;
22790 void **_children = PyMem_Malloc(sizeof(void *));
22791 if (!_children) {
22792 p->error_indicator = 1;
22793 PyErr_NoMemory();
22794 D(p->level--);
22795 return NULL;
22796 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022797 Py_ssize_t _children_capacity = 1;
22798 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 { // param_with_default
22800 if (p->error_indicator) {
22801 D(p->level--);
22802 return NULL;
22803 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022804 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 +010022805 NameDefaultPair* param_with_default_var;
22806 while (
22807 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22808 )
22809 {
22810 _res = param_with_default_var;
22811 if (_n == _children_capacity) {
22812 _children_capacity *= 2;
22813 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22814 if (!_new_children) {
22815 p->error_indicator = 1;
22816 PyErr_NoMemory();
22817 D(p->level--);
22818 return NULL;
22819 }
22820 _children = _new_children;
22821 }
22822 _children[_n++] = _res;
22823 _mark = p->mark;
22824 }
22825 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022826 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22828 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022829 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022830 if (!_seq) {
22831 PyMem_Free(_children);
22832 p->error_indicator = 1;
22833 PyErr_NoMemory();
22834 D(p->level--);
22835 return NULL;
22836 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022837 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022838 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022839 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022840 D(p->level--);
22841 return _seq;
22842}
22843
Brandt Bucher145bf262021-02-26 14:51:55 -080022844// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022845static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022846_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022847{
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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022865 { // param_with_default
22866 if (p->error_indicator) {
22867 D(p->level--);
22868 return NULL;
22869 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022870 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 +030022871 NameDefaultPair* param_with_default_var;
22872 while (
22873 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22874 )
22875 {
22876 _res = param_with_default_var;
22877 if (_n == _children_capacity) {
22878 _children_capacity *= 2;
22879 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22880 if (!_new_children) {
22881 p->error_indicator = 1;
22882 PyErr_NoMemory();
22883 D(p->level--);
22884 return NULL;
22885 }
22886 _children = _new_children;
22887 }
22888 _children[_n++] = _res;
22889 _mark = p->mark;
22890 }
22891 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022892 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22894 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022895 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022896 if (!_seq) {
22897 PyMem_Free(_children);
22898 p->error_indicator = 1;
22899 PyErr_NoMemory();
22900 D(p->level--);
22901 return NULL;
22902 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022903 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022904 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022905 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022906 D(p->level--);
22907 return _seq;
22908}
22909
Brandt Bucher145bf262021-02-26 14:51:55 -080022910// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022911static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022912_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022913{
22914 D(p->level++);
22915 if (p->error_indicator) {
22916 D(p->level--);
22917 return NULL;
22918 }
22919 void *_res = NULL;
22920 int _mark = p->mark;
22921 int _start_mark = p->mark;
22922 void **_children = PyMem_Malloc(sizeof(void *));
22923 if (!_children) {
22924 p->error_indicator = 1;
22925 PyErr_NoMemory();
22926 D(p->level--);
22927 return NULL;
22928 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022929 Py_ssize_t _children_capacity = 1;
22930 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022931 { // param_no_default
22932 if (p->error_indicator) {
22933 D(p->level--);
22934 return NULL;
22935 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022936 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 +010022937 arg_ty param_no_default_var;
22938 while (
22939 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22940 )
22941 {
22942 _res = param_no_default_var;
22943 if (_n == _children_capacity) {
22944 _children_capacity *= 2;
22945 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22946 if (!_new_children) {
22947 p->error_indicator = 1;
22948 PyErr_NoMemory();
22949 D(p->level--);
22950 return NULL;
22951 }
22952 _children = _new_children;
22953 }
22954 _children[_n++] = _res;
22955 _mark = p->mark;
22956 }
22957 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022958 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
22960 }
22961 if (_n == 0 || p->error_indicator) {
22962 PyMem_Free(_children);
22963 D(p->level--);
22964 return NULL;
22965 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022966 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022967 if (!_seq) {
22968 PyMem_Free(_children);
22969 p->error_indicator = 1;
22970 PyErr_NoMemory();
22971 D(p->level--);
22972 return NULL;
22973 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022974 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022975 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022976 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022977 D(p->level--);
22978 return _seq;
22979}
22980
Brandt Bucher145bf262021-02-26 14:51:55 -080022981// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022982static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022983_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022984{
22985 D(p->level++);
22986 if (p->error_indicator) {
22987 D(p->level--);
22988 return NULL;
22989 }
22990 void *_res = NULL;
22991 int _mark = p->mark;
22992 int _start_mark = p->mark;
22993 void **_children = PyMem_Malloc(sizeof(void *));
22994 if (!_children) {
22995 p->error_indicator = 1;
22996 PyErr_NoMemory();
22997 D(p->level--);
22998 return NULL;
22999 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023000 Py_ssize_t _children_capacity = 1;
23001 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023002 { // param_with_default
23003 if (p->error_indicator) {
23004 D(p->level--);
23005 return NULL;
23006 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023007 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 +010023008 NameDefaultPair* param_with_default_var;
23009 while (
23010 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23011 )
23012 {
23013 _res = param_with_default_var;
23014 if (_n == _children_capacity) {
23015 _children_capacity *= 2;
23016 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23017 if (!_new_children) {
23018 p->error_indicator = 1;
23019 PyErr_NoMemory();
23020 D(p->level--);
23021 return NULL;
23022 }
23023 _children = _new_children;
23024 }
23025 _children[_n++] = _res;
23026 _mark = p->mark;
23027 }
23028 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023029 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023032 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023033 if (!_seq) {
23034 PyMem_Free(_children);
23035 p->error_indicator = 1;
23036 PyErr_NoMemory();
23037 D(p->level--);
23038 return NULL;
23039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023040 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023041 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023042 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023043 D(p->level--);
23044 return _seq;
23045}
23046
Brandt Bucher145bf262021-02-26 14:51:55 -080023047// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023048static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023049_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023050{
23051 D(p->level++);
23052 if (p->error_indicator) {
23053 D(p->level--);
23054 return NULL;
23055 }
23056 void *_res = NULL;
23057 int _mark = p->mark;
23058 int _start_mark = p->mark;
23059 void **_children = PyMem_Malloc(sizeof(void *));
23060 if (!_children) {
23061 p->error_indicator = 1;
23062 PyErr_NoMemory();
23063 D(p->level--);
23064 return NULL;
23065 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023066 Py_ssize_t _children_capacity = 1;
23067 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023068 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023069 if (p->error_indicator) {
23070 D(p->level--);
23071 return NULL;
23072 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023073 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 +030023074 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023075 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023076 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023077 )
23078 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023079 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080 if (_n == _children_capacity) {
23081 _children_capacity *= 2;
23082 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23083 if (!_new_children) {
23084 p->error_indicator = 1;
23085 PyErr_NoMemory();
23086 D(p->level--);
23087 return NULL;
23088 }
23089 _children = _new_children;
23090 }
23091 _children[_n++] = _res;
23092 _mark = p->mark;
23093 }
23094 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023095 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023097 }
23098 if (_n == 0 || p->error_indicator) {
23099 PyMem_Free(_children);
23100 D(p->level--);
23101 return NULL;
23102 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023103 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023104 if (!_seq) {
23105 PyMem_Free(_children);
23106 p->error_indicator = 1;
23107 PyErr_NoMemory();
23108 D(p->level--);
23109 return NULL;
23110 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023111 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023112 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023113 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023114 D(p->level--);
23115 return _seq;
23116}
23117
Brandt Bucher145bf262021-02-26 14:51:55 -080023118// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023119static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023120_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023121{
23122 D(p->level++);
23123 if (p->error_indicator) {
23124 D(p->level--);
23125 return NULL;
23126 }
23127 void *_res = NULL;
23128 int _mark = p->mark;
23129 int _start_mark = p->mark;
23130 void **_children = PyMem_Malloc(sizeof(void *));
23131 if (!_children) {
23132 p->error_indicator = 1;
23133 PyErr_NoMemory();
23134 D(p->level--);
23135 return NULL;
23136 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023137 Py_ssize_t _children_capacity = 1;
23138 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023139 { // param_no_default
23140 if (p->error_indicator) {
23141 D(p->level--);
23142 return NULL;
23143 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023144 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 +010023145 arg_ty param_no_default_var;
23146 while (
23147 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23148 )
23149 {
23150 _res = param_no_default_var;
23151 if (_n == _children_capacity) {
23152 _children_capacity *= 2;
23153 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23154 if (!_new_children) {
23155 p->error_indicator = 1;
23156 PyErr_NoMemory();
23157 D(p->level--);
23158 return NULL;
23159 }
23160 _children = _new_children;
23161 }
23162 _children[_n++] = _res;
23163 _mark = p->mark;
23164 }
23165 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023166 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23168 }
23169 if (_n == 0 || p->error_indicator) {
23170 PyMem_Free(_children);
23171 D(p->level--);
23172 return NULL;
23173 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023174 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023175 if (!_seq) {
23176 PyMem_Free(_children);
23177 p->error_indicator = 1;
23178 PyErr_NoMemory();
23179 D(p->level--);
23180 return NULL;
23181 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023182 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023184 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023185 D(p->level--);
23186 return _seq;
23187}
23188
Brandt Bucher145bf262021-02-26 14:51:55 -080023189// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023190static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023191_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023192{
23193 D(p->level++);
23194 if (p->error_indicator) {
23195 D(p->level--);
23196 return NULL;
23197 }
23198 void *_res = NULL;
23199 int _mark = p->mark;
23200 int _start_mark = p->mark;
23201 void **_children = PyMem_Malloc(sizeof(void *));
23202 if (!_children) {
23203 p->error_indicator = 1;
23204 PyErr_NoMemory();
23205 D(p->level--);
23206 return NULL;
23207 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023208 Py_ssize_t _children_capacity = 1;
23209 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023210 { // param_no_default
23211 if (p->error_indicator) {
23212 D(p->level--);
23213 return NULL;
23214 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023215 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 +010023216 arg_ty param_no_default_var;
23217 while (
23218 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23219 )
23220 {
23221 _res = param_no_default_var;
23222 if (_n == _children_capacity) {
23223 _children_capacity *= 2;
23224 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23225 if (!_new_children) {
23226 p->error_indicator = 1;
23227 PyErr_NoMemory();
23228 D(p->level--);
23229 return NULL;
23230 }
23231 _children = _new_children;
23232 }
23233 _children[_n++] = _res;
23234 _mark = p->mark;
23235 }
23236 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023237 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23239 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240 if (_n == 0 || p->error_indicator) {
23241 PyMem_Free(_children);
23242 D(p->level--);
23243 return NULL;
23244 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023245 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023246 if (!_seq) {
23247 PyMem_Free(_children);
23248 p->error_indicator = 1;
23249 PyErr_NoMemory();
23250 D(p->level--);
23251 return NULL;
23252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023253 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023254 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023255 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023256 D(p->level--);
23257 return _seq;
23258}
23259
Brandt Bucher145bf262021-02-26 14:51:55 -080023260// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023261static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023262_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023263{
23264 D(p->level++);
23265 if (p->error_indicator) {
23266 D(p->level--);
23267 return NULL;
23268 }
23269 void *_res = NULL;
23270 int _mark = p->mark;
23271 int _start_mark = p->mark;
23272 void **_children = PyMem_Malloc(sizeof(void *));
23273 if (!_children) {
23274 p->error_indicator = 1;
23275 PyErr_NoMemory();
23276 D(p->level--);
23277 return NULL;
23278 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023279 Py_ssize_t _children_capacity = 1;
23280 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023281 { // param_no_default
23282 if (p->error_indicator) {
23283 D(p->level--);
23284 return NULL;
23285 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023286 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 +010023287 arg_ty param_no_default_var;
23288 while (
23289 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23290 )
23291 {
23292 _res = param_no_default_var;
23293 if (_n == _children_capacity) {
23294 _children_capacity *= 2;
23295 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23296 if (!_new_children) {
23297 p->error_indicator = 1;
23298 PyErr_NoMemory();
23299 D(p->level--);
23300 return NULL;
23301 }
23302 _children = _new_children;
23303 }
23304 _children[_n++] = _res;
23305 _mark = p->mark;
23306 }
23307 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023308 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023311 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312 if (!_seq) {
23313 PyMem_Free(_children);
23314 p->error_indicator = 1;
23315 PyErr_NoMemory();
23316 D(p->level--);
23317 return NULL;
23318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023319 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023320 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023321 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023322 D(p->level--);
23323 return _seq;
23324}
23325
Brandt Bucher145bf262021-02-26 14:51:55 -080023326// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023327static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023328_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329{
23330 D(p->level++);
23331 if (p->error_indicator) {
23332 D(p->level--);
23333 return NULL;
23334 }
23335 void *_res = NULL;
23336 int _mark = p->mark;
23337 int _start_mark = p->mark;
23338 void **_children = PyMem_Malloc(sizeof(void *));
23339 if (!_children) {
23340 p->error_indicator = 1;
23341 PyErr_NoMemory();
23342 D(p->level--);
23343 return NULL;
23344 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023345 Py_ssize_t _children_capacity = 1;
23346 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023347 { // param_with_default
23348 if (p->error_indicator) {
23349 D(p->level--);
23350 return NULL;
23351 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023352 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 +010023353 NameDefaultPair* param_with_default_var;
23354 while (
23355 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23356 )
23357 {
23358 _res = param_with_default_var;
23359 if (_n == _children_capacity) {
23360 _children_capacity *= 2;
23361 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23362 if (!_new_children) {
23363 p->error_indicator = 1;
23364 PyErr_NoMemory();
23365 D(p->level--);
23366 return NULL;
23367 }
23368 _children = _new_children;
23369 }
23370 _children[_n++] = _res;
23371 _mark = p->mark;
23372 }
23373 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023374 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23376 }
23377 if (_n == 0 || p->error_indicator) {
23378 PyMem_Free(_children);
23379 D(p->level--);
23380 return NULL;
23381 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023382 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023383 if (!_seq) {
23384 PyMem_Free(_children);
23385 p->error_indicator = 1;
23386 PyErr_NoMemory();
23387 D(p->level--);
23388 return NULL;
23389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023390 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023391 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023392 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023393 D(p->level--);
23394 return _seq;
23395}
23396
Brandt Bucher145bf262021-02-26 14:51:55 -080023397// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023398static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023399_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023400{
23401 D(p->level++);
23402 if (p->error_indicator) {
23403 D(p->level--);
23404 return NULL;
23405 }
23406 void *_res = NULL;
23407 int _mark = p->mark;
23408 int _start_mark = p->mark;
23409 void **_children = PyMem_Malloc(sizeof(void *));
23410 if (!_children) {
23411 p->error_indicator = 1;
23412 PyErr_NoMemory();
23413 D(p->level--);
23414 return NULL;
23415 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023416 Py_ssize_t _children_capacity = 1;
23417 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023418 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023419 if (p->error_indicator) {
23420 D(p->level--);
23421 return NULL;
23422 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023423 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 +030023424 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023425 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023426 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023427 )
23428 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023429 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023430 if (_n == _children_capacity) {
23431 _children_capacity *= 2;
23432 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23433 if (!_new_children) {
23434 p->error_indicator = 1;
23435 PyErr_NoMemory();
23436 D(p->level--);
23437 return NULL;
23438 }
23439 _children = _new_children;
23440 }
23441 _children[_n++] = _res;
23442 _mark = p->mark;
23443 }
23444 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023445 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023447 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023448 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023449 if (!_seq) {
23450 PyMem_Free(_children);
23451 p->error_indicator = 1;
23452 PyErr_NoMemory();
23453 D(p->level--);
23454 return NULL;
23455 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023456 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023457 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023458 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023459 D(p->level--);
23460 return _seq;
23461}
23462
Brandt Bucher145bf262021-02-26 14:51:55 -080023463// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023464static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023465_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466{
23467 D(p->level++);
23468 if (p->error_indicator) {
23469 D(p->level--);
23470 return NULL;
23471 }
23472 void *_res = NULL;
23473 int _mark = p->mark;
23474 int _start_mark = p->mark;
23475 void **_children = PyMem_Malloc(sizeof(void *));
23476 if (!_children) {
23477 p->error_indicator = 1;
23478 PyErr_NoMemory();
23479 D(p->level--);
23480 return NULL;
23481 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023482 Py_ssize_t _children_capacity = 1;
23483 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023484 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023485 if (p->error_indicator) {
23486 D(p->level--);
23487 return NULL;
23488 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023489 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 +030023490 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023491 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023492 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023493 )
23494 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023495 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023496 if (_n == _children_capacity) {
23497 _children_capacity *= 2;
23498 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23499 if (!_new_children) {
23500 p->error_indicator = 1;
23501 PyErr_NoMemory();
23502 D(p->level--);
23503 return NULL;
23504 }
23505 _children = _new_children;
23506 }
23507 _children[_n++] = _res;
23508 _mark = p->mark;
23509 }
23510 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023511 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023513 }
23514 if (_n == 0 || p->error_indicator) {
23515 PyMem_Free(_children);
23516 D(p->level--);
23517 return NULL;
23518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023519 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023520 if (!_seq) {
23521 PyMem_Free(_children);
23522 p->error_indicator = 1;
23523 PyErr_NoMemory();
23524 D(p->level--);
23525 return NULL;
23526 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023527 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023528 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023529 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023530 D(p->level--);
23531 return _seq;
23532}
23533
Brandt Bucher145bf262021-02-26 14:51:55 -080023534// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023535static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023536_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023537{
23538 D(p->level++);
23539 if (p->error_indicator) {
23540 D(p->level--);
23541 return NULL;
23542 }
23543 void *_res = NULL;
23544 int _mark = p->mark;
23545 int _start_mark = p->mark;
23546 void **_children = PyMem_Malloc(sizeof(void *));
23547 if (!_children) {
23548 p->error_indicator = 1;
23549 PyErr_NoMemory();
23550 D(p->level--);
23551 return NULL;
23552 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023553 Py_ssize_t _children_capacity = 1;
23554 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023555 { // param_maybe_default
23556 if (p->error_indicator) {
23557 D(p->level--);
23558 return NULL;
23559 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023560 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 +030023561 NameDefaultPair* param_maybe_default_var;
23562 while (
23563 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23564 )
23565 {
23566 _res = param_maybe_default_var;
23567 if (_n == _children_capacity) {
23568 _children_capacity *= 2;
23569 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23570 if (!_new_children) {
23571 p->error_indicator = 1;
23572 PyErr_NoMemory();
23573 D(p->level--);
23574 return NULL;
23575 }
23576 _children = _new_children;
23577 }
23578 _children[_n++] = _res;
23579 _mark = p->mark;
23580 }
23581 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023582 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23584 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023585 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023586 if (!_seq) {
23587 PyMem_Free(_children);
23588 p->error_indicator = 1;
23589 PyErr_NoMemory();
23590 D(p->level--);
23591 return NULL;
23592 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023593 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023594 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023595 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023596 D(p->level--);
23597 return _seq;
23598}
23599
Brandt Bucher145bf262021-02-26 14:51:55 -080023600// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023601static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023602_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023603{
23604 D(p->level++);
23605 if (p->error_indicator) {
23606 D(p->level--);
23607 return NULL;
23608 }
23609 void *_res = NULL;
23610 int _mark = p->mark;
23611 int _start_mark = p->mark;
23612 void **_children = PyMem_Malloc(sizeof(void *));
23613 if (!_children) {
23614 p->error_indicator = 1;
23615 PyErr_NoMemory();
23616 D(p->level--);
23617 return NULL;
23618 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023619 Py_ssize_t _children_capacity = 1;
23620 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023621 { // param_maybe_default
23622 if (p->error_indicator) {
23623 D(p->level--);
23624 return NULL;
23625 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023626 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 +030023627 NameDefaultPair* param_maybe_default_var;
23628 while (
23629 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23630 )
23631 {
23632 _res = param_maybe_default_var;
23633 if (_n == _children_capacity) {
23634 _children_capacity *= 2;
23635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23636 if (!_new_children) {
23637 p->error_indicator = 1;
23638 PyErr_NoMemory();
23639 D(p->level--);
23640 return NULL;
23641 }
23642 _children = _new_children;
23643 }
23644 _children[_n++] = _res;
23645 _mark = p->mark;
23646 }
23647 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023648 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23650 }
23651 if (_n == 0 || p->error_indicator) {
23652 PyMem_Free(_children);
23653 D(p->level--);
23654 return NULL;
23655 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023656 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023657 if (!_seq) {
23658 PyMem_Free(_children);
23659 p->error_indicator = 1;
23660 PyErr_NoMemory();
23661 D(p->level--);
23662 return NULL;
23663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023664 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023665 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023666 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023667 D(p->level--);
23668 return _seq;
23669}
23670
Brandt Bucher145bf262021-02-26 14:51:55 -080023671// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023672static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023673_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023674{
23675 D(p->level++);
23676 if (p->error_indicator) {
23677 D(p->level--);
23678 return NULL;
23679 }
23680 void *_res = NULL;
23681 int _mark = p->mark;
23682 int _start_mark = p->mark;
23683 void **_children = PyMem_Malloc(sizeof(void *));
23684 if (!_children) {
23685 p->error_indicator = 1;
23686 PyErr_NoMemory();
23687 D(p->level--);
23688 return NULL;
23689 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023690 Py_ssize_t _children_capacity = 1;
23691 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023692 { // ('@' named_expression NEWLINE)
23693 if (p->error_indicator) {
23694 D(p->level--);
23695 return NULL;
23696 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023697 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
23698 void *_tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023699 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023700 (_tmp_165_var = _tmp_165_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023701 )
23702 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023703 _res = _tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023704 if (_n == _children_capacity) {
23705 _children_capacity *= 2;
23706 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23707 if (!_new_children) {
23708 p->error_indicator = 1;
23709 PyErr_NoMemory();
23710 D(p->level--);
23711 return NULL;
23712 }
23713 _children = _new_children;
23714 }
23715 _children[_n++] = _res;
23716 _mark = p->mark;
23717 }
23718 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023719 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
23721 }
23722 if (_n == 0 || p->error_indicator) {
23723 PyMem_Free(_children);
23724 D(p->level--);
23725 return NULL;
23726 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023727 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023728 if (!_seq) {
23729 PyMem_Free(_children);
23730 p->error_indicator = 1;
23731 PyErr_NoMemory();
23732 D(p->level--);
23733 return NULL;
23734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023735 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023737 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023738 D(p->level--);
23739 return _seq;
23740}
23741
Brandt Bucher145bf262021-02-26 14:51:55 -080023742// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023743static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023744_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023745{
23746 D(p->level++);
23747 if (p->error_indicator) {
23748 D(p->level--);
23749 return NULL;
23750 }
23751 void * _res = NULL;
23752 int _mark = p->mark;
23753 { // '(' arguments? ')'
23754 if (p->error_indicator) {
23755 D(p->level--);
23756 return NULL;
23757 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023758 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023759 Token * _literal;
23760 Token * _literal_1;
23761 void *z;
23762 if (
23763 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23764 &&
23765 (z = arguments_rule(p), 1) // arguments?
23766 &&
23767 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
23768 )
23769 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023770 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023771 _res = z;
23772 if (_res == NULL && PyErr_Occurred()) {
23773 p->error_indicator = 1;
23774 D(p->level--);
23775 return NULL;
23776 }
23777 goto done;
23778 }
23779 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023780 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
23782 }
23783 _res = NULL;
23784 done:
23785 D(p->level--);
23786 return _res;
23787}
23788
Brandt Bucher145bf262021-02-26 14:51:55 -080023789// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023790static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023791_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023792{
23793 D(p->level++);
23794 if (p->error_indicator) {
23795 D(p->level--);
23796 return NULL;
23797 }
23798 void *_res = NULL;
23799 int _mark = p->mark;
23800 int _start_mark = p->mark;
23801 void **_children = PyMem_Malloc(sizeof(void *));
23802 if (!_children) {
23803 p->error_indicator = 1;
23804 PyErr_NoMemory();
23805 D(p->level--);
23806 return NULL;
23807 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023808 Py_ssize_t _children_capacity = 1;
23809 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023810 { // (',' star_expression)
23811 if (p->error_indicator) {
23812 D(p->level--);
23813 return NULL;
23814 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023815 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
23816 void *_tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023817 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023818 (_tmp_166_var = _tmp_166_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023819 )
23820 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023821 _res = _tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023822 if (_n == _children_capacity) {
23823 _children_capacity *= 2;
23824 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23825 if (!_new_children) {
23826 p->error_indicator = 1;
23827 PyErr_NoMemory();
23828 D(p->level--);
23829 return NULL;
23830 }
23831 _children = _new_children;
23832 }
23833 _children[_n++] = _res;
23834 _mark = p->mark;
23835 }
23836 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023837 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
23839 }
23840 if (_n == 0 || p->error_indicator) {
23841 PyMem_Free(_children);
23842 D(p->level--);
23843 return NULL;
23844 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023845 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023846 if (!_seq) {
23847 PyMem_Free(_children);
23848 p->error_indicator = 1;
23849 PyErr_NoMemory();
23850 D(p->level--);
23851 return NULL;
23852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023853 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023854 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023855 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023856 D(p->level--);
23857 return _seq;
23858}
23859
Brandt Bucher145bf262021-02-26 14:51:55 -080023860// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023862_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023863{
23864 D(p->level++);
23865 if (p->error_indicator) {
23866 D(p->level--);
23867 return NULL;
23868 }
23869 void *_res = NULL;
23870 int _mark = p->mark;
23871 int _start_mark = p->mark;
23872 void **_children = PyMem_Malloc(sizeof(void *));
23873 if (!_children) {
23874 p->error_indicator = 1;
23875 PyErr_NoMemory();
23876 D(p->level--);
23877 return NULL;
23878 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023879 Py_ssize_t _children_capacity = 1;
23880 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023881 { // ',' star_named_expression
23882 if (p->error_indicator) {
23883 D(p->level--);
23884 return NULL;
23885 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023886 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 +010023887 Token * _literal;
23888 expr_ty elem;
23889 while (
23890 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23891 &&
23892 (elem = star_named_expression_rule(p)) // star_named_expression
23893 )
23894 {
23895 _res = elem;
23896 if (_res == NULL && PyErr_Occurred()) {
23897 p->error_indicator = 1;
23898 PyMem_Free(_children);
23899 D(p->level--);
23900 return NULL;
23901 }
23902 if (_n == _children_capacity) {
23903 _children_capacity *= 2;
23904 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23905 if (!_new_children) {
23906 p->error_indicator = 1;
23907 PyErr_NoMemory();
23908 D(p->level--);
23909 return NULL;
23910 }
23911 _children = _new_children;
23912 }
23913 _children[_n++] = _res;
23914 _mark = p->mark;
23915 }
23916 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023917 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
23919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023921 if (!_seq) {
23922 PyMem_Free(_children);
23923 p->error_indicator = 1;
23924 PyErr_NoMemory();
23925 D(p->level--);
23926 return NULL;
23927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023929 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023930 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023931 D(p->level--);
23932 return _seq;
23933}
23934
Brandt Bucher145bf262021-02-26 14:51:55 -080023935// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023936static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023937_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023938{
23939 D(p->level++);
23940 if (p->error_indicator) {
23941 D(p->level--);
23942 return NULL;
23943 }
23944 asdl_seq * _res = NULL;
23945 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023946 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023947 if (p->error_indicator) {
23948 D(p->level--);
23949 return NULL;
23950 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023951 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 +010023952 expr_ty elem;
23953 asdl_seq * seq;
23954 if (
23955 (elem = star_named_expression_rule(p)) // star_named_expression
23956 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080023957 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023958 )
23959 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023960 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 +010023961 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23962 goto done;
23963 }
23964 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023965 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
23966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023967 }
23968 _res = NULL;
23969 done:
23970 D(p->level--);
23971 return _res;
23972}
23973
Brandt Bucher145bf262021-02-26 14:51:55 -080023974// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023975static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023976_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977{
23978 D(p->level++);
23979 if (p->error_indicator) {
23980 D(p->level--);
23981 return NULL;
23982 }
23983 void *_res = NULL;
23984 int _mark = p->mark;
23985 int _start_mark = p->mark;
23986 void **_children = PyMem_Malloc(sizeof(void *));
23987 if (!_children) {
23988 p->error_indicator = 1;
23989 PyErr_NoMemory();
23990 D(p->level--);
23991 return NULL;
23992 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023993 Py_ssize_t _children_capacity = 1;
23994 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023995 { // (',' expression)
23996 if (p->error_indicator) {
23997 D(p->level--);
23998 return NULL;
23999 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024000 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
24001 void *_tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024002 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080024003 (_tmp_167_var = _tmp_167_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024004 )
24005 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024006 _res = _tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024007 if (_n == _children_capacity) {
24008 _children_capacity *= 2;
24009 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24010 if (!_new_children) {
24011 p->error_indicator = 1;
24012 PyErr_NoMemory();
24013 D(p->level--);
24014 return NULL;
24015 }
24016 _children = _new_children;
24017 }
24018 _children[_n++] = _res;
24019 _mark = p->mark;
24020 }
24021 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024022 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
24024 }
24025 if (_n == 0 || p->error_indicator) {
24026 PyMem_Free(_children);
24027 D(p->level--);
24028 return NULL;
24029 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024030 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024031 if (!_seq) {
24032 PyMem_Free(_children);
24033 p->error_indicator = 1;
24034 PyErr_NoMemory();
24035 D(p->level--);
24036 return NULL;
24037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024038 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024039 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024040 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024041 D(p->level--);
24042 return _seq;
24043}
24044
Brandt Bucher145bf262021-02-26 14:51:55 -080024045// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024046static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024047_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024048{
24049 D(p->level++);
24050 if (p->error_indicator) {
24051 D(p->level--);
24052 return NULL;
24053 }
24054 void *_res = NULL;
24055 int _mark = p->mark;
24056 int _start_mark = p->mark;
24057 void **_children = PyMem_Malloc(sizeof(void *));
24058 if (!_children) {
24059 p->error_indicator = 1;
24060 PyErr_NoMemory();
24061 D(p->level--);
24062 return NULL;
24063 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024064 Py_ssize_t _children_capacity = 1;
24065 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024066 { // lambda_param_no_default
24067 if (p->error_indicator) {
24068 D(p->level--);
24069 return NULL;
24070 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024071 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 +010024072 arg_ty lambda_param_no_default_var;
24073 while (
24074 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24075 )
24076 {
24077 _res = lambda_param_no_default_var;
24078 if (_n == _children_capacity) {
24079 _children_capacity *= 2;
24080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24081 if (!_new_children) {
24082 p->error_indicator = 1;
24083 PyErr_NoMemory();
24084 D(p->level--);
24085 return NULL;
24086 }
24087 _children = _new_children;
24088 }
24089 _children[_n++] = _res;
24090 _mark = p->mark;
24091 }
24092 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024093 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024096 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024097 if (!_seq) {
24098 PyMem_Free(_children);
24099 p->error_indicator = 1;
24100 PyErr_NoMemory();
24101 D(p->level--);
24102 return NULL;
24103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024104 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024105 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024106 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024107 D(p->level--);
24108 return _seq;
24109}
24110
Brandt Bucher145bf262021-02-26 14:51:55 -080024111// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024112static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024113_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024114{
24115 D(p->level++);
24116 if (p->error_indicator) {
24117 D(p->level--);
24118 return NULL;
24119 }
24120 void *_res = NULL;
24121 int _mark = p->mark;
24122 int _start_mark = p->mark;
24123 void **_children = PyMem_Malloc(sizeof(void *));
24124 if (!_children) {
24125 p->error_indicator = 1;
24126 PyErr_NoMemory();
24127 D(p->level--);
24128 return NULL;
24129 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024130 Py_ssize_t _children_capacity = 1;
24131 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024132 { // lambda_param_with_default
24133 if (p->error_indicator) {
24134 D(p->level--);
24135 return NULL;
24136 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024137 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 +010024138 NameDefaultPair* lambda_param_with_default_var;
24139 while (
24140 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24141 )
24142 {
24143 _res = lambda_param_with_default_var;
24144 if (_n == _children_capacity) {
24145 _children_capacity *= 2;
24146 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24147 if (!_new_children) {
24148 p->error_indicator = 1;
24149 PyErr_NoMemory();
24150 D(p->level--);
24151 return NULL;
24152 }
24153 _children = _new_children;
24154 }
24155 _children[_n++] = _res;
24156 _mark = p->mark;
24157 }
24158 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024159 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24161 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024162 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024163 if (!_seq) {
24164 PyMem_Free(_children);
24165 p->error_indicator = 1;
24166 PyErr_NoMemory();
24167 D(p->level--);
24168 return NULL;
24169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024170 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024171 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024172 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024173 D(p->level--);
24174 return _seq;
24175}
24176
Brandt Bucher145bf262021-02-26 14:51:55 -080024177// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024178static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024179_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024180{
24181 D(p->level++);
24182 if (p->error_indicator) {
24183 D(p->level--);
24184 return NULL;
24185 }
24186 void *_res = NULL;
24187 int _mark = p->mark;
24188 int _start_mark = p->mark;
24189 void **_children = PyMem_Malloc(sizeof(void *));
24190 if (!_children) {
24191 p->error_indicator = 1;
24192 PyErr_NoMemory();
24193 D(p->level--);
24194 return NULL;
24195 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024196 Py_ssize_t _children_capacity = 1;
24197 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024198 { // lambda_param_with_default
24199 if (p->error_indicator) {
24200 D(p->level--);
24201 return NULL;
24202 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024203 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 +000024204 NameDefaultPair* lambda_param_with_default_var;
24205 while (
24206 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24207 )
24208 {
24209 _res = lambda_param_with_default_var;
24210 if (_n == _children_capacity) {
24211 _children_capacity *= 2;
24212 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24213 if (!_new_children) {
24214 p->error_indicator = 1;
24215 PyErr_NoMemory();
24216 D(p->level--);
24217 return NULL;
24218 }
24219 _children = _new_children;
24220 }
24221 _children[_n++] = _res;
24222 _mark = p->mark;
24223 }
24224 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024225 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24227 }
24228 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24229 if (!_seq) {
24230 PyMem_Free(_children);
24231 p->error_indicator = 1;
24232 PyErr_NoMemory();
24233 D(p->level--);
24234 return NULL;
24235 }
24236 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24237 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024238 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024239 D(p->level--);
24240 return _seq;
24241}
24242
Brandt Bucher145bf262021-02-26 14:51:55 -080024243// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024244static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024245_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024246{
24247 D(p->level++);
24248 if (p->error_indicator) {
24249 D(p->level--);
24250 return NULL;
24251 }
24252 void *_res = NULL;
24253 int _mark = p->mark;
24254 int _start_mark = p->mark;
24255 void **_children = PyMem_Malloc(sizeof(void *));
24256 if (!_children) {
24257 p->error_indicator = 1;
24258 PyErr_NoMemory();
24259 D(p->level--);
24260 return NULL;
24261 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024262 Py_ssize_t _children_capacity = 1;
24263 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024264 { // lambda_param_no_default
24265 if (p->error_indicator) {
24266 D(p->level--);
24267 return NULL;
24268 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024269 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 +000024270 arg_ty lambda_param_no_default_var;
24271 while (
24272 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24273 )
24274 {
24275 _res = lambda_param_no_default_var;
24276 if (_n == _children_capacity) {
24277 _children_capacity *= 2;
24278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24279 if (!_new_children) {
24280 p->error_indicator = 1;
24281 PyErr_NoMemory();
24282 D(p->level--);
24283 return NULL;
24284 }
24285 _children = _new_children;
24286 }
24287 _children[_n++] = _res;
24288 _mark = p->mark;
24289 }
24290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024291 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24293 }
24294 if (_n == 0 || p->error_indicator) {
24295 PyMem_Free(_children);
24296 D(p->level--);
24297 return NULL;
24298 }
24299 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24300 if (!_seq) {
24301 PyMem_Free(_children);
24302 p->error_indicator = 1;
24303 PyErr_NoMemory();
24304 D(p->level--);
24305 return NULL;
24306 }
24307 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24308 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024309 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024310 D(p->level--);
24311 return _seq;
24312}
24313
Brandt Bucher145bf262021-02-26 14:51:55 -080024314// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024315static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024316_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024317{
24318 D(p->level++);
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 void *_res = NULL;
24324 int _mark = p->mark;
24325 int _start_mark = p->mark;
24326 void **_children = PyMem_Malloc(sizeof(void *));
24327 if (!_children) {
24328 p->error_indicator = 1;
24329 PyErr_NoMemory();
24330 D(p->level--);
24331 return NULL;
24332 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024333 Py_ssize_t _children_capacity = 1;
24334 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024335 { // lambda_param_with_default
24336 if (p->error_indicator) {
24337 D(p->level--);
24338 return NULL;
24339 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024340 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 +030024341 NameDefaultPair* lambda_param_with_default_var;
24342 while (
24343 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24344 )
24345 {
24346 _res = lambda_param_with_default_var;
24347 if (_n == _children_capacity) {
24348 _children_capacity *= 2;
24349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24350 if (!_new_children) {
24351 p->error_indicator = 1;
24352 PyErr_NoMemory();
24353 D(p->level--);
24354 return NULL;
24355 }
24356 _children = _new_children;
24357 }
24358 _children[_n++] = _res;
24359 _mark = p->mark;
24360 }
24361 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024362 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024365 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024366 if (!_seq) {
24367 PyMem_Free(_children);
24368 p->error_indicator = 1;
24369 PyErr_NoMemory();
24370 D(p->level--);
24371 return NULL;
24372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024373 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024374 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024375 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024376 D(p->level--);
24377 return _seq;
24378}
24379
Brandt Bucher145bf262021-02-26 14:51:55 -080024380// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024381static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024382_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383{
24384 D(p->level++);
24385 if (p->error_indicator) {
24386 D(p->level--);
24387 return NULL;
24388 }
24389 void *_res = NULL;
24390 int _mark = p->mark;
24391 int _start_mark = p->mark;
24392 void **_children = PyMem_Malloc(sizeof(void *));
24393 if (!_children) {
24394 p->error_indicator = 1;
24395 PyErr_NoMemory();
24396 D(p->level--);
24397 return NULL;
24398 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024399 Py_ssize_t _children_capacity = 1;
24400 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024401 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024402 if (p->error_indicator) {
24403 D(p->level--);
24404 return NULL;
24405 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024406 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 +000024407 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024408 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024409 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024410 )
24411 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024412 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024413 if (_n == _children_capacity) {
24414 _children_capacity *= 2;
24415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24416 if (!_new_children) {
24417 p->error_indicator = 1;
24418 PyErr_NoMemory();
24419 D(p->level--);
24420 return NULL;
24421 }
24422 _children = _new_children;
24423 }
24424 _children[_n++] = _res;
24425 _mark = p->mark;
24426 }
24427 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024428 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024430 }
24431 if (_n == 0 || p->error_indicator) {
24432 PyMem_Free(_children);
24433 D(p->level--);
24434 return NULL;
24435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024437 if (!_seq) {
24438 PyMem_Free(_children);
24439 p->error_indicator = 1;
24440 PyErr_NoMemory();
24441 D(p->level--);
24442 return NULL;
24443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024445 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024446 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024447 D(p->level--);
24448 return _seq;
24449}
24450
Brandt Bucher145bf262021-02-26 14:51:55 -080024451// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024452static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024453_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024454{
24455 D(p->level++);
24456 if (p->error_indicator) {
24457 D(p->level--);
24458 return NULL;
24459 }
24460 void *_res = NULL;
24461 int _mark = p->mark;
24462 int _start_mark = p->mark;
24463 void **_children = PyMem_Malloc(sizeof(void *));
24464 if (!_children) {
24465 p->error_indicator = 1;
24466 PyErr_NoMemory();
24467 D(p->level--);
24468 return NULL;
24469 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024470 Py_ssize_t _children_capacity = 1;
24471 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024472 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024473 if (p->error_indicator) {
24474 D(p->level--);
24475 return NULL;
24476 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024477 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 +000024478 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024479 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024480 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024481 )
24482 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024483 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024484 if (_n == _children_capacity) {
24485 _children_capacity *= 2;
24486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24487 if (!_new_children) {
24488 p->error_indicator = 1;
24489 PyErr_NoMemory();
24490 D(p->level--);
24491 return NULL;
24492 }
24493 _children = _new_children;
24494 }
24495 _children[_n++] = _res;
24496 _mark = p->mark;
24497 }
24498 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024499 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24501 }
24502 if (_n == 0 || p->error_indicator) {
24503 PyMem_Free(_children);
24504 D(p->level--);
24505 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024507 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024508 if (!_seq) {
24509 PyMem_Free(_children);
24510 p->error_indicator = 1;
24511 PyErr_NoMemory();
24512 D(p->level--);
24513 return NULL;
24514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024515 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024516 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024517 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024518 D(p->level--);
24519 return _seq;
24520}
24521
Brandt Bucher145bf262021-02-26 14:51:55 -080024522// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024523static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024524_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024525{
24526 D(p->level++);
24527 if (p->error_indicator) {
24528 D(p->level--);
24529 return NULL;
24530 }
24531 void *_res = NULL;
24532 int _mark = p->mark;
24533 int _start_mark = p->mark;
24534 void **_children = PyMem_Malloc(sizeof(void *));
24535 if (!_children) {
24536 p->error_indicator = 1;
24537 PyErr_NoMemory();
24538 D(p->level--);
24539 return NULL;
24540 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024541 Py_ssize_t _children_capacity = 1;
24542 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024543 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024544 if (p->error_indicator) {
24545 D(p->level--);
24546 return NULL;
24547 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024548 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 +000024549 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024550 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024551 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024552 )
24553 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024554 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024555 if (_n == _children_capacity) {
24556 _children_capacity *= 2;
24557 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24558 if (!_new_children) {
24559 p->error_indicator = 1;
24560 PyErr_NoMemory();
24561 D(p->level--);
24562 return NULL;
24563 }
24564 _children = _new_children;
24565 }
24566 _children[_n++] = _res;
24567 _mark = p->mark;
24568 }
24569 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024570 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024572 }
24573 if (_n == 0 || p->error_indicator) {
24574 PyMem_Free(_children);
24575 D(p->level--);
24576 return NULL;
24577 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024578 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024579 if (!_seq) {
24580 PyMem_Free(_children);
24581 p->error_indicator = 1;
24582 PyErr_NoMemory();
24583 D(p->level--);
24584 return NULL;
24585 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024586 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024587 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024588 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024589 D(p->level--);
24590 return _seq;
24591}
24592
Brandt Bucher145bf262021-02-26 14:51:55 -080024593// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024594static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024595_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024596{
24597 D(p->level++);
24598 if (p->error_indicator) {
24599 D(p->level--);
24600 return NULL;
24601 }
24602 void *_res = NULL;
24603 int _mark = p->mark;
24604 int _start_mark = p->mark;
24605 void **_children = PyMem_Malloc(sizeof(void *));
24606 if (!_children) {
24607 p->error_indicator = 1;
24608 PyErr_NoMemory();
24609 D(p->level--);
24610 return NULL;
24611 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024612 Py_ssize_t _children_capacity = 1;
24613 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024614 { // lambda_param_no_default
24615 if (p->error_indicator) {
24616 D(p->level--);
24617 return NULL;
24618 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024619 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 +010024620 arg_ty lambda_param_no_default_var;
24621 while (
24622 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24623 )
24624 {
24625 _res = lambda_param_no_default_var;
24626 if (_n == _children_capacity) {
24627 _children_capacity *= 2;
24628 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24629 if (!_new_children) {
24630 p->error_indicator = 1;
24631 PyErr_NoMemory();
24632 D(p->level--);
24633 return NULL;
24634 }
24635 _children = _new_children;
24636 }
24637 _children[_n++] = _res;
24638 _mark = p->mark;
24639 }
24640 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024641 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24643 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024644 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024645 if (!_seq) {
24646 PyMem_Free(_children);
24647 p->error_indicator = 1;
24648 PyErr_NoMemory();
24649 D(p->level--);
24650 return NULL;
24651 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024652 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024653 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024654 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024655 D(p->level--);
24656 return _seq;
24657}
24658
Brandt Bucher145bf262021-02-26 14:51:55 -080024659// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024660static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024661_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024662{
24663 D(p->level++);
24664 if (p->error_indicator) {
24665 D(p->level--);
24666 return NULL;
24667 }
24668 void *_res = NULL;
24669 int _mark = p->mark;
24670 int _start_mark = p->mark;
24671 void **_children = PyMem_Malloc(sizeof(void *));
24672 if (!_children) {
24673 p->error_indicator = 1;
24674 PyErr_NoMemory();
24675 D(p->level--);
24676 return NULL;
24677 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024678 Py_ssize_t _children_capacity = 1;
24679 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024680 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024681 if (p->error_indicator) {
24682 D(p->level--);
24683 return NULL;
24684 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024685 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 +000024686 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024687 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024688 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024689 )
24690 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024691 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024692 if (_n == _children_capacity) {
24693 _children_capacity *= 2;
24694 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24695 if (!_new_children) {
24696 p->error_indicator = 1;
24697 PyErr_NoMemory();
24698 D(p->level--);
24699 return NULL;
24700 }
24701 _children = _new_children;
24702 }
24703 _children[_n++] = _res;
24704 _mark = p->mark;
24705 }
24706 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024707 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024709 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024710 if (_n == 0 || p->error_indicator) {
24711 PyMem_Free(_children);
24712 D(p->level--);
24713 return NULL;
24714 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024715 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024716 if (!_seq) {
24717 PyMem_Free(_children);
24718 p->error_indicator = 1;
24719 PyErr_NoMemory();
24720 D(p->level--);
24721 return NULL;
24722 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024723 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024724 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024725 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024726 D(p->level--);
24727 return _seq;
24728}
24729
Brandt Bucher145bf262021-02-26 14:51:55 -080024730// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024731static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024732_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024733{
24734 D(p->level++);
24735 if (p->error_indicator) {
24736 D(p->level--);
24737 return NULL;
24738 }
24739 void *_res = NULL;
24740 int _mark = p->mark;
24741 int _start_mark = p->mark;
24742 void **_children = PyMem_Malloc(sizeof(void *));
24743 if (!_children) {
24744 p->error_indicator = 1;
24745 PyErr_NoMemory();
24746 D(p->level--);
24747 return NULL;
24748 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024749 Py_ssize_t _children_capacity = 1;
24750 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024751 { // lambda_param_no_default
24752 if (p->error_indicator) {
24753 D(p->level--);
24754 return NULL;
24755 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024756 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 +010024757 arg_ty lambda_param_no_default_var;
24758 while (
24759 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24760 )
24761 {
24762 _res = lambda_param_no_default_var;
24763 if (_n == _children_capacity) {
24764 _children_capacity *= 2;
24765 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24766 if (!_new_children) {
24767 p->error_indicator = 1;
24768 PyErr_NoMemory();
24769 D(p->level--);
24770 return NULL;
24771 }
24772 _children = _new_children;
24773 }
24774 _children[_n++] = _res;
24775 _mark = p->mark;
24776 }
24777 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024778 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24780 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024781 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024782 if (!_seq) {
24783 PyMem_Free(_children);
24784 p->error_indicator = 1;
24785 PyErr_NoMemory();
24786 D(p->level--);
24787 return NULL;
24788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024789 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024790 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024791 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024792 D(p->level--);
24793 return _seq;
24794}
24795
Brandt Bucher145bf262021-02-26 14:51:55 -080024796// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024797static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024798_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024799{
24800 D(p->level++);
24801 if (p->error_indicator) {
24802 D(p->level--);
24803 return NULL;
24804 }
24805 void *_res = NULL;
24806 int _mark = p->mark;
24807 int _start_mark = p->mark;
24808 void **_children = PyMem_Malloc(sizeof(void *));
24809 if (!_children) {
24810 p->error_indicator = 1;
24811 PyErr_NoMemory();
24812 D(p->level--);
24813 return NULL;
24814 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024815 Py_ssize_t _children_capacity = 1;
24816 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024817 { // lambda_param_with_default
24818 if (p->error_indicator) {
24819 D(p->level--);
24820 return NULL;
24821 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024822 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 +010024823 NameDefaultPair* lambda_param_with_default_var;
24824 while (
24825 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24826 )
24827 {
24828 _res = lambda_param_with_default_var;
24829 if (_n == _children_capacity) {
24830 _children_capacity *= 2;
24831 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24832 if (!_new_children) {
24833 p->error_indicator = 1;
24834 PyErr_NoMemory();
24835 D(p->level--);
24836 return NULL;
24837 }
24838 _children = _new_children;
24839 }
24840 _children[_n++] = _res;
24841 _mark = p->mark;
24842 }
24843 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024844 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24846 }
24847 if (_n == 0 || p->error_indicator) {
24848 PyMem_Free(_children);
24849 D(p->level--);
24850 return NULL;
24851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024853 if (!_seq) {
24854 PyMem_Free(_children);
24855 p->error_indicator = 1;
24856 PyErr_NoMemory();
24857 D(p->level--);
24858 return NULL;
24859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024861 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024862 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024863 D(p->level--);
24864 return _seq;
24865}
24866
Brandt Bucher145bf262021-02-26 14:51:55 -080024867// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024868static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024869_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024870{
24871 D(p->level++);
24872 if (p->error_indicator) {
24873 D(p->level--);
24874 return NULL;
24875 }
24876 void *_res = NULL;
24877 int _mark = p->mark;
24878 int _start_mark = p->mark;
24879 void **_children = PyMem_Malloc(sizeof(void *));
24880 if (!_children) {
24881 p->error_indicator = 1;
24882 PyErr_NoMemory();
24883 D(p->level--);
24884 return NULL;
24885 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024886 Py_ssize_t _children_capacity = 1;
24887 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024888 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024889 if (p->error_indicator) {
24890 D(p->level--);
24891 return NULL;
24892 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024893 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 +000024894 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024895 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024896 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024897 )
24898 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024899 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024900 if (_n == _children_capacity) {
24901 _children_capacity *= 2;
24902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24903 if (!_new_children) {
24904 p->error_indicator = 1;
24905 PyErr_NoMemory();
24906 D(p->level--);
24907 return NULL;
24908 }
24909 _children = _new_children;
24910 }
24911 _children[_n++] = _res;
24912 _mark = p->mark;
24913 }
24914 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024915 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024917 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024918 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024919 if (!_seq) {
24920 PyMem_Free(_children);
24921 p->error_indicator = 1;
24922 PyErr_NoMemory();
24923 D(p->level--);
24924 return NULL;
24925 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024926 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024927 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024928 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024929 D(p->level--);
24930 return _seq;
24931}
24932
Brandt Bucher145bf262021-02-26 14:51:55 -080024933// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024934static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024935_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024936{
24937 D(p->level++);
24938 if (p->error_indicator) {
24939 D(p->level--);
24940 return NULL;
24941 }
24942 void *_res = NULL;
24943 int _mark = p->mark;
24944 int _start_mark = p->mark;
24945 void **_children = PyMem_Malloc(sizeof(void *));
24946 if (!_children) {
24947 p->error_indicator = 1;
24948 PyErr_NoMemory();
24949 D(p->level--);
24950 return NULL;
24951 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024952 Py_ssize_t _children_capacity = 1;
24953 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024954 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024955 if (p->error_indicator) {
24956 D(p->level--);
24957 return NULL;
24958 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024959 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 +000024960 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024961 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024962 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024963 )
24964 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024965 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024966 if (_n == _children_capacity) {
24967 _children_capacity *= 2;
24968 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24969 if (!_new_children) {
24970 p->error_indicator = 1;
24971 PyErr_NoMemory();
24972 D(p->level--);
24973 return NULL;
24974 }
24975 _children = _new_children;
24976 }
24977 _children[_n++] = _res;
24978 _mark = p->mark;
24979 }
24980 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024981 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024983 }
24984 if (_n == 0 || p->error_indicator) {
24985 PyMem_Free(_children);
24986 D(p->level--);
24987 return NULL;
24988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024989 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024990 if (!_seq) {
24991 PyMem_Free(_children);
24992 p->error_indicator = 1;
24993 PyErr_NoMemory();
24994 D(p->level--);
24995 return NULL;
24996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024997 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024998 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024999 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025000 D(p->level--);
25001 return _seq;
25002}
25003
Brandt Bucher145bf262021-02-26 14:51:55 -080025004// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025005static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025006_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025007{
25008 D(p->level++);
25009 if (p->error_indicator) {
25010 D(p->level--);
25011 return NULL;
25012 }
25013 void *_res = NULL;
25014 int _mark = p->mark;
25015 int _start_mark = p->mark;
25016 void **_children = PyMem_Malloc(sizeof(void *));
25017 if (!_children) {
25018 p->error_indicator = 1;
25019 PyErr_NoMemory();
25020 D(p->level--);
25021 return NULL;
25022 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025023 Py_ssize_t _children_capacity = 1;
25024 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025025 { // ('or' conjunction)
25026 if (p->error_indicator) {
25027 D(p->level--);
25028 return NULL;
25029 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025030 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
25031 void *_tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025032 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025033 (_tmp_168_var = _tmp_168_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025034 )
25035 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025036 _res = _tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025037 if (_n == _children_capacity) {
25038 _children_capacity *= 2;
25039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25040 if (!_new_children) {
25041 p->error_indicator = 1;
25042 PyErr_NoMemory();
25043 D(p->level--);
25044 return NULL;
25045 }
25046 _children = _new_children;
25047 }
25048 _children[_n++] = _res;
25049 _mark = p->mark;
25050 }
25051 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025052 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
25054 }
25055 if (_n == 0 || p->error_indicator) {
25056 PyMem_Free(_children);
25057 D(p->level--);
25058 return NULL;
25059 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025060 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025061 if (!_seq) {
25062 PyMem_Free(_children);
25063 p->error_indicator = 1;
25064 PyErr_NoMemory();
25065 D(p->level--);
25066 return NULL;
25067 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025068 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025069 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025070 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025071 D(p->level--);
25072 return _seq;
25073}
25074
Brandt Bucher145bf262021-02-26 14:51:55 -080025075// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025076static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025077_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025078{
25079 D(p->level++);
25080 if (p->error_indicator) {
25081 D(p->level--);
25082 return NULL;
25083 }
25084 void *_res = NULL;
25085 int _mark = p->mark;
25086 int _start_mark = p->mark;
25087 void **_children = PyMem_Malloc(sizeof(void *));
25088 if (!_children) {
25089 p->error_indicator = 1;
25090 PyErr_NoMemory();
25091 D(p->level--);
25092 return NULL;
25093 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025094 Py_ssize_t _children_capacity = 1;
25095 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025096 { // ('and' inversion)
25097 if (p->error_indicator) {
25098 D(p->level--);
25099 return NULL;
25100 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025101 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
25102 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025103 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025104 (_tmp_169_var = _tmp_169_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025105 )
25106 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025107 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025108 if (_n == _children_capacity) {
25109 _children_capacity *= 2;
25110 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25111 if (!_new_children) {
25112 p->error_indicator = 1;
25113 PyErr_NoMemory();
25114 D(p->level--);
25115 return NULL;
25116 }
25117 _children = _new_children;
25118 }
25119 _children[_n++] = _res;
25120 _mark = p->mark;
25121 }
25122 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025123 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
25125 }
25126 if (_n == 0 || p->error_indicator) {
25127 PyMem_Free(_children);
25128 D(p->level--);
25129 return NULL;
25130 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025131 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025132 if (!_seq) {
25133 PyMem_Free(_children);
25134 p->error_indicator = 1;
25135 PyErr_NoMemory();
25136 D(p->level--);
25137 return NULL;
25138 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025139 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025140 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025141 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025142 D(p->level--);
25143 return _seq;
25144}
25145
Brandt Bucher145bf262021-02-26 14:51:55 -080025146// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025148_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025149{
25150 D(p->level++);
25151 if (p->error_indicator) {
25152 D(p->level--);
25153 return NULL;
25154 }
25155 void *_res = NULL;
25156 int _mark = p->mark;
25157 int _start_mark = p->mark;
25158 void **_children = PyMem_Malloc(sizeof(void *));
25159 if (!_children) {
25160 p->error_indicator = 1;
25161 PyErr_NoMemory();
25162 D(p->level--);
25163 return NULL;
25164 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025165 Py_ssize_t _children_capacity = 1;
25166 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025167 { // compare_op_bitwise_or_pair
25168 if (p->error_indicator) {
25169 D(p->level--);
25170 return NULL;
25171 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025172 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 +010025173 CmpopExprPair* compare_op_bitwise_or_pair_var;
25174 while (
25175 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
25176 )
25177 {
25178 _res = compare_op_bitwise_or_pair_var;
25179 if (_n == _children_capacity) {
25180 _children_capacity *= 2;
25181 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25182 if (!_new_children) {
25183 p->error_indicator = 1;
25184 PyErr_NoMemory();
25185 D(p->level--);
25186 return NULL;
25187 }
25188 _children = _new_children;
25189 }
25190 _children[_n++] = _res;
25191 _mark = p->mark;
25192 }
25193 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025194 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
25196 }
25197 if (_n == 0 || p->error_indicator) {
25198 PyMem_Free(_children);
25199 D(p->level--);
25200 return NULL;
25201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025202 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025203 if (!_seq) {
25204 PyMem_Free(_children);
25205 p->error_indicator = 1;
25206 PyErr_NoMemory();
25207 D(p->level--);
25208 return NULL;
25209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025210 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025211 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025212 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025213 D(p->level--);
25214 return _seq;
25215}
25216
Brandt Bucher145bf262021-02-26 14:51:55 -080025217// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025218static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025219_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025220{
25221 D(p->level++);
25222 if (p->error_indicator) {
25223 D(p->level--);
25224 return NULL;
25225 }
25226 void * _res = NULL;
25227 int _mark = p->mark;
25228 { // '!='
25229 if (p->error_indicator) {
25230 D(p->level--);
25231 return NULL;
25232 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025233 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025234 Token * tok;
25235 if (
25236 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25237 )
25238 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025239 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025240 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025241 if (_res == NULL && PyErr_Occurred()) {
25242 p->error_indicator = 1;
25243 D(p->level--);
25244 return NULL;
25245 }
25246 goto done;
25247 }
25248 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025249 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25251 }
25252 _res = NULL;
25253 done:
25254 D(p->level--);
25255 return _res;
25256}
25257
Brandt Bucher145bf262021-02-26 14:51:55 -080025258// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025259static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025260_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025261{
25262 D(p->level++);
25263 if (p->error_indicator) {
25264 D(p->level--);
25265 return NULL;
25266 }
25267 void *_res = NULL;
25268 int _mark = p->mark;
25269 int _start_mark = p->mark;
25270 void **_children = PyMem_Malloc(sizeof(void *));
25271 if (!_children) {
25272 p->error_indicator = 1;
25273 PyErr_NoMemory();
25274 D(p->level--);
25275 return NULL;
25276 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025277 Py_ssize_t _children_capacity = 1;
25278 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025279 { // ',' slice
25280 if (p->error_indicator) {
25281 D(p->level--);
25282 return NULL;
25283 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025284 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025285 Token * _literal;
25286 expr_ty elem;
25287 while (
25288 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25289 &&
25290 (elem = slice_rule(p)) // slice
25291 )
25292 {
25293 _res = elem;
25294 if (_res == NULL && PyErr_Occurred()) {
25295 p->error_indicator = 1;
25296 PyMem_Free(_children);
25297 D(p->level--);
25298 return NULL;
25299 }
25300 if (_n == _children_capacity) {
25301 _children_capacity *= 2;
25302 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25303 if (!_new_children) {
25304 p->error_indicator = 1;
25305 PyErr_NoMemory();
25306 D(p->level--);
25307 return NULL;
25308 }
25309 _children = _new_children;
25310 }
25311 _children[_n++] = _res;
25312 _mark = p->mark;
25313 }
25314 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025315 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
25317 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025318 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025319 if (!_seq) {
25320 PyMem_Free(_children);
25321 p->error_indicator = 1;
25322 PyErr_NoMemory();
25323 D(p->level--);
25324 return NULL;
25325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025326 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025327 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025328 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025329 D(p->level--);
25330 return _seq;
25331}
25332
Brandt Bucher145bf262021-02-26 14:51:55 -080025333// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025334static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025335_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025336{
25337 D(p->level++);
25338 if (p->error_indicator) {
25339 D(p->level--);
25340 return NULL;
25341 }
25342 asdl_seq * _res = NULL;
25343 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025344 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025345 if (p->error_indicator) {
25346 D(p->level--);
25347 return NULL;
25348 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025349 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 +010025350 expr_ty elem;
25351 asdl_seq * seq;
25352 if (
25353 (elem = slice_rule(p)) // slice
25354 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025355 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025356 )
25357 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025358 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 +010025359 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25360 goto done;
25361 }
25362 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025363 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
25364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025365 }
25366 _res = NULL;
25367 done:
25368 D(p->level--);
25369 return _res;
25370}
25371
Brandt Bucher145bf262021-02-26 14:51:55 -080025372// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025373static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025374_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025375{
25376 D(p->level++);
25377 if (p->error_indicator) {
25378 D(p->level--);
25379 return NULL;
25380 }
25381 void * _res = NULL;
25382 int _mark = p->mark;
25383 { // ':' expression?
25384 if (p->error_indicator) {
25385 D(p->level--);
25386 return NULL;
25387 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025388 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025389 Token * _literal;
25390 void *d;
25391 if (
25392 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25393 &&
25394 (d = expression_rule(p), 1) // expression?
25395 )
25396 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025397 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025398 _res = d;
25399 if (_res == NULL && PyErr_Occurred()) {
25400 p->error_indicator = 1;
25401 D(p->level--);
25402 return NULL;
25403 }
25404 goto done;
25405 }
25406 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025407 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
25409 }
25410 _res = NULL;
25411 done:
25412 D(p->level--);
25413 return _res;
25414}
25415
Brandt Bucher145bf262021-02-26 14:51:55 -080025416// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025417static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025418_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025419{
25420 D(p->level++);
25421 if (p->error_indicator) {
25422 D(p->level--);
25423 return NULL;
25424 }
25425 void * _res = NULL;
25426 int _mark = p->mark;
25427 { // tuple
25428 if (p->error_indicator) {
25429 D(p->level--);
25430 return NULL;
25431 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025432 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025433 expr_ty tuple_var;
25434 if (
25435 (tuple_var = tuple_rule(p)) // tuple
25436 )
25437 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025438 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025439 _res = tuple_var;
25440 goto done;
25441 }
25442 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025443 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
25445 }
25446 { // group
25447 if (p->error_indicator) {
25448 D(p->level--);
25449 return NULL;
25450 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025451 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025452 expr_ty group_var;
25453 if (
25454 (group_var = group_rule(p)) // group
25455 )
25456 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025457 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025458 _res = group_var;
25459 goto done;
25460 }
25461 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025462 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
25464 }
25465 { // genexp
25466 if (p->error_indicator) {
25467 D(p->level--);
25468 return NULL;
25469 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025470 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025471 expr_ty genexp_var;
25472 if (
25473 (genexp_var = genexp_rule(p)) // genexp
25474 )
25475 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025476 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025477 _res = genexp_var;
25478 goto done;
25479 }
25480 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025481 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
25483 }
25484 _res = NULL;
25485 done:
25486 D(p->level--);
25487 return _res;
25488}
25489
Brandt Bucher145bf262021-02-26 14:51:55 -080025490// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025491static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025492_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025493{
25494 D(p->level++);
25495 if (p->error_indicator) {
25496 D(p->level--);
25497 return NULL;
25498 }
25499 void * _res = NULL;
25500 int _mark = p->mark;
25501 { // list
25502 if (p->error_indicator) {
25503 D(p->level--);
25504 return NULL;
25505 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025506 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025507 expr_ty list_var;
25508 if (
25509 (list_var = list_rule(p)) // list
25510 )
25511 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025512 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025513 _res = list_var;
25514 goto done;
25515 }
25516 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025517 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
25519 }
25520 { // listcomp
25521 if (p->error_indicator) {
25522 D(p->level--);
25523 return NULL;
25524 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025525 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025526 expr_ty listcomp_var;
25527 if (
25528 (listcomp_var = listcomp_rule(p)) // listcomp
25529 )
25530 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025531 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025532 _res = listcomp_var;
25533 goto done;
25534 }
25535 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025536 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
25538 }
25539 _res = NULL;
25540 done:
25541 D(p->level--);
25542 return _res;
25543}
25544
Brandt Bucher145bf262021-02-26 14:51:55 -080025545// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025546static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025547_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025548{
25549 D(p->level++);
25550 if (p->error_indicator) {
25551 D(p->level--);
25552 return NULL;
25553 }
25554 void * _res = NULL;
25555 int _mark = p->mark;
25556 { // dict
25557 if (p->error_indicator) {
25558 D(p->level--);
25559 return NULL;
25560 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025561 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025562 expr_ty dict_var;
25563 if (
25564 (dict_var = dict_rule(p)) // dict
25565 )
25566 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025567 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025568 _res = dict_var;
25569 goto done;
25570 }
25571 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025572 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
25574 }
25575 { // set
25576 if (p->error_indicator) {
25577 D(p->level--);
25578 return NULL;
25579 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025580 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025581 expr_ty set_var;
25582 if (
25583 (set_var = set_rule(p)) // set
25584 )
25585 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025586 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025587 _res = set_var;
25588 goto done;
25589 }
25590 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025591 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
25593 }
25594 { // dictcomp
25595 if (p->error_indicator) {
25596 D(p->level--);
25597 return NULL;
25598 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025599 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600 expr_ty dictcomp_var;
25601 if (
25602 (dictcomp_var = dictcomp_rule(p)) // dictcomp
25603 )
25604 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025605 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025606 _res = dictcomp_var;
25607 goto done;
25608 }
25609 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025610 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
25612 }
25613 { // setcomp
25614 if (p->error_indicator) {
25615 D(p->level--);
25616 return NULL;
25617 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025618 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025619 expr_ty setcomp_var;
25620 if (
25621 (setcomp_var = setcomp_rule(p)) // setcomp
25622 )
25623 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025624 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025625 _res = setcomp_var;
25626 goto done;
25627 }
25628 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025629 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
25631 }
25632 _res = NULL;
25633 done:
25634 D(p->level--);
25635 return _res;
25636}
25637
Brandt Bucher145bf262021-02-26 14:51:55 -080025638// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025639static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025640_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025641{
25642 D(p->level++);
25643 if (p->error_indicator) {
25644 D(p->level--);
25645 return NULL;
25646 }
25647 void *_res = NULL;
25648 int _mark = p->mark;
25649 int _start_mark = p->mark;
25650 void **_children = PyMem_Malloc(sizeof(void *));
25651 if (!_children) {
25652 p->error_indicator = 1;
25653 PyErr_NoMemory();
25654 D(p->level--);
25655 return NULL;
25656 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025657 Py_ssize_t _children_capacity = 1;
25658 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025659 { // STRING
25660 if (p->error_indicator) {
25661 D(p->level--);
25662 return NULL;
25663 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025664 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025665 expr_ty string_var;
25666 while (
25667 (string_var = _PyPegen_string_token(p)) // STRING
25668 )
25669 {
25670 _res = string_var;
25671 if (_n == _children_capacity) {
25672 _children_capacity *= 2;
25673 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25674 if (!_new_children) {
25675 p->error_indicator = 1;
25676 PyErr_NoMemory();
25677 D(p->level--);
25678 return NULL;
25679 }
25680 _children = _new_children;
25681 }
25682 _children[_n++] = _res;
25683 _mark = p->mark;
25684 }
25685 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025686 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
25688 }
25689 if (_n == 0 || p->error_indicator) {
25690 PyMem_Free(_children);
25691 D(p->level--);
25692 return NULL;
25693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025695 if (!_seq) {
25696 PyMem_Free(_children);
25697 p->error_indicator = 1;
25698 PyErr_NoMemory();
25699 D(p->level--);
25700 return NULL;
25701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025703 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025704 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025705 D(p->level--);
25706 return _seq;
25707}
25708
Brandt Bucher145bf262021-02-26 14:51:55 -080025709// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025711_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025712{
25713 D(p->level++);
25714 if (p->error_indicator) {
25715 D(p->level--);
25716 return NULL;
25717 }
25718 void * _res = NULL;
25719 int _mark = p->mark;
25720 { // star_named_expression ',' star_named_expressions?
25721 if (p->error_indicator) {
25722 D(p->level--);
25723 return NULL;
25724 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025725 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 +010025726 Token * _literal;
25727 expr_ty y;
25728 void *z;
25729 if (
25730 (y = star_named_expression_rule(p)) // star_named_expression
25731 &&
25732 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25733 &&
25734 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
25735 )
25736 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025737 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 +010025738 _res = _PyPegen_seq_insert_in_front ( p , y , z );
25739 if (_res == NULL && PyErr_Occurred()) {
25740 p->error_indicator = 1;
25741 D(p->level--);
25742 return NULL;
25743 }
25744 goto done;
25745 }
25746 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025747 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
25749 }
25750 _res = NULL;
25751 done:
25752 D(p->level--);
25753 return _res;
25754}
25755
Brandt Bucher145bf262021-02-26 14:51:55 -080025756// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025757static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025758_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025759{
25760 D(p->level++);
25761 if (p->error_indicator) {
25762 D(p->level--);
25763 return NULL;
25764 }
25765 void * _res = NULL;
25766 int _mark = p->mark;
25767 { // yield_expr
25768 if (p->error_indicator) {
25769 D(p->level--);
25770 return NULL;
25771 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025772 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025773 expr_ty yield_expr_var;
25774 if (
25775 (yield_expr_var = yield_expr_rule(p)) // yield_expr
25776 )
25777 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025778 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 +010025779 _res = yield_expr_var;
25780 goto done;
25781 }
25782 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025783 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
25785 }
25786 { // named_expression
25787 if (p->error_indicator) {
25788 D(p->level--);
25789 return NULL;
25790 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025791 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025792 expr_ty named_expression_var;
25793 if (
25794 (named_expression_var = named_expression_rule(p)) // named_expression
25795 )
25796 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025797 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 +010025798 _res = named_expression_var;
25799 goto done;
25800 }
25801 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025802 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
25804 }
25805 _res = NULL;
25806 done:
25807 D(p->level--);
25808 return _res;
25809}
25810
Brandt Bucher145bf262021-02-26 14:51:55 -080025811// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025812static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025813_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025814{
25815 D(p->level++);
25816 if (p->error_indicator) {
25817 D(p->level--);
25818 return NULL;
25819 }
25820 void *_res = NULL;
25821 int _mark = p->mark;
25822 int _start_mark = p->mark;
25823 void **_children = PyMem_Malloc(sizeof(void *));
25824 if (!_children) {
25825 p->error_indicator = 1;
25826 PyErr_NoMemory();
25827 D(p->level--);
25828 return NULL;
25829 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025830 Py_ssize_t _children_capacity = 1;
25831 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025832 { // ',' double_starred_kvpair
25833 if (p->error_indicator) {
25834 D(p->level--);
25835 return NULL;
25836 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025837 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 +010025838 Token * _literal;
25839 KeyValuePair* elem;
25840 while (
25841 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25842 &&
25843 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25844 )
25845 {
25846 _res = elem;
25847 if (_res == NULL && PyErr_Occurred()) {
25848 p->error_indicator = 1;
25849 PyMem_Free(_children);
25850 D(p->level--);
25851 return NULL;
25852 }
25853 if (_n == _children_capacity) {
25854 _children_capacity *= 2;
25855 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25856 if (!_new_children) {
25857 p->error_indicator = 1;
25858 PyErr_NoMemory();
25859 D(p->level--);
25860 return NULL;
25861 }
25862 _children = _new_children;
25863 }
25864 _children[_n++] = _res;
25865 _mark = p->mark;
25866 }
25867 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025868 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
25870 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025871 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025872 if (!_seq) {
25873 PyMem_Free(_children);
25874 p->error_indicator = 1;
25875 PyErr_NoMemory();
25876 D(p->level--);
25877 return NULL;
25878 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025879 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025880 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025881 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025882 D(p->level--);
25883 return _seq;
25884}
25885
Brandt Bucher145bf262021-02-26 14:51:55 -080025886// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025887static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025888_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025889{
25890 D(p->level++);
25891 if (p->error_indicator) {
25892 D(p->level--);
25893 return NULL;
25894 }
25895 asdl_seq * _res = NULL;
25896 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025897 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025898 if (p->error_indicator) {
25899 D(p->level--);
25900 return NULL;
25901 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025902 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025903 KeyValuePair* elem;
25904 asdl_seq * seq;
25905 if (
25906 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25907 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025908 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025909 )
25910 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025911 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 +010025912 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25913 goto done;
25914 }
25915 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025916 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
25917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025918 }
25919 _res = NULL;
25920 done:
25921 D(p->level--);
25922 return _res;
25923}
25924
Brandt Bucher145bf262021-02-26 14:51:55 -080025925// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025926static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025927_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025928{
25929 D(p->level++);
25930 if (p->error_indicator) {
25931 D(p->level--);
25932 return NULL;
25933 }
25934 void *_res = NULL;
25935 int _mark = p->mark;
25936 int _start_mark = p->mark;
25937 void **_children = PyMem_Malloc(sizeof(void *));
25938 if (!_children) {
25939 p->error_indicator = 1;
25940 PyErr_NoMemory();
25941 D(p->level--);
25942 return NULL;
25943 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025944 Py_ssize_t _children_capacity = 1;
25945 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025946 { // for_if_clause
25947 if (p->error_indicator) {
25948 D(p->level--);
25949 return NULL;
25950 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025951 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 +010025952 comprehension_ty for_if_clause_var;
25953 while (
25954 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
25955 )
25956 {
25957 _res = for_if_clause_var;
25958 if (_n == _children_capacity) {
25959 _children_capacity *= 2;
25960 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25961 if (!_new_children) {
25962 p->error_indicator = 1;
25963 PyErr_NoMemory();
25964 D(p->level--);
25965 return NULL;
25966 }
25967 _children = _new_children;
25968 }
25969 _children[_n++] = _res;
25970 _mark = p->mark;
25971 }
25972 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025973 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
25975 }
25976 if (_n == 0 || p->error_indicator) {
25977 PyMem_Free(_children);
25978 D(p->level--);
25979 return NULL;
25980 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025981 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025982 if (!_seq) {
25983 PyMem_Free(_children);
25984 p->error_indicator = 1;
25985 PyErr_NoMemory();
25986 D(p->level--);
25987 return NULL;
25988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025989 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025990 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025991 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025992 D(p->level--);
25993 return _seq;
25994}
25995
Brandt Bucher145bf262021-02-26 14:51:55 -080025996// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025997static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025998_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025999{
26000 D(p->level++);
26001 if (p->error_indicator) {
26002 D(p->level--);
26003 return NULL;
26004 }
26005 void *_res = NULL;
26006 int _mark = p->mark;
26007 int _start_mark = p->mark;
26008 void **_children = PyMem_Malloc(sizeof(void *));
26009 if (!_children) {
26010 p->error_indicator = 1;
26011 PyErr_NoMemory();
26012 D(p->level--);
26013 return NULL;
26014 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026015 Py_ssize_t _children_capacity = 1;
26016 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026017 { // ('if' disjunction)
26018 if (p->error_indicator) {
26019 D(p->level--);
26020 return NULL;
26021 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026022 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
26023 void *_tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026024 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026025 (_tmp_170_var = _tmp_170_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026026 )
26027 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026028 _res = _tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026029 if (_n == _children_capacity) {
26030 _children_capacity *= 2;
26031 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26032 if (!_new_children) {
26033 p->error_indicator = 1;
26034 PyErr_NoMemory();
26035 D(p->level--);
26036 return NULL;
26037 }
26038 _children = _new_children;
26039 }
26040 _children[_n++] = _res;
26041 _mark = p->mark;
26042 }
26043 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026044 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26046 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026047 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026048 if (!_seq) {
26049 PyMem_Free(_children);
26050 p->error_indicator = 1;
26051 PyErr_NoMemory();
26052 D(p->level--);
26053 return NULL;
26054 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026055 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026056 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026057 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026058 D(p->level--);
26059 return _seq;
26060}
26061
Brandt Bucher145bf262021-02-26 14:51:55 -080026062// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026063static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026064_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026065{
26066 D(p->level++);
26067 if (p->error_indicator) {
26068 D(p->level--);
26069 return NULL;
26070 }
26071 void *_res = NULL;
26072 int _mark = p->mark;
26073 int _start_mark = p->mark;
26074 void **_children = PyMem_Malloc(sizeof(void *));
26075 if (!_children) {
26076 p->error_indicator = 1;
26077 PyErr_NoMemory();
26078 D(p->level--);
26079 return NULL;
26080 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026081 Py_ssize_t _children_capacity = 1;
26082 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026083 { // ('if' disjunction)
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> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
26089 void *_tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026090 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026091 (_tmp_171_var = _tmp_171_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026092 )
26093 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026094 _res = _tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026095 if (_n == _children_capacity) {
26096 _children_capacity *= 2;
26097 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26098 if (!_new_children) {
26099 p->error_indicator = 1;
26100 PyErr_NoMemory();
26101 D(p->level--);
26102 return NULL;
26103 }
26104 _children = _new_children;
26105 }
26106 _children[_n++] = _res;
26107 _mark = p->mark;
26108 }
26109 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026110 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
26112 }
26113 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26114 if (!_seq) {
26115 PyMem_Free(_children);
26116 p->error_indicator = 1;
26117 PyErr_NoMemory();
26118 D(p->level--);
26119 return NULL;
26120 }
26121 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26122 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026123 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026124 D(p->level--);
26125 return _seq;
26126}
26127
Brandt Bucher145bf262021-02-26 14:51:55 -080026128// _loop0_123: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026129static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026130_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026131{
26132 D(p->level++);
26133 if (p->error_indicator) {
26134 D(p->level--);
26135 return NULL;
26136 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026137 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026138 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026139 int _start_mark = p->mark;
26140 void **_children = PyMem_Malloc(sizeof(void *));
26141 if (!_children) {
26142 p->error_indicator = 1;
26143 PyErr_NoMemory();
26144 D(p->level--);
26145 return NULL;
26146 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026147 Py_ssize_t _children_capacity = 1;
26148 Py_ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010026149 { // ',' (starred_expression | named_expression !'=')
26150 if (p->error_indicator) {
26151 D(p->level--);
26152 return NULL;
26153 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026154 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010026155 Token * _literal;
26156 void *elem;
26157 while (
26158 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26159 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026160 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026161 )
26162 {
26163 _res = elem;
26164 if (_res == NULL && PyErr_Occurred()) {
26165 p->error_indicator = 1;
26166 PyMem_Free(_children);
26167 D(p->level--);
26168 return NULL;
26169 }
26170 if (_n == _children_capacity) {
26171 _children_capacity *= 2;
26172 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26173 if (!_new_children) {
26174 p->error_indicator = 1;
26175 PyErr_NoMemory();
26176 D(p->level--);
26177 return NULL;
26178 }
26179 _children = _new_children;
26180 }
26181 _children[_n++] = _res;
26182 _mark = p->mark;
26183 }
26184 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026185 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026187 }
26188 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26189 if (!_seq) {
26190 PyMem_Free(_children);
26191 p->error_indicator = 1;
26192 PyErr_NoMemory();
26193 D(p->level--);
26194 return NULL;
26195 }
26196 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26197 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026198 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026199 D(p->level--);
26200 return _seq;
26201}
26202
Brandt Bucher145bf262021-02-26 14:51:55 -080026203// _gather_122: (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026204static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026205_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026206{
26207 D(p->level++);
26208 if (p->error_indicator) {
26209 D(p->level--);
26210 return NULL;
26211 }
26212 asdl_seq * _res = NULL;
26213 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026214 { // (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026215 if (p->error_indicator) {
26216 D(p->level--);
26217 return NULL;
26218 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026219 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
26220 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026221 asdl_seq * seq;
26222 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026223 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026224 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026225 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026226 )
26227 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026228 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026229 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26230 goto done;
26231 }
26232 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026233 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026235 }
26236 _res = NULL;
26237 done:
26238 D(p->level--);
26239 return _res;
26240}
26241
Brandt Bucher145bf262021-02-26 14:51:55 -080026242// _tmp_124: ',' kwargs
26243static void *
26244_tmp_124_rule(Parser *p)
26245{
26246 D(p->level++);
26247 if (p->error_indicator) {
26248 D(p->level--);
26249 return NULL;
26250 }
26251 void * _res = NULL;
26252 int _mark = p->mark;
26253 { // ',' kwargs
26254 if (p->error_indicator) {
26255 D(p->level--);
26256 return NULL;
26257 }
26258 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26259 Token * _literal;
26260 asdl_seq* k;
26261 if (
26262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26263 &&
26264 (k = kwargs_rule(p)) // kwargs
26265 )
26266 {
26267 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26268 _res = k;
26269 if (_res == NULL && PyErr_Occurred()) {
26270 p->error_indicator = 1;
26271 D(p->level--);
26272 return NULL;
26273 }
26274 goto done;
26275 }
26276 p->mark = _mark;
26277 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26279 }
26280 _res = NULL;
26281 done:
26282 D(p->level--);
26283 return _res;
26284}
26285
26286// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026287static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026288_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026289{
26290 D(p->level++);
26291 if (p->error_indicator) {
26292 D(p->level--);
26293 return NULL;
26294 }
26295 void *_res = NULL;
26296 int _mark = p->mark;
26297 int _start_mark = p->mark;
26298 void **_children = PyMem_Malloc(sizeof(void *));
26299 if (!_children) {
26300 p->error_indicator = 1;
26301 PyErr_NoMemory();
26302 D(p->level--);
26303 return NULL;
26304 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026305 Py_ssize_t _children_capacity = 1;
26306 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026307 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026308 if (p->error_indicator) {
26309 D(p->level--);
26310 return NULL;
26311 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026312 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 +000026313 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026314 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026315 while (
26316 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26317 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026318 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026319 )
26320 {
26321 _res = elem;
26322 if (_res == NULL && PyErr_Occurred()) {
26323 p->error_indicator = 1;
26324 PyMem_Free(_children);
26325 D(p->level--);
26326 return NULL;
26327 }
26328 if (_n == _children_capacity) {
26329 _children_capacity *= 2;
26330 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26331 if (!_new_children) {
26332 p->error_indicator = 1;
26333 PyErr_NoMemory();
26334 D(p->level--);
26335 return NULL;
26336 }
26337 _children = _new_children;
26338 }
26339 _children[_n++] = _res;
26340 _mark = p->mark;
26341 }
26342 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026343 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
26344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026345 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026346 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026347 if (!_seq) {
26348 PyMem_Free(_children);
26349 p->error_indicator = 1;
26350 PyErr_NoMemory();
26351 D(p->level--);
26352 return NULL;
26353 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026354 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026355 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026356 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026357 D(p->level--);
26358 return _seq;
26359}
26360
Brandt Bucher145bf262021-02-26 14:51:55 -080026361// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026362static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026363_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026364{
26365 D(p->level++);
26366 if (p->error_indicator) {
26367 D(p->level--);
26368 return NULL;
26369 }
26370 asdl_seq * _res = NULL;
26371 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026372 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026373 if (p->error_indicator) {
26374 D(p->level--);
26375 return NULL;
26376 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026377 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
26378 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026379 asdl_seq * seq;
26380 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026381 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026382 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026383 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026384 )
26385 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026386 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 +010026387 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26388 goto done;
26389 }
26390 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026391 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
26392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026393 }
26394 _res = NULL;
26395 done:
26396 D(p->level--);
26397 return _res;
26398}
26399
Brandt Bucher145bf262021-02-26 14:51:55 -080026400// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026401static asdl_seq *
26402_loop0_128_rule(Parser *p)
26403{
26404 D(p->level++);
26405 if (p->error_indicator) {
26406 D(p->level--);
26407 return NULL;
26408 }
26409 void *_res = NULL;
26410 int _mark = p->mark;
26411 int _start_mark = p->mark;
26412 void **_children = PyMem_Malloc(sizeof(void *));
26413 if (!_children) {
26414 p->error_indicator = 1;
26415 PyErr_NoMemory();
26416 D(p->level--);
26417 return NULL;
26418 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026419 Py_ssize_t _children_capacity = 1;
26420 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026421 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026422 if (p->error_indicator) {
26423 D(p->level--);
26424 return NULL;
26425 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026426 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
26427 Token * _literal;
26428 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026429 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026430 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26431 &&
26432 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026433 )
26434 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026435 _res = elem;
26436 if (_res == NULL && PyErr_Occurred()) {
26437 p->error_indicator = 1;
26438 PyMem_Free(_children);
26439 D(p->level--);
26440 return NULL;
26441 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026442 if (_n == _children_capacity) {
26443 _children_capacity *= 2;
26444 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26445 if (!_new_children) {
26446 p->error_indicator = 1;
26447 PyErr_NoMemory();
26448 D(p->level--);
26449 return NULL;
26450 }
26451 _children = _new_children;
26452 }
26453 _children[_n++] = _res;
26454 _mark = p->mark;
26455 }
26456 p->mark = _mark;
26457 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026459 }
26460 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26461 if (!_seq) {
26462 PyMem_Free(_children);
26463 p->error_indicator = 1;
26464 PyErr_NoMemory();
26465 D(p->level--);
26466 return NULL;
26467 }
26468 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26469 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026470 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026471 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026472 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026473}
26474
Brandt Bucher145bf262021-02-26 14:51:55 -080026475// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026476static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026477_gather_127_rule(Parser *p)
26478{
26479 D(p->level++);
26480 if (p->error_indicator) {
26481 D(p->level--);
26482 return NULL;
26483 }
26484 asdl_seq * _res = NULL;
26485 int _mark = p->mark;
26486 { // kwarg_or_double_starred _loop0_128
26487 if (p->error_indicator) {
26488 D(p->level--);
26489 return NULL;
26490 }
26491 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26492 KeywordOrStarred* elem;
26493 asdl_seq * seq;
26494 if (
26495 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26496 &&
26497 (seq = _loop0_128_rule(p)) // _loop0_128
26498 )
26499 {
26500 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26501 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26502 goto done;
26503 }
26504 p->mark = _mark;
26505 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
26506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26507 }
26508 _res = NULL;
26509 done:
26510 D(p->level--);
26511 return _res;
26512}
26513
26514// _loop0_130: ',' kwarg_or_starred
26515static asdl_seq *
26516_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026517{
26518 D(p->level++);
26519 if (p->error_indicator) {
26520 D(p->level--);
26521 return NULL;
26522 }
26523 void *_res = NULL;
26524 int _mark = p->mark;
26525 int _start_mark = p->mark;
26526 void **_children = PyMem_Malloc(sizeof(void *));
26527 if (!_children) {
26528 p->error_indicator = 1;
26529 PyErr_NoMemory();
26530 D(p->level--);
26531 return NULL;
26532 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026533 Py_ssize_t _children_capacity = 1;
26534 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026535 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026536 if (p->error_indicator) {
26537 D(p->level--);
26538 return NULL;
26539 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026540 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
26541 Token * _literal;
26542 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026543 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026544 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26545 &&
26546 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026547 )
26548 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026549 _res = elem;
26550 if (_res == NULL && PyErr_Occurred()) {
26551 p->error_indicator = 1;
26552 PyMem_Free(_children);
26553 D(p->level--);
26554 return NULL;
26555 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026556 if (_n == _children_capacity) {
26557 _children_capacity *= 2;
26558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26559 if (!_new_children) {
26560 p->error_indicator = 1;
26561 PyErr_NoMemory();
26562 D(p->level--);
26563 return NULL;
26564 }
26565 _children = _new_children;
26566 }
26567 _children[_n++] = _res;
26568 _mark = p->mark;
26569 }
26570 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026571 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
26572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026573 }
26574 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26575 if (!_seq) {
26576 PyMem_Free(_children);
26577 p->error_indicator = 1;
26578 PyErr_NoMemory();
26579 D(p->level--);
26580 return NULL;
26581 }
26582 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26583 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026584 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026585 D(p->level--);
26586 return _seq;
26587}
26588
Brandt Bucher145bf262021-02-26 14:51:55 -080026589// _gather_129: kwarg_or_starred _loop0_130
26590static asdl_seq *
26591_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026592{
26593 D(p->level++);
26594 if (p->error_indicator) {
26595 D(p->level--);
26596 return NULL;
26597 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026598 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026599 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026600 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026601 if (p->error_indicator) {
26602 D(p->level--);
26603 return NULL;
26604 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026605 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26606 KeywordOrStarred* elem;
26607 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026608 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026609 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
26610 &&
26611 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026612 )
26613 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026614 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26615 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026616 goto done;
26617 }
26618 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026619 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
26620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026621 }
26622 _res = NULL;
26623 done:
26624 D(p->level--);
26625 return _res;
26626}
26627
Brandt Bucher145bf262021-02-26 14:51:55 -080026628// _loop0_132: ',' kwarg_or_double_starred
26629static asdl_seq *
26630_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026631{
26632 D(p->level++);
26633 if (p->error_indicator) {
26634 D(p->level--);
26635 return NULL;
26636 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026637 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026638 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026639 int _start_mark = p->mark;
26640 void **_children = PyMem_Malloc(sizeof(void *));
26641 if (!_children) {
26642 p->error_indicator = 1;
26643 PyErr_NoMemory();
26644 D(p->level--);
26645 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026646 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026647 Py_ssize_t _children_capacity = 1;
26648 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026649 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026650 if (p->error_indicator) {
26651 D(p->level--);
26652 return NULL;
26653 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026654 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 +010026655 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026656 KeywordOrStarred* elem;
26657 while (
26658 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26659 &&
26660 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026661 )
26662 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026663 _res = elem;
26664 if (_res == NULL && PyErr_Occurred()) {
26665 p->error_indicator = 1;
26666 PyMem_Free(_children);
26667 D(p->level--);
26668 return NULL;
26669 }
26670 if (_n == _children_capacity) {
26671 _children_capacity *= 2;
26672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26673 if (!_new_children) {
26674 p->error_indicator = 1;
26675 PyErr_NoMemory();
26676 D(p->level--);
26677 return NULL;
26678 }
26679 _children = _new_children;
26680 }
26681 _children[_n++] = _res;
26682 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026683 }
26684 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026685 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
26686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026687 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026688 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26689 if (!_seq) {
26690 PyMem_Free(_children);
26691 p->error_indicator = 1;
26692 PyErr_NoMemory();
26693 D(p->level--);
26694 return NULL;
26695 }
26696 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26697 PyMem_Free(_children);
26698 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
26699 D(p->level--);
26700 return _seq;
26701}
26702
26703// _gather_131: kwarg_or_double_starred _loop0_132
26704static asdl_seq *
26705_gather_131_rule(Parser *p)
26706{
26707 D(p->level++);
26708 if (p->error_indicator) {
26709 D(p->level--);
26710 return NULL;
26711 }
26712 asdl_seq * _res = NULL;
26713 int _mark = p->mark;
26714 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026715 if (p->error_indicator) {
26716 D(p->level--);
26717 return NULL;
26718 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026719 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26720 KeywordOrStarred* elem;
26721 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026722 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026723 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26724 &&
26725 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026726 )
26727 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026728 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26729 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026730 goto done;
26731 }
26732 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026733 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
26734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026735 }
26736 _res = NULL;
26737 done:
26738 D(p->level--);
26739 return _res;
26740}
26741
Brandt Bucher145bf262021-02-26 14:51:55 -080026742// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026743static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026744_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026745{
26746 D(p->level++);
26747 if (p->error_indicator) {
26748 D(p->level--);
26749 return NULL;
26750 }
26751 void *_res = NULL;
26752 int _mark = p->mark;
26753 int _start_mark = p->mark;
26754 void **_children = PyMem_Malloc(sizeof(void *));
26755 if (!_children) {
26756 p->error_indicator = 1;
26757 PyErr_NoMemory();
26758 D(p->level--);
26759 return NULL;
26760 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026761 Py_ssize_t _children_capacity = 1;
26762 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026763 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026764 if (p->error_indicator) {
26765 D(p->level--);
26766 return NULL;
26767 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026768 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26769 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026770 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026771 (_tmp_173_var = _tmp_173_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026772 )
26773 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026774 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026775 if (_n == _children_capacity) {
26776 _children_capacity *= 2;
26777 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26778 if (!_new_children) {
26779 p->error_indicator = 1;
26780 PyErr_NoMemory();
26781 D(p->level--);
26782 return NULL;
26783 }
26784 _children = _new_children;
26785 }
26786 _children[_n++] = _res;
26787 _mark = p->mark;
26788 }
26789 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026790 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026793 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794 if (!_seq) {
26795 PyMem_Free(_children);
26796 p->error_indicator = 1;
26797 PyErr_NoMemory();
26798 D(p->level--);
26799 return NULL;
26800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026801 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026802 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026803 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026804 D(p->level--);
26805 return _seq;
26806}
26807
Brandt Bucher145bf262021-02-26 14:51:55 -080026808// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026809static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026810_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026811{
26812 D(p->level++);
26813 if (p->error_indicator) {
26814 D(p->level--);
26815 return NULL;
26816 }
26817 void *_res = NULL;
26818 int _mark = p->mark;
26819 int _start_mark = p->mark;
26820 void **_children = PyMem_Malloc(sizeof(void *));
26821 if (!_children) {
26822 p->error_indicator = 1;
26823 PyErr_NoMemory();
26824 D(p->level--);
26825 return NULL;
26826 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026827 Py_ssize_t _children_capacity = 1;
26828 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026829 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026830 if (p->error_indicator) {
26831 D(p->level--);
26832 return NULL;
26833 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026834 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
26835 Token * _literal;
26836 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026837 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026838 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26839 &&
26840 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026841 )
26842 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026843 _res = elem;
26844 if (_res == NULL && PyErr_Occurred()) {
26845 p->error_indicator = 1;
26846 PyMem_Free(_children);
26847 D(p->level--);
26848 return NULL;
26849 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026850 if (_n == _children_capacity) {
26851 _children_capacity *= 2;
26852 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26853 if (!_new_children) {
26854 p->error_indicator = 1;
26855 PyErr_NoMemory();
26856 D(p->level--);
26857 return NULL;
26858 }
26859 _children = _new_children;
26860 }
26861 _children[_n++] = _res;
26862 _mark = p->mark;
26863 }
26864 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026865 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026868 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026869 if (!_seq) {
26870 PyMem_Free(_children);
26871 p->error_indicator = 1;
26872 PyErr_NoMemory();
26873 D(p->level--);
26874 return NULL;
26875 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026876 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026877 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026878 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026879 D(p->level--);
26880 return _seq;
26881}
26882
Brandt Bucher145bf262021-02-26 14:51:55 -080026883// _gather_134: star_target _loop0_135
26884static asdl_seq *
26885_gather_134_rule(Parser *p)
26886{
26887 D(p->level++);
26888 if (p->error_indicator) {
26889 D(p->level--);
26890 return NULL;
26891 }
26892 asdl_seq * _res = NULL;
26893 int _mark = p->mark;
26894 { // star_target _loop0_135
26895 if (p->error_indicator) {
26896 D(p->level--);
26897 return NULL;
26898 }
26899 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26900 expr_ty elem;
26901 asdl_seq * seq;
26902 if (
26903 (elem = star_target_rule(p)) // star_target
26904 &&
26905 (seq = _loop0_135_rule(p)) // _loop0_135
26906 )
26907 {
26908 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26909 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26910 goto done;
26911 }
26912 p->mark = _mark;
26913 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
26914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
26915 }
26916 _res = NULL;
26917 done:
26918 D(p->level--);
26919 return _res;
26920}
26921
26922// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026923static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026924_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026925{
26926 D(p->level++);
26927 if (p->error_indicator) {
26928 D(p->level--);
26929 return NULL;
26930 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026931 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026932 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026933 int _start_mark = p->mark;
26934 void **_children = PyMem_Malloc(sizeof(void *));
26935 if (!_children) {
26936 p->error_indicator = 1;
26937 PyErr_NoMemory();
26938 D(p->level--);
26939 return NULL;
26940 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026941 Py_ssize_t _children_capacity = 1;
26942 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026943 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026944 if (p->error_indicator) {
26945 D(p->level--);
26946 return NULL;
26947 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026948 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26949 void *_tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026950 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026951 (_tmp_174_var = _tmp_174_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026952 )
26953 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026954 _res = _tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026955 if (_n == _children_capacity) {
26956 _children_capacity *= 2;
26957 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26958 if (!_new_children) {
26959 p->error_indicator = 1;
26960 PyErr_NoMemory();
26961 D(p->level--);
26962 return NULL;
26963 }
26964 _children = _new_children;
26965 }
26966 _children[_n++] = _res;
26967 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968 }
26969 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026970 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026972 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026973 if (_n == 0 || p->error_indicator) {
26974 PyMem_Free(_children);
26975 D(p->level--);
26976 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026978 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26979 if (!_seq) {
26980 PyMem_Free(_children);
26981 p->error_indicator = 1;
26982 PyErr_NoMemory();
26983 D(p->level--);
26984 return NULL;
26985 }
26986 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26987 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026988 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026989 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026990 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026991}
26992
Brandt Bucher145bf262021-02-26 14:51:55 -080026993// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026994static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026995_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026996{
26997 D(p->level++);
26998 if (p->error_indicator) {
26999 D(p->level--);
27000 return NULL;
27001 }
27002 void * _res = NULL;
27003 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027004 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027005 if (p->error_indicator) {
27006 D(p->level--);
27007 return NULL;
27008 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027009 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27010 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027011 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027012 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027013 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027014 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027015 )
27016 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027017 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
27018 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027019 goto done;
27020 }
27021 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000027022 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027024 }
27025 _res = NULL;
27026 done:
27027 D(p->level--);
27028 return _res;
27029}
27030
Brandt Bucher145bf262021-02-26 14:51:55 -080027031// _loop0_139: ',' del_target
27032static asdl_seq *
27033_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027034{
27035 D(p->level++);
27036 if (p->error_indicator) {
27037 D(p->level--);
27038 return NULL;
27039 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027040 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027041 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027042 int _start_mark = p->mark;
27043 void **_children = PyMem_Malloc(sizeof(void *));
27044 if (!_children) {
27045 p->error_indicator = 1;
27046 PyErr_NoMemory();
27047 D(p->level--);
27048 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027049 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027050 Py_ssize_t _children_capacity = 1;
27051 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027052 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027053 if (p->error_indicator) {
27054 D(p->level--);
27055 return NULL;
27056 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027057 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027058 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027059 expr_ty elem;
27060 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027061 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27062 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027063 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027064 )
27065 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027066 _res = elem;
27067 if (_res == NULL && PyErr_Occurred()) {
27068 p->error_indicator = 1;
27069 PyMem_Free(_children);
27070 D(p->level--);
27071 return NULL;
27072 }
27073 if (_n == _children_capacity) {
27074 _children_capacity *= 2;
27075 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27076 if (!_new_children) {
27077 p->error_indicator = 1;
27078 PyErr_NoMemory();
27079 D(p->level--);
27080 return NULL;
27081 }
27082 _children = _new_children;
27083 }
27084 _children[_n++] = _res;
27085 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027086 }
27087 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027088 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
27089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027090 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027091 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27092 if (!_seq) {
27093 PyMem_Free(_children);
27094 p->error_indicator = 1;
27095 PyErr_NoMemory();
27096 D(p->level--);
27097 return NULL;
27098 }
27099 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27100 PyMem_Free(_children);
27101 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027102 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080027103 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027104}
27105
Brandt Bucher145bf262021-02-26 14:51:55 -080027106// _gather_138: del_target _loop0_139
27107static asdl_seq *
27108_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027109{
27110 D(p->level++);
27111 if (p->error_indicator) {
27112 D(p->level--);
27113 return NULL;
27114 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027115 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027116 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027117 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027118 if (p->error_indicator) {
27119 D(p->level--);
27120 return NULL;
27121 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027122 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27123 expr_ty elem;
27124 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027125 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027126 (elem = del_target_rule(p)) // del_target
27127 &&
27128 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000027129 )
27130 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027131 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
27132 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000027133 goto done;
27134 }
27135 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027136 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
27137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027138 }
27139 _res = NULL;
27140 done:
27141 D(p->level--);
27142 return _res;
27143}
27144
Brandt Bucher145bf262021-02-26 14:51:55 -080027145// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027146static asdl_seq *
27147_loop0_141_rule(Parser *p)
27148{
27149 D(p->level++);
27150 if (p->error_indicator) {
27151 D(p->level--);
27152 return NULL;
27153 }
27154 void *_res = NULL;
27155 int _mark = p->mark;
27156 int _start_mark = p->mark;
27157 void **_children = PyMem_Malloc(sizeof(void *));
27158 if (!_children) {
27159 p->error_indicator = 1;
27160 PyErr_NoMemory();
27161 D(p->level--);
27162 return NULL;
27163 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027164 Py_ssize_t _children_capacity = 1;
27165 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027166 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027167 if (p->error_indicator) {
27168 D(p->level--);
27169 return NULL;
27170 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027171 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027172 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080027173 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027174 while (
27175 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27176 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027177 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027178 )
27179 {
27180 _res = elem;
27181 if (_res == NULL && PyErr_Occurred()) {
27182 p->error_indicator = 1;
27183 PyMem_Free(_children);
27184 D(p->level--);
27185 return NULL;
27186 }
27187 if (_n == _children_capacity) {
27188 _children_capacity *= 2;
27189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27190 if (!_new_children) {
27191 p->error_indicator = 1;
27192 PyErr_NoMemory();
27193 D(p->level--);
27194 return NULL;
27195 }
27196 _children = _new_children;
27197 }
27198 _children[_n++] = _res;
27199 _mark = p->mark;
27200 }
27201 p->mark = _mark;
27202 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027204 }
27205 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27206 if (!_seq) {
27207 PyMem_Free(_children);
27208 p->error_indicator = 1;
27209 PyErr_NoMemory();
27210 D(p->level--);
27211 return NULL;
27212 }
27213 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27214 PyMem_Free(_children);
27215 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
27216 D(p->level--);
27217 return _seq;
27218}
27219
Brandt Bucher145bf262021-02-26 14:51:55 -080027220// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027221static asdl_seq *
27222_gather_140_rule(Parser *p)
27223{
27224 D(p->level++);
27225 if (p->error_indicator) {
27226 D(p->level--);
27227 return NULL;
27228 }
27229 asdl_seq * _res = NULL;
27230 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027231 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027232 if (p->error_indicator) {
27233 D(p->level--);
27234 return NULL;
27235 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027236 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27237 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027238 asdl_seq * seq;
27239 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027241 &&
27242 (seq = _loop0_141_rule(p)) // _loop0_141
27243 )
27244 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027245 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 +000027246 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27247 goto done;
27248 }
27249 p->mark = _mark;
27250 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027252 }
27253 _res = NULL;
27254 done:
27255 D(p->level--);
27256 return _res;
27257}
27258
Brandt Bucher145bf262021-02-26 14:51:55 -080027259// _tmp_142: args | expression for_if_clauses
27260static void *
27261_tmp_142_rule(Parser *p)
27262{
27263 D(p->level++);
27264 if (p->error_indicator) {
27265 D(p->level--);
27266 return NULL;
27267 }
27268 void * _res = NULL;
27269 int _mark = p->mark;
27270 { // args
27271 if (p->error_indicator) {
27272 D(p->level--);
27273 return NULL;
27274 }
27275 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27276 expr_ty args_var;
27277 if (
27278 (args_var = args_rule(p)) // args
27279 )
27280 {
27281 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27282 _res = args_var;
27283 goto done;
27284 }
27285 p->mark = _mark;
27286 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27288 }
27289 { // expression for_if_clauses
27290 if (p->error_indicator) {
27291 D(p->level--);
27292 return NULL;
27293 }
27294 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27295 expr_ty expression_var;
27296 asdl_comprehension_seq* for_if_clauses_var;
27297 if (
27298 (expression_var = expression_rule(p)) // expression
27299 &&
27300 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
27301 )
27302 {
27303 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27304 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
27305 goto done;
27306 }
27307 p->mark = _mark;
27308 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
27310 }
27311 _res = NULL;
27312 done:
27313 D(p->level--);
27314 return _res;
27315}
27316
27317// _loop0_143: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027318static asdl_seq *
27319_loop0_143_rule(Parser *p)
27320{
27321 D(p->level++);
27322 if (p->error_indicator) {
27323 D(p->level--);
27324 return NULL;
27325 }
27326 void *_res = NULL;
27327 int _mark = p->mark;
27328 int _start_mark = p->mark;
27329 void **_children = PyMem_Malloc(sizeof(void *));
27330 if (!_children) {
27331 p->error_indicator = 1;
27332 PyErr_NoMemory();
27333 D(p->level--);
27334 return NULL;
27335 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027336 Py_ssize_t _children_capacity = 1;
27337 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027338 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027339 if (p->error_indicator) {
27340 D(p->level--);
27341 return NULL;
27342 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027343 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
27344 asdl_expr_seq* star_named_expressions_var;
27345 while (
27346 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
27347 )
27348 {
27349 _res = star_named_expressions_var;
27350 if (_n == _children_capacity) {
27351 _children_capacity *= 2;
27352 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27353 if (!_new_children) {
27354 p->error_indicator = 1;
27355 PyErr_NoMemory();
27356 D(p->level--);
27357 return NULL;
27358 }
27359 _children = _new_children;
27360 }
27361 _children[_n++] = _res;
27362 _mark = p->mark;
27363 }
27364 p->mark = _mark;
27365 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
27366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
27367 }
27368 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27369 if (!_seq) {
27370 PyMem_Free(_children);
27371 p->error_indicator = 1;
27372 PyErr_NoMemory();
27373 D(p->level--);
27374 return NULL;
27375 }
27376 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27377 PyMem_Free(_children);
27378 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
27379 D(p->level--);
27380 return _seq;
27381}
27382
27383// _loop0_144: (star_targets '=')
27384static asdl_seq *
27385_loop0_144_rule(Parser *p)
27386{
27387 D(p->level++);
27388 if (p->error_indicator) {
27389 D(p->level--);
27390 return NULL;
27391 }
27392 void *_res = NULL;
27393 int _mark = p->mark;
27394 int _start_mark = p->mark;
27395 void **_children = PyMem_Malloc(sizeof(void *));
27396 if (!_children) {
27397 p->error_indicator = 1;
27398 PyErr_NoMemory();
27399 D(p->level--);
27400 return NULL;
27401 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027402 Py_ssize_t _children_capacity = 1;
27403 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027404 { // (star_targets '=')
27405 if (p->error_indicator) {
27406 D(p->level--);
27407 return NULL;
27408 }
27409 D(fprintf(stderr, "%*c> _loop0_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27410 void *_tmp_175_var;
27411 while (
27412 (_tmp_175_var = _tmp_175_rule(p)) // star_targets '='
27413 )
27414 {
27415 _res = _tmp_175_var;
27416 if (_n == _children_capacity) {
27417 _children_capacity *= 2;
27418 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27419 if (!_new_children) {
27420 p->error_indicator = 1;
27421 PyErr_NoMemory();
27422 D(p->level--);
27423 return NULL;
27424 }
27425 _children = _new_children;
27426 }
27427 _children[_n++] = _res;
27428 _mark = p->mark;
27429 }
27430 p->mark = _mark;
27431 D(fprintf(stderr, "%*c%s _loop0_144[%d-%d]: %s failed!\n", p->level, ' ',
27432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27433 }
27434 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27435 if (!_seq) {
27436 PyMem_Free(_children);
27437 p->error_indicator = 1;
27438 PyErr_NoMemory();
27439 D(p->level--);
27440 return NULL;
27441 }
27442 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27443 PyMem_Free(_children);
27444 _PyPegen_insert_memo(p, _start_mark, _loop0_144_type, _seq);
27445 D(p->level--);
27446 return _seq;
27447}
27448
27449// _loop0_145: (star_targets '=')
27450static asdl_seq *
27451_loop0_145_rule(Parser *p)
27452{
27453 D(p->level++);
27454 if (p->error_indicator) {
27455 D(p->level--);
27456 return NULL;
27457 }
27458 void *_res = NULL;
27459 int _mark = p->mark;
27460 int _start_mark = p->mark;
27461 void **_children = PyMem_Malloc(sizeof(void *));
27462 if (!_children) {
27463 p->error_indicator = 1;
27464 PyErr_NoMemory();
27465 D(p->level--);
27466 return NULL;
27467 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027468 Py_ssize_t _children_capacity = 1;
27469 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027470 { // (star_targets '=')
27471 if (p->error_indicator) {
27472 D(p->level--);
27473 return NULL;
27474 }
27475 D(fprintf(stderr, "%*c> _loop0_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27476 void *_tmp_176_var;
27477 while (
27478 (_tmp_176_var = _tmp_176_rule(p)) // star_targets '='
27479 )
27480 {
27481 _res = _tmp_176_var;
27482 if (_n == _children_capacity) {
27483 _children_capacity *= 2;
27484 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27485 if (!_new_children) {
27486 p->error_indicator = 1;
27487 PyErr_NoMemory();
27488 D(p->level--);
27489 return NULL;
27490 }
27491 _children = _new_children;
27492 }
27493 _children[_n++] = _res;
27494 _mark = p->mark;
27495 }
27496 p->mark = _mark;
27497 D(fprintf(stderr, "%*c%s _loop0_145[%d-%d]: %s failed!\n", p->level, ' ',
27498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27499 }
27500 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27501 if (!_seq) {
27502 PyMem_Free(_children);
27503 p->error_indicator = 1;
27504 PyErr_NoMemory();
27505 D(p->level--);
27506 return NULL;
27507 }
27508 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27509 PyMem_Free(_children);
27510 _PyPegen_insert_memo(p, _start_mark, _loop0_145_type, _seq);
27511 D(p->level--);
27512 return _seq;
27513}
27514
27515// _tmp_146: yield_expr | star_expressions
27516static void *
27517_tmp_146_rule(Parser *p)
27518{
27519 D(p->level++);
27520 if (p->error_indicator) {
27521 D(p->level--);
27522 return NULL;
27523 }
27524 void * _res = NULL;
27525 int _mark = p->mark;
27526 { // yield_expr
27527 if (p->error_indicator) {
27528 D(p->level--);
27529 return NULL;
27530 }
27531 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27532 expr_ty yield_expr_var;
27533 if (
27534 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27535 )
27536 {
27537 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27538 _res = yield_expr_var;
27539 goto done;
27540 }
27541 p->mark = _mark;
27542 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27544 }
27545 { // star_expressions
27546 if (p->error_indicator) {
27547 D(p->level--);
27548 return NULL;
27549 }
27550 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27551 expr_ty star_expressions_var;
27552 if (
27553 (star_expressions_var = star_expressions_rule(p)) // star_expressions
27554 )
27555 {
27556 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27557 _res = star_expressions_var;
27558 goto done;
27559 }
27560 p->mark = _mark;
27561 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
27563 }
27564 _res = NULL;
27565 done:
27566 D(p->level--);
27567 return _res;
27568}
27569
27570// _tmp_147: '[' | '(' | '{'
27571static void *
27572_tmp_147_rule(Parser *p)
27573{
27574 D(p->level++);
27575 if (p->error_indicator) {
27576 D(p->level--);
27577 return NULL;
27578 }
27579 void * _res = NULL;
27580 int _mark = p->mark;
27581 { // '['
27582 if (p->error_indicator) {
27583 D(p->level--);
27584 return NULL;
27585 }
27586 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27587 Token * _literal;
27588 if (
27589 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27590 )
27591 {
27592 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27593 _res = _literal;
27594 goto done;
27595 }
27596 p->mark = _mark;
27597 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27599 }
27600 { // '('
27601 if (p->error_indicator) {
27602 D(p->level--);
27603 return NULL;
27604 }
27605 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
27606 Token * _literal;
27607 if (
27608 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27609 )
27610 {
27611 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
27612 _res = _literal;
27613 goto done;
27614 }
27615 p->mark = _mark;
27616 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
27618 }
27619 { // '{'
27620 if (p->error_indicator) {
27621 D(p->level--);
27622 return NULL;
27623 }
27624 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27625 Token * _literal;
27626 if (
27627 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27628 )
27629 {
27630 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27631 _res = _literal;
27632 goto done;
27633 }
27634 p->mark = _mark;
27635 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27637 }
27638 _res = NULL;
27639 done:
27640 D(p->level--);
27641 return _res;
27642}
27643
27644// _tmp_148: '[' | '{'
27645static void *
27646_tmp_148_rule(Parser *p)
27647{
27648 D(p->level++);
27649 if (p->error_indicator) {
27650 D(p->level--);
27651 return NULL;
27652 }
27653 void * _res = NULL;
27654 int _mark = p->mark;
27655 { // '['
27656 if (p->error_indicator) {
27657 D(p->level--);
27658 return NULL;
27659 }
27660 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27661 Token * _literal;
27662 if (
27663 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27664 )
27665 {
27666 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27667 _res = _literal;
27668 goto done;
27669 }
27670 p->mark = _mark;
27671 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27673 }
27674 { // '{'
27675 if (p->error_indicator) {
27676 D(p->level--);
27677 return NULL;
27678 }
27679 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27680 Token * _literal;
27681 if (
27682 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27683 )
27684 {
27685 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27686 _res = _literal;
27687 goto done;
27688 }
27689 p->mark = _mark;
27690 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27692 }
27693 _res = NULL;
27694 done:
27695 D(p->level--);
27696 return _res;
27697}
27698
27699// _loop0_149: param_no_default
27700static asdl_seq *
27701_loop0_149_rule(Parser *p)
27702{
27703 D(p->level++);
27704 if (p->error_indicator) {
27705 D(p->level--);
27706 return NULL;
27707 }
27708 void *_res = NULL;
27709 int _mark = p->mark;
27710 int _start_mark = p->mark;
27711 void **_children = PyMem_Malloc(sizeof(void *));
27712 if (!_children) {
27713 p->error_indicator = 1;
27714 PyErr_NoMemory();
27715 D(p->level--);
27716 return NULL;
27717 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027718 Py_ssize_t _children_capacity = 1;
27719 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027720 { // param_no_default
27721 if (p->error_indicator) {
27722 D(p->level--);
27723 return NULL;
27724 }
27725 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
27726 arg_ty param_no_default_var;
27727 while (
27728 (param_no_default_var = param_no_default_rule(p)) // param_no_default
27729 )
27730 {
27731 _res = param_no_default_var;
27732 if (_n == _children_capacity) {
27733 _children_capacity *= 2;
27734 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27735 if (!_new_children) {
27736 p->error_indicator = 1;
27737 PyErr_NoMemory();
27738 D(p->level--);
27739 return NULL;
27740 }
27741 _children = _new_children;
27742 }
27743 _children[_n++] = _res;
27744 _mark = p->mark;
27745 }
27746 p->mark = _mark;
27747 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
27748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
27749 }
27750 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27751 if (!_seq) {
27752 PyMem_Free(_children);
27753 p->error_indicator = 1;
27754 PyErr_NoMemory();
27755 D(p->level--);
27756 return NULL;
27757 }
27758 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27759 PyMem_Free(_children);
27760 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
27761 D(p->level--);
27762 return _seq;
27763}
27764
27765// _loop1_150: param_with_default
27766static asdl_seq *
27767_loop1_150_rule(Parser *p)
27768{
27769 D(p->level++);
27770 if (p->error_indicator) {
27771 D(p->level--);
27772 return NULL;
27773 }
27774 void *_res = NULL;
27775 int _mark = p->mark;
27776 int _start_mark = p->mark;
27777 void **_children = PyMem_Malloc(sizeof(void *));
27778 if (!_children) {
27779 p->error_indicator = 1;
27780 PyErr_NoMemory();
27781 D(p->level--);
27782 return NULL;
27783 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027784 Py_ssize_t _children_capacity = 1;
27785 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027786 { // param_with_default
27787 if (p->error_indicator) {
27788 D(p->level--);
27789 return NULL;
27790 }
27791 D(fprintf(stderr, "%*c> _loop1_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
27792 NameDefaultPair* param_with_default_var;
27793 while (
27794 (param_with_default_var = param_with_default_rule(p)) // param_with_default
27795 )
27796 {
27797 _res = param_with_default_var;
27798 if (_n == _children_capacity) {
27799 _children_capacity *= 2;
27800 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27801 if (!_new_children) {
27802 p->error_indicator = 1;
27803 PyErr_NoMemory();
27804 D(p->level--);
27805 return NULL;
27806 }
27807 _children = _new_children;
27808 }
27809 _children[_n++] = _res;
27810 _mark = p->mark;
27811 }
27812 p->mark = _mark;
27813 D(fprintf(stderr, "%*c%s _loop1_150[%d-%d]: %s failed!\n", p->level, ' ',
27814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
27815 }
27816 if (_n == 0 || p->error_indicator) {
27817 PyMem_Free(_children);
27818 D(p->level--);
27819 return NULL;
27820 }
27821 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27822 if (!_seq) {
27823 PyMem_Free(_children);
27824 p->error_indicator = 1;
27825 PyErr_NoMemory();
27826 D(p->level--);
27827 return NULL;
27828 }
27829 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27830 PyMem_Free(_children);
27831 _PyPegen_insert_memo(p, _start_mark, _loop1_150_type, _seq);
27832 D(p->level--);
27833 return _seq;
27834}
27835
27836// _loop0_151: lambda_param_no_default
27837static asdl_seq *
27838_loop0_151_rule(Parser *p)
27839{
27840 D(p->level++);
27841 if (p->error_indicator) {
27842 D(p->level--);
27843 return NULL;
27844 }
27845 void *_res = NULL;
27846 int _mark = p->mark;
27847 int _start_mark = p->mark;
27848 void **_children = PyMem_Malloc(sizeof(void *));
27849 if (!_children) {
27850 p->error_indicator = 1;
27851 PyErr_NoMemory();
27852 D(p->level--);
27853 return NULL;
27854 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027855 Py_ssize_t _children_capacity = 1;
27856 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027857 { // lambda_param_no_default
27858 if (p->error_indicator) {
27859 D(p->level--);
27860 return NULL;
27861 }
27862 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
27863 arg_ty lambda_param_no_default_var;
27864 while (
27865 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27866 )
27867 {
27868 _res = lambda_param_no_default_var;
27869 if (_n == _children_capacity) {
27870 _children_capacity *= 2;
27871 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27872 if (!_new_children) {
27873 p->error_indicator = 1;
27874 PyErr_NoMemory();
27875 D(p->level--);
27876 return NULL;
27877 }
27878 _children = _new_children;
27879 }
27880 _children[_n++] = _res;
27881 _mark = p->mark;
27882 }
27883 p->mark = _mark;
27884 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
27885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27886 }
27887 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27888 if (!_seq) {
27889 PyMem_Free(_children);
27890 p->error_indicator = 1;
27891 PyErr_NoMemory();
27892 D(p->level--);
27893 return NULL;
27894 }
27895 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27896 PyMem_Free(_children);
27897 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
27898 D(p->level--);
27899 return _seq;
27900}
27901
27902// _loop1_152: lambda_param_with_default
27903static asdl_seq *
27904_loop1_152_rule(Parser *p)
27905{
27906 D(p->level++);
27907 if (p->error_indicator) {
27908 D(p->level--);
27909 return NULL;
27910 }
27911 void *_res = NULL;
27912 int _mark = p->mark;
27913 int _start_mark = p->mark;
27914 void **_children = PyMem_Malloc(sizeof(void *));
27915 if (!_children) {
27916 p->error_indicator = 1;
27917 PyErr_NoMemory();
27918 D(p->level--);
27919 return NULL;
27920 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027921 Py_ssize_t _children_capacity = 1;
27922 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027923 { // lambda_param_with_default
27924 if (p->error_indicator) {
27925 D(p->level--);
27926 return NULL;
27927 }
27928 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
27929 NameDefaultPair* lambda_param_with_default_var;
27930 while (
27931 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27932 )
27933 {
27934 _res = lambda_param_with_default_var;
27935 if (_n == _children_capacity) {
27936 _children_capacity *= 2;
27937 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27938 if (!_new_children) {
27939 p->error_indicator = 1;
27940 PyErr_NoMemory();
27941 D(p->level--);
27942 return NULL;
27943 }
27944 _children = _new_children;
27945 }
27946 _children[_n++] = _res;
27947 _mark = p->mark;
27948 }
27949 p->mark = _mark;
27950 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
27951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27952 }
27953 if (_n == 0 || p->error_indicator) {
27954 PyMem_Free(_children);
27955 D(p->level--);
27956 return NULL;
27957 }
27958 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27959 if (!_seq) {
27960 PyMem_Free(_children);
27961 p->error_indicator = 1;
27962 PyErr_NoMemory();
27963 D(p->level--);
27964 return NULL;
27965 }
27966 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27967 PyMem_Free(_children);
27968 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
27969 D(p->level--);
27970 return _seq;
27971}
27972
27973// _tmp_153: ')' | ',' (')' | '**')
27974static void *
27975_tmp_153_rule(Parser *p)
27976{
27977 D(p->level++);
27978 if (p->error_indicator) {
27979 D(p->level--);
27980 return NULL;
27981 }
27982 void * _res = NULL;
27983 int _mark = p->mark;
27984 { // ')'
27985 if (p->error_indicator) {
27986 D(p->level--);
27987 return NULL;
27988 }
27989 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
27990 Token * _literal;
27991 if (
27992 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
27993 )
27994 {
27995 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
27996 _res = _literal;
27997 goto done;
27998 }
27999 p->mark = _mark;
28000 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
28001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28002 }
28003 { // ',' (')' | '**')
28004 if (p->error_indicator) {
28005 D(p->level--);
28006 return NULL;
28007 }
28008 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
28009 Token * _literal;
28010 void *_tmp_177_var;
28011 if (
28012 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28013 &&
28014 (_tmp_177_var = _tmp_177_rule(p)) // ')' | '**'
28015 )
28016 {
28017 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
28018 _res = _PyPegen_dummy_name(p, _literal, _tmp_177_var);
28019 goto done;
28020 }
28021 p->mark = _mark;
28022 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
28023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
28024 }
28025 _res = NULL;
28026 done:
28027 D(p->level--);
28028 return _res;
28029}
28030
28031// _tmp_154: ':' | ',' (':' | '**')
28032static void *
28033_tmp_154_rule(Parser *p)
28034{
28035 D(p->level++);
28036 if (p->error_indicator) {
28037 D(p->level--);
28038 return NULL;
28039 }
28040 void * _res = NULL;
28041 int _mark = p->mark;
28042 { // ':'
28043 if (p->error_indicator) {
28044 D(p->level--);
28045 return NULL;
28046 }
28047 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
28048 Token * _literal;
28049 if (
28050 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28051 )
28052 {
28053 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
28054 _res = _literal;
28055 goto done;
28056 }
28057 p->mark = _mark;
28058 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
28059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28060 }
28061 { // ',' (':' | '**')
28062 if (p->error_indicator) {
28063 D(p->level--);
28064 return NULL;
28065 }
28066 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
28067 Token * _literal;
28068 void *_tmp_178_var;
28069 if (
28070 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28071 &&
28072 (_tmp_178_var = _tmp_178_rule(p)) // ':' | '**'
28073 )
28074 {
28075 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
28076 _res = _PyPegen_dummy_name(p, _literal, _tmp_178_var);
28077 goto done;
28078 }
28079 p->mark = _mark;
28080 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
28081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
28082 }
28083 _res = NULL;
28084 done:
28085 D(p->level--);
28086 return _res;
28087}
28088
28089// _tmp_155: ',' | ')' | ':'
28090static void *
28091_tmp_155_rule(Parser *p)
28092{
28093 D(p->level++);
28094 if (p->error_indicator) {
28095 D(p->level--);
28096 return NULL;
28097 }
28098 void * _res = NULL;
28099 int _mark = p->mark;
28100 { // ','
28101 if (p->error_indicator) {
28102 D(p->level--);
28103 return NULL;
28104 }
28105 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
28106 Token * _literal;
28107 if (
28108 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28109 )
28110 {
28111 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
28112 _res = _literal;
28113 goto done;
28114 }
28115 p->mark = _mark;
28116 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
28118 }
28119 { // ')'
28120 if (p->error_indicator) {
28121 D(p->level--);
28122 return NULL;
28123 }
28124 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
28125 Token * _literal;
28126 if (
28127 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28128 )
28129 {
28130 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
28131 _res = _literal;
28132 goto done;
28133 }
28134 p->mark = _mark;
28135 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
28137 }
28138 { // ':'
28139 if (p->error_indicator) {
28140 D(p->level--);
28141 return NULL;
28142 }
28143 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
28144 Token * _literal;
28145 if (
28146 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28147 )
28148 {
28149 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
28150 _res = _literal;
28151 goto done;
28152 }
28153 p->mark = _mark;
28154 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
28155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
28156 }
28157 _res = NULL;
28158 done:
28159 D(p->level--);
28160 return _res;
28161}
28162
28163// _loop0_157: ',' (expression ['as' star_target])
28164static asdl_seq *
28165_loop0_157_rule(Parser *p)
28166{
28167 D(p->level++);
28168 if (p->error_indicator) {
28169 D(p->level--);
28170 return NULL;
28171 }
28172 void *_res = NULL;
28173 int _mark = p->mark;
28174 int _start_mark = p->mark;
28175 void **_children = PyMem_Malloc(sizeof(void *));
28176 if (!_children) {
28177 p->error_indicator = 1;
28178 PyErr_NoMemory();
28179 D(p->level--);
28180 return NULL;
28181 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028182 Py_ssize_t _children_capacity = 1;
28183 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028184 { // ',' (expression ['as' star_target])
28185 if (p->error_indicator) {
28186 D(p->level--);
28187 return NULL;
28188 }
28189 D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028190 Token * _literal;
28191 void *elem;
28192 while (
28193 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28194 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028195 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028196 )
28197 {
28198 _res = elem;
28199 if (_res == NULL && PyErr_Occurred()) {
28200 p->error_indicator = 1;
28201 PyMem_Free(_children);
28202 D(p->level--);
28203 return NULL;
28204 }
28205 if (_n == _children_capacity) {
28206 _children_capacity *= 2;
28207 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28208 if (!_new_children) {
28209 p->error_indicator = 1;
28210 PyErr_NoMemory();
28211 D(p->level--);
28212 return NULL;
28213 }
28214 _children = _new_children;
28215 }
28216 _children[_n++] = _res;
28217 _mark = p->mark;
28218 }
28219 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028220 D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
28221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
28222 }
28223 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28224 if (!_seq) {
28225 PyMem_Free(_children);
28226 p->error_indicator = 1;
28227 PyErr_NoMemory();
28228 D(p->level--);
28229 return NULL;
28230 }
28231 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28232 PyMem_Free(_children);
28233 _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
28234 D(p->level--);
28235 return _seq;
28236}
28237
28238// _gather_156: (expression ['as' star_target]) _loop0_157
28239static asdl_seq *
28240_gather_156_rule(Parser *p)
28241{
28242 D(p->level++);
28243 if (p->error_indicator) {
28244 D(p->level--);
28245 return NULL;
28246 }
28247 asdl_seq * _res = NULL;
28248 int _mark = p->mark;
28249 { // (expression ['as' star_target]) _loop0_157
28250 if (p->error_indicator) {
28251 D(p->level--);
28252 return NULL;
28253 }
28254 D(fprintf(stderr, "%*c> _gather_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28255 void *elem;
28256 asdl_seq * seq;
28257 if (
28258 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
28259 &&
28260 (seq = _loop0_157_rule(p)) // _loop0_157
28261 )
28262 {
28263 D(fprintf(stderr, "%*c+ _gather_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28264 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28265 goto done;
28266 }
28267 p->mark = _mark;
28268 D(fprintf(stderr, "%*c%s _gather_156[%d-%d]: %s failed!\n", p->level, ' ',
28269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28270 }
28271 _res = NULL;
28272 done:
28273 D(p->level--);
28274 return _res;
28275}
28276
28277// _loop0_159: ',' (expressions ['as' star_target])
28278static asdl_seq *
28279_loop0_159_rule(Parser *p)
28280{
28281 D(p->level++);
28282 if (p->error_indicator) {
28283 D(p->level--);
28284 return NULL;
28285 }
28286 void *_res = NULL;
28287 int _mark = p->mark;
28288 int _start_mark = p->mark;
28289 void **_children = PyMem_Malloc(sizeof(void *));
28290 if (!_children) {
28291 p->error_indicator = 1;
28292 PyErr_NoMemory();
28293 D(p->level--);
28294 return NULL;
28295 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028296 Py_ssize_t _children_capacity = 1;
28297 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028298 { // ',' (expressions ['as' star_target])
28299 if (p->error_indicator) {
28300 D(p->level--);
28301 return NULL;
28302 }
28303 D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
28304 Token * _literal;
28305 void *elem;
28306 while (
28307 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28308 &&
28309 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
28310 )
28311 {
28312 _res = elem;
28313 if (_res == NULL && PyErr_Occurred()) {
28314 p->error_indicator = 1;
28315 PyMem_Free(_children);
28316 D(p->level--);
28317 return NULL;
28318 }
28319 if (_n == _children_capacity) {
28320 _children_capacity *= 2;
28321 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28322 if (!_new_children) {
28323 p->error_indicator = 1;
28324 PyErr_NoMemory();
28325 D(p->level--);
28326 return NULL;
28327 }
28328 _children = _new_children;
28329 }
28330 _children[_n++] = _res;
28331 _mark = p->mark;
28332 }
28333 p->mark = _mark;
28334 D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000028335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
28336 }
28337 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28338 if (!_seq) {
28339 PyMem_Free(_children);
28340 p->error_indicator = 1;
28341 PyErr_NoMemory();
28342 D(p->level--);
28343 return NULL;
28344 }
28345 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28346 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028347 _PyPegen_insert_memo(p, _start_mark, _loop0_159_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000028348 D(p->level--);
28349 return _seq;
28350}
28351
Brandt Bucher145bf262021-02-26 14:51:55 -080028352// _gather_158: (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028353static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028354_gather_158_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028355{
28356 D(p->level++);
28357 if (p->error_indicator) {
28358 D(p->level--);
28359 return NULL;
28360 }
28361 asdl_seq * _res = NULL;
28362 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028363 { // (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028364 if (p->error_indicator) {
28365 D(p->level--);
28366 return NULL;
28367 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028368 D(fprintf(stderr, "%*c> _gather_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028369 void *elem;
28370 asdl_seq * seq;
28371 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028372 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028373 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028374 (seq = _loop0_159_rule(p)) // _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028375 )
28376 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028377 D(fprintf(stderr, "%*c+ _gather_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028378 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28379 goto done;
28380 }
28381 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028382 D(fprintf(stderr, "%*c%s _gather_158[%d-%d]: %s failed!\n", p->level, ' ',
28383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028384 }
28385 _res = NULL;
28386 done:
28387 D(p->level--);
28388 return _res;
28389}
28390
Brandt Bucher145bf262021-02-26 14:51:55 -080028391// _tmp_160: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000028392static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028393_tmp_160_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028394{
28395 D(p->level++);
28396 if (p->error_indicator) {
28397 D(p->level--);
28398 return NULL;
28399 }
28400 void * _res = NULL;
28401 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028402 { // 'as' NAME
28403 if (p->error_indicator) {
28404 D(p->level--);
28405 return NULL;
28406 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028407 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028408 Token * _keyword;
28409 expr_ty name_var;
28410 if (
28411 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28412 &&
28413 (name_var = _PyPegen_name_token(p)) // NAME
28414 )
28415 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028416 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028417 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28418 goto done;
28419 }
28420 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028421 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28423 }
28424 _res = NULL;
28425 done:
28426 D(p->level--);
28427 return _res;
28428}
28429
Brandt Bucher145bf262021-02-26 14:51:55 -080028430// _tmp_161: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000028431static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028432_tmp_161_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028433{
28434 D(p->level++);
28435 if (p->error_indicator) {
28436 D(p->level--);
28437 return NULL;
28438 }
28439 void * _res = NULL;
28440 int _mark = p->mark;
28441 { // 'as' NAME
28442 if (p->error_indicator) {
28443 D(p->level--);
28444 return NULL;
28445 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028446 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028447 Token * _keyword;
28448 expr_ty name_var;
28449 if (
28450 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28451 &&
28452 (name_var = _PyPegen_name_token(p)) // NAME
28453 )
28454 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028455 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028456 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28457 goto done;
28458 }
28459 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028460 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28462 }
28463 _res = NULL;
28464 done:
28465 D(p->level--);
28466 return _res;
28467}
28468
Brandt Bucher145bf262021-02-26 14:51:55 -080028469// _tmp_162: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028470static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028471_tmp_162_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028472{
28473 D(p->level++);
28474 if (p->error_indicator) {
28475 D(p->level--);
28476 return NULL;
28477 }
28478 void * _res = NULL;
28479 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028480 { // star_targets '='
28481 if (p->error_indicator) {
28482 D(p->level--);
28483 return NULL;
28484 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028485 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028486 Token * _literal;
28487 expr_ty z;
28488 if (
28489 (z = star_targets_rule(p)) // star_targets
28490 &&
28491 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28492 )
28493 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028494 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028495 _res = z;
28496 if (_res == NULL && PyErr_Occurred()) {
28497 p->error_indicator = 1;
28498 D(p->level--);
28499 return NULL;
28500 }
28501 goto done;
28502 }
28503 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028504 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
28506 }
28507 _res = NULL;
28508 done:
28509 D(p->level--);
28510 return _res;
28511}
28512
Brandt Bucher145bf262021-02-26 14:51:55 -080028513// _tmp_163: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000028514static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028515_tmp_163_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028516{
28517 D(p->level++);
28518 if (p->error_indicator) {
28519 D(p->level--);
28520 return NULL;
28521 }
28522 void * _res = NULL;
28523 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028524 { // '.'
28525 if (p->error_indicator) {
28526 D(p->level--);
28527 return NULL;
28528 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028529 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028530 Token * _literal;
28531 if (
28532 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28533 )
28534 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028535 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028536 _res = _literal;
28537 goto done;
28538 }
28539 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028540 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28542 }
28543 { // '...'
28544 if (p->error_indicator) {
28545 D(p->level--);
28546 return NULL;
28547 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028548 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028549 Token * _literal;
28550 if (
28551 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28552 )
28553 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028554 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028555 _res = _literal;
28556 goto done;
28557 }
28558 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028559 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28561 }
28562 _res = NULL;
28563 done:
28564 D(p->level--);
28565 return _res;
28566}
28567
Brandt Bucher145bf262021-02-26 14:51:55 -080028568// _tmp_164: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000028569static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028570_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028571{
28572 D(p->level++);
28573 if (p->error_indicator) {
28574 D(p->level--);
28575 return NULL;
28576 }
28577 void * _res = NULL;
28578 int _mark = p->mark;
28579 { // '.'
28580 if (p->error_indicator) {
28581 D(p->level--);
28582 return NULL;
28583 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028584 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028585 Token * _literal;
28586 if (
28587 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28588 )
28589 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028590 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028591 _res = _literal;
28592 goto done;
28593 }
28594 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028595 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28597 }
28598 { // '...'
28599 if (p->error_indicator) {
28600 D(p->level--);
28601 return NULL;
28602 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028603 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028604 Token * _literal;
28605 if (
28606 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28607 )
28608 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028609 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028610 _res = _literal;
28611 goto done;
28612 }
28613 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028614 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28616 }
28617 _res = NULL;
28618 done:
28619 D(p->level--);
28620 return _res;
28621}
28622
Brandt Bucher145bf262021-02-26 14:51:55 -080028623// _tmp_165: '@' named_expression NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000028624static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028625_tmp_165_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028626{
28627 D(p->level++);
28628 if (p->error_indicator) {
28629 D(p->level--);
28630 return NULL;
28631 }
28632 void * _res = NULL;
28633 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028634 { // '@' named_expression NEWLINE
28635 if (p->error_indicator) {
28636 D(p->level--);
28637 return NULL;
28638 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028639 D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028640 Token * _literal;
28641 expr_ty f;
28642 Token * newline_var;
28643 if (
28644 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
28645 &&
28646 (f = named_expression_rule(p)) // named_expression
28647 &&
28648 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
28649 )
28650 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028651 D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028652 _res = f;
28653 if (_res == NULL && PyErr_Occurred()) {
28654 p->error_indicator = 1;
28655 D(p->level--);
28656 return NULL;
28657 }
28658 goto done;
28659 }
28660 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028661 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
28663 }
28664 _res = NULL;
28665 done:
28666 D(p->level--);
28667 return _res;
28668}
28669
Brandt Bucher145bf262021-02-26 14:51:55 -080028670// _tmp_166: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028671static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028672_tmp_166_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028673{
28674 D(p->level++);
28675 if (p->error_indicator) {
28676 D(p->level--);
28677 return NULL;
28678 }
28679 void * _res = NULL;
28680 int _mark = p->mark;
28681 { // ',' star_expression
28682 if (p->error_indicator) {
28683 D(p->level--);
28684 return NULL;
28685 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028686 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028687 Token * _literal;
28688 expr_ty c;
28689 if (
28690 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28691 &&
28692 (c = star_expression_rule(p)) // star_expression
28693 )
28694 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028695 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028696 _res = c;
28697 if (_res == NULL && PyErr_Occurred()) {
28698 p->error_indicator = 1;
28699 D(p->level--);
28700 return NULL;
28701 }
28702 goto done;
28703 }
28704 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028705 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
28707 }
28708 _res = NULL;
28709 done:
28710 D(p->level--);
28711 return _res;
28712}
28713
Brandt Bucher145bf262021-02-26 14:51:55 -080028714// _tmp_167: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028715static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028716_tmp_167_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028717{
28718 D(p->level++);
28719 if (p->error_indicator) {
28720 D(p->level--);
28721 return NULL;
28722 }
28723 void * _res = NULL;
28724 int _mark = p->mark;
28725 { // ',' expression
28726 if (p->error_indicator) {
28727 D(p->level--);
28728 return NULL;
28729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028730 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028731 Token * _literal;
28732 expr_ty c;
28733 if (
28734 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28735 &&
28736 (c = expression_rule(p)) // expression
28737 )
28738 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028739 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028740 _res = c;
28741 if (_res == NULL && PyErr_Occurred()) {
28742 p->error_indicator = 1;
28743 D(p->level--);
28744 return NULL;
28745 }
28746 goto done;
28747 }
28748 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028749 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
28751 }
28752 _res = NULL;
28753 done:
28754 D(p->level--);
28755 return _res;
28756}
28757
Brandt Bucher145bf262021-02-26 14:51:55 -080028758// _tmp_168: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028759static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028760_tmp_168_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028761{
28762 D(p->level++);
28763 if (p->error_indicator) {
28764 D(p->level--);
28765 return NULL;
28766 }
28767 void * _res = NULL;
28768 int _mark = p->mark;
28769 { // 'or' conjunction
28770 if (p->error_indicator) {
28771 D(p->level--);
28772 return NULL;
28773 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028774 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028775 Token * _keyword;
28776 expr_ty c;
28777 if (
28778 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
28779 &&
28780 (c = conjunction_rule(p)) // conjunction
28781 )
28782 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028783 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028784 _res = c;
28785 if (_res == NULL && PyErr_Occurred()) {
28786 p->error_indicator = 1;
28787 D(p->level--);
28788 return NULL;
28789 }
28790 goto done;
28791 }
28792 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028793 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
28795 }
28796 _res = NULL;
28797 done:
28798 D(p->level--);
28799 return _res;
28800}
28801
Brandt Bucher145bf262021-02-26 14:51:55 -080028802// _tmp_169: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028803static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028804_tmp_169_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028805{
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 { // 'and' inversion
28814 if (p->error_indicator) {
28815 D(p->level--);
28816 return NULL;
28817 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028818 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028819 Token * _keyword;
28820 expr_ty c;
28821 if (
28822 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
28823 &&
28824 (c = inversion_rule(p)) // inversion
28825 )
28826 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028827 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028828 _res = c;
28829 if (_res == NULL && PyErr_Occurred()) {
28830 p->error_indicator = 1;
28831 D(p->level--);
28832 return NULL;
28833 }
28834 goto done;
28835 }
28836 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028837 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028839 }
28840 _res = NULL;
28841 done:
28842 D(p->level--);
28843 return _res;
28844}
28845
Brandt Bucher145bf262021-02-26 14:51:55 -080028846// _tmp_170: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000028847static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028848_tmp_170_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028849{
28850 D(p->level++);
28851 if (p->error_indicator) {
28852 D(p->level--);
28853 return NULL;
28854 }
28855 void * _res = NULL;
28856 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028857 { // 'if' disjunction
28858 if (p->error_indicator) {
28859 D(p->level--);
28860 return NULL;
28861 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028862 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028863 Token * _keyword;
28864 expr_ty z;
28865 if (
28866 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28867 &&
28868 (z = disjunction_rule(p)) // disjunction
28869 )
28870 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028871 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028872 _res = z;
28873 if (_res == NULL && PyErr_Occurred()) {
28874 p->error_indicator = 1;
28875 D(p->level--);
28876 return NULL;
28877 }
28878 goto done;
28879 }
28880 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028881 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28883 }
28884 _res = NULL;
28885 done:
28886 D(p->level--);
28887 return _res;
28888}
28889
Brandt Bucher145bf262021-02-26 14:51:55 -080028890// _tmp_171: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000028891static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028892_tmp_171_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028893{
28894 D(p->level++);
28895 if (p->error_indicator) {
28896 D(p->level--);
28897 return NULL;
28898 }
28899 void * _res = NULL;
28900 int _mark = p->mark;
28901 { // 'if' disjunction
28902 if (p->error_indicator) {
28903 D(p->level--);
28904 return NULL;
28905 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028906 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028907 Token * _keyword;
28908 expr_ty z;
28909 if (
28910 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28911 &&
28912 (z = disjunction_rule(p)) // disjunction
28913 )
28914 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028915 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028916 _res = z;
28917 if (_res == NULL && PyErr_Occurred()) {
28918 p->error_indicator = 1;
28919 D(p->level--);
28920 return NULL;
28921 }
28922 goto done;
28923 }
28924 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028925 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28927 }
28928 _res = NULL;
28929 done:
28930 D(p->level--);
28931 return _res;
28932}
28933
Brandt Bucher145bf262021-02-26 14:51:55 -080028934// _tmp_172: starred_expression | named_expression !'='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028935static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028936_tmp_172_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028937{
28938 D(p->level++);
28939 if (p->error_indicator) {
28940 D(p->level--);
28941 return NULL;
28942 }
28943 void * _res = NULL;
28944 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010028945 { // starred_expression
28946 if (p->error_indicator) {
28947 D(p->level--);
28948 return NULL;
28949 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028950 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028951 expr_ty starred_expression_var;
28952 if (
28953 (starred_expression_var = starred_expression_rule(p)) // starred_expression
28954 )
28955 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028956 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028957 _res = starred_expression_var;
28958 goto done;
28959 }
28960 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028961 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010028962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
28963 }
28964 { // named_expression !'='
28965 if (p->error_indicator) {
28966 D(p->level--);
28967 return NULL;
28968 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028969 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028970 expr_ty named_expression_var;
28971 if (
28972 (named_expression_var = named_expression_rule(p)) // named_expression
28973 &&
28974 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
28975 )
28976 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028977 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028978 _res = named_expression_var;
28979 goto done;
28980 }
28981 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028982 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028984 }
28985 _res = NULL;
28986 done:
28987 D(p->level--);
28988 return _res;
28989}
28990
Brandt Bucher145bf262021-02-26 14:51:55 -080028991// _tmp_173: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028992static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028993_tmp_173_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028994{
28995 D(p->level++);
28996 if (p->error_indicator) {
28997 D(p->level--);
28998 return NULL;
28999 }
29000 void * _res = NULL;
29001 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029002 { // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029003 if (p->error_indicator) {
29004 D(p->level--);
29005 return NULL;
29006 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029007 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029008 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029009 expr_ty c;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029010 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000029011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029012 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000029013 (c = star_target_rule(p)) // star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029014 )
29015 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029016 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029017 _res = c;
29018 if (_res == NULL && PyErr_Occurred()) {
29019 p->error_indicator = 1;
29020 D(p->level--);
29021 return NULL;
29022 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029023 goto done;
29024 }
29025 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029026 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029028 }
29029 _res = NULL;
29030 done:
29031 D(p->level--);
29032 return _res;
29033}
29034
Brandt Bucher145bf262021-02-26 14:51:55 -080029035// _tmp_174: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029036static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029037_tmp_174_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029038{
29039 D(p->level++);
29040 if (p->error_indicator) {
29041 D(p->level--);
29042 return NULL;
29043 }
29044 void * _res = NULL;
29045 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000029046 { // ',' star_target
29047 if (p->error_indicator) {
29048 D(p->level--);
29049 return NULL;
29050 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029051 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029052 Token * _literal;
29053 expr_ty c;
29054 if (
29055 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29056 &&
29057 (c = star_target_rule(p)) // star_target
29058 )
29059 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029060 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029061 _res = c;
29062 if (_res == NULL && PyErr_Occurred()) {
29063 p->error_indicator = 1;
29064 D(p->level--);
29065 return NULL;
29066 }
29067 goto done;
29068 }
29069 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029070 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
29072 }
29073 _res = NULL;
29074 done:
29075 D(p->level--);
29076 return _res;
29077}
29078
Brandt Bucher145bf262021-02-26 14:51:55 -080029079// _tmp_175: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000029080static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029081_tmp_175_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029082{
29083 D(p->level++);
29084 if (p->error_indicator) {
29085 D(p->level--);
29086 return NULL;
29087 }
29088 void * _res = NULL;
29089 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029090 { // star_targets '='
29091 if (p->error_indicator) {
29092 D(p->level--);
29093 return NULL;
29094 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029095 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029096 Token * _literal;
29097 expr_ty star_targets_var;
29098 if (
29099 (star_targets_var = star_targets_rule(p)) // star_targets
29100 &&
29101 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29102 )
29103 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029104 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029105 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29106 goto done;
29107 }
29108 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029109 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29111 }
29112 _res = NULL;
29113 done:
29114 D(p->level--);
29115 return _res;
29116}
29117
Brandt Bucher145bf262021-02-26 14:51:55 -080029118// _tmp_176: star_targets '='
Pablo Galindo835f14f2021-01-31 22:52:56 +000029119static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029120_tmp_176_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000029121{
29122 D(p->level++);
29123 if (p->error_indicator) {
29124 D(p->level--);
29125 return NULL;
29126 }
29127 void * _res = NULL;
29128 int _mark = p->mark;
29129 { // star_targets '='
29130 if (p->error_indicator) {
29131 D(p->level--);
29132 return NULL;
29133 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029134 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029135 Token * _literal;
29136 expr_ty star_targets_var;
29137 if (
29138 (star_targets_var = star_targets_rule(p)) // star_targets
29139 &&
29140 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29141 )
29142 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029143 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000029144 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
29145 goto done;
29146 }
29147 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029148 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000029149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
29150 }
29151 _res = NULL;
29152 done:
29153 D(p->level--);
29154 return _res;
29155}
29156
Brandt Bucher145bf262021-02-26 14:51:55 -080029157// _tmp_177: ')' | '**'
Pablo Galindo206cbda2021-02-07 18:42:21 +000029158static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029159_tmp_177_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029160{
29161 D(p->level++);
29162 if (p->error_indicator) {
29163 D(p->level--);
29164 return NULL;
29165 }
29166 void * _res = NULL;
29167 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029168 { // ')'
29169 if (p->error_indicator) {
29170 D(p->level--);
29171 return NULL;
29172 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029173 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029174 Token * _literal;
29175 if (
29176 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
29177 )
29178 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029179 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029180 _res = _literal;
29181 goto done;
29182 }
29183 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029184 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029186 }
29187 { // '**'
29188 if (p->error_indicator) {
29189 D(p->level--);
29190 return NULL;
29191 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029192 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029193 Token * _literal;
29194 if (
29195 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29196 )
29197 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029198 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029199 _res = _literal;
29200 goto done;
29201 }
29202 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029203 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29205 }
29206 _res = NULL;
29207 done:
29208 D(p->level--);
29209 return _res;
29210}
29211
Brandt Bucher145bf262021-02-26 14:51:55 -080029212// _tmp_178: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000029213static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029214_tmp_178_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000029215{
29216 D(p->level++);
29217 if (p->error_indicator) {
29218 D(p->level--);
29219 return NULL;
29220 }
29221 void * _res = NULL;
29222 int _mark = p->mark;
29223 { // ':'
29224 if (p->error_indicator) {
29225 D(p->level--);
29226 return NULL;
29227 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029228 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029229 Token * _literal;
29230 if (
29231 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29232 )
29233 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029234 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029235 _res = _literal;
29236 goto done;
29237 }
29238 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029239 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29241 }
29242 { // '**'
29243 if (p->error_indicator) {
29244 D(p->level--);
29245 return NULL;
29246 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029247 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029248 Token * _literal;
29249 if (
29250 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29251 )
29252 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029253 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029254 _res = _literal;
29255 goto done;
29256 }
29257 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029258 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29260 }
29261 _res = NULL;
29262 done:
29263 D(p->level--);
29264 return _res;
29265}
29266
Brandt Bucher145bf262021-02-26 14:51:55 -080029267// _tmp_179: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029268static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029269_tmp_179_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029270{
29271 D(p->level++);
29272 if (p->error_indicator) {
29273 D(p->level--);
29274 return NULL;
29275 }
29276 void * _res = NULL;
29277 int _mark = p->mark;
29278 { // expression ['as' star_target]
29279 if (p->error_indicator) {
29280 D(p->level--);
29281 return NULL;
29282 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029283 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029284 void *_opt_var;
29285 UNUSED(_opt_var); // Silence compiler warnings
29286 expr_ty expression_var;
29287 if (
29288 (expression_var = expression_rule(p)) // expression
29289 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029290 (_opt_var = _tmp_181_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029291 )
29292 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029293 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029294 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
29295 goto done;
29296 }
29297 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029298 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
29300 }
29301 _res = NULL;
29302 done:
29303 D(p->level--);
29304 return _res;
29305}
29306
Brandt Bucher145bf262021-02-26 14:51:55 -080029307// _tmp_180: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029308static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029309_tmp_180_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029310{
29311 D(p->level++);
29312 if (p->error_indicator) {
29313 D(p->level--);
29314 return NULL;
29315 }
29316 void * _res = NULL;
29317 int _mark = p->mark;
29318 { // expressions ['as' star_target]
29319 if (p->error_indicator) {
29320 D(p->level--);
29321 return NULL;
29322 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029323 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029324 void *_opt_var;
29325 UNUSED(_opt_var); // Silence compiler warnings
29326 expr_ty expressions_var;
29327 if (
29328 (expressions_var = expressions_rule(p)) // expressions
29329 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029330 (_opt_var = _tmp_182_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029331 )
29332 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029333 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029334 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
29335 goto done;
29336 }
29337 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029338 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
29340 }
29341 _res = NULL;
29342 done:
29343 D(p->level--);
29344 return _res;
29345}
29346
Brandt Bucher145bf262021-02-26 14:51:55 -080029347// _tmp_181: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029348static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029349_tmp_181_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029350{
29351 D(p->level++);
29352 if (p->error_indicator) {
29353 D(p->level--);
29354 return NULL;
29355 }
29356 void * _res = NULL;
29357 int _mark = p->mark;
29358 { // 'as' star_target
29359 if (p->error_indicator) {
29360 D(p->level--);
29361 return NULL;
29362 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029363 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029364 Token * _keyword;
29365 expr_ty star_target_var;
29366 if (
29367 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29368 &&
29369 (star_target_var = star_target_rule(p)) // star_target
29370 )
29371 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029372 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029373 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29374 goto done;
29375 }
29376 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029377 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29379 }
29380 _res = NULL;
29381 done:
29382 D(p->level--);
29383 return _res;
29384}
29385
Brandt Bucher145bf262021-02-26 14:51:55 -080029386// _tmp_182: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029387static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029388_tmp_182_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029389{
29390 D(p->level++);
29391 if (p->error_indicator) {
29392 D(p->level--);
29393 return NULL;
29394 }
29395 void * _res = NULL;
29396 int _mark = p->mark;
29397 { // 'as' star_target
29398 if (p->error_indicator) {
29399 D(p->level--);
29400 return NULL;
29401 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029402 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029403 Token * _keyword;
29404 expr_ty star_target_var;
29405 if (
29406 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29407 &&
29408 (star_target_var = star_target_rule(p)) // star_target
29409 )
29410 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029411 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029412 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29413 goto done;
29414 }
29415 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029416 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29418 }
29419 _res = NULL;
29420 done:
29421 D(p->level--);
29422 return _res;
29423}
29424
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029425void *
29426_PyPegen_parse(Parser *p)
29427{
29428 // Initialize keywords
29429 p->keywords = reserved_keywords;
29430 p->n_keyword_lists = n_keyword_lists;
29431
29432 // Run parser
29433 void *result = NULL;
29434 if (p->start_rule == Py_file_input) {
29435 result = file_rule(p);
29436 } else if (p->start_rule == Py_single_input) {
29437 result = interactive_rule(p);
29438 } else if (p->start_rule == Py_eval_input) {
29439 result = eval_rule(p);
29440 } else if (p->start_rule == Py_func_type_input) {
29441 result = func_type_rule(p);
29442 } else if (p->start_rule == Py_fstring_input) {
29443 result = fstring_rule(p);
29444 }
29445
29446 return result;
29447}
29448
29449// The end